package bluej.stride.operations;
import java.util.Arrays;
import java.util.List;
import javafx.scene.control.CustomMenuItem;
import bluej.Config;
import bluej.stride.slots.EditableSlot.MenuItemOrder;
import bluej.stride.generic.Frame;
import bluej.stride.generic.InteractionManager;
import threadchecker.OnThread;
import threadchecker.Tag;
public class EnableFrameOperation
extends FrameOperation{
public EnableFrameOperation(InteractionManager editor)
{
super(editor, "ENABLE", Combine.ANY);
}
@Override
@OnThread(Tag.FXPlatform)
public void enablePreview()
{
editor.getSelection().getSelected().forEach(frame -> frame.setFrameEnablePreview(Frame.FramePreviewEnabled.PREVIEW_ENABLED));
}
@Override
@OnThread(Tag.FXPlatform)
public void disablePreview()
{
editor.getSelection().getSelected().forEach(frame -> frame.setFrameEnablePreview(Frame.FramePreviewEnabled.PREVIEW_NONE));
}
@Override
@OnThread(Tag.FXPlatform)
protected void execute(List<Frame> frames)
{
frames.forEach(frame -> frame.setFrameEnabled(true));
}
@Override
public List getLabels()
{
return Arrays.asList(l(Config.getString("frame.operation.enable"), MenuItemOrder.ENABLE_FRAME));
}
@Override
@OnThread(Tag.FXPlatform)
public void onMenuShowing(CustomMenuItem item)
{
boolean canAllBeEnabled = editor.getSelection().getSelected().stream().allMatch(f -> f.canHaveEnabledState(true));
item.setDisable(!canAllBeEnabled);
}
@Override
public boolean onlyOnContextMenu()
{
return true;
}
}
top,
use,
map,
class EnableFrameOperation
. EnableFrameOperation
. enablePreview
. disablePreview
. execute
. getLabels
. onMenuShowing
. onlyOnContextMenu
71 neLoCode
+ 0 LoComm