package bluej.stride.operations;
import bluej.Config;
import bluej.stride.generic.Frame;
import bluej.stride.generic.FrameCursor;
import bluej.stride.generic.InteractionManager;
import bluej.stride.slots.EditableSlot.MenuItemOrder;
import threadchecker.OnThread;
import threadchecker.Tag;
import java.util.Arrays;
import java.util.List;
| Put the contents of canvas frames in place of these frames.
| @author Amjad Altadmri
|
public class PullUpContentsOperation
extends FrameOperation{
public PullUpContentsOperation(InteractionManager editor)
{
super(editor, "PULL_CONTENTS", Combine.ALL);
}
@Override
public List getLabels()
{
return Arrays.asList(l(Config.getString("frame.operation.delete.outer"), MenuItemOrder.DELETE));
}
@Override
@OnThread(Tag.FXPlatform)
public void enablePreview()
{
editor.getSelection().setPullUpPreview(true);
}
@Override
@OnThread(Tag.FXPlatform)
public void disablePreview()
{
editor.getSelection().setPullUpPreview(false);
}
@Override
protected void execute(List<Frame> frames)
{
if (!frames.isEmpty()) {
FrameCursor cursorBefore = frames.get(0).getCursorBefore();
frames.forEach(frame -> {
frame.pullUpContents();
frame.getParentCanvas().removeBlock(frame);
});
cursorBefore.requestFocus();
}
}
@Override
public boolean onlyOnContextMenu()
{
return true;
}
}
top,
use,
map,
class PullUpContentsOperation
. PullUpContentsOperation
. getLabels
. enablePreview
. disablePreview
. execute
. onlyOnContextMenu
72 neLoCode
+ 2 LoComm