package bluej.stride.framedjava.frames;
import java.util.List;
import javafx.beans.property.SimpleIntegerProperty;
import bluej.stride.framedjava.ast.ExpressionSlotFragment;
import bluej.stride.framedjava.ast.FilledExpressionSlotFragment;
import bluej.stride.framedjava.ast.HighlightedBreakpoint;
import bluej.stride.framedjava.canvases.JavaCanvas;
import bluej.stride.framedjava.elements.ThrowElement;
import bluej.stride.framedjava.slots.ExpressionSlot;
import bluej.stride.framedjava.slots.FilledExpressionSlot;
import bluej.stride.generic.FrameFactory;
import bluej.stride.generic.InteractionManager;
import bluej.stride.generic.SingleLineFrame;
import bluej.stride.operations.FrameOperation;
| A Throw statement
|
public class ThrowFrame extends SingleLineFrame
implements CodeFrame<ThrowElement>, DebuggableFrame{
private ExpressionSlot<FilledExpressionSlotFragment> param1;
private ThrowElement element;
private SimpleIntegerProperty codeVersion;
| Default constructor.
| @param editor
|
private ThrowFrame(InteractionManager editor)
{
super(editor, "throw", "throw-");
this.codeVersion = new SimpleIntegerProperty(0);
param1 = new FilledExpressionSlot(editor, this, this, getHeaderRow(), "throw-");
param1.setSimplePromptText("expression");
setHeaderRow(param1, previewSemi);
}
public ThrowFrame(InteractionManager editor, ExpressionSlotFragment val, boolean enabled)
{
this(editor);
param1.setText(val);
frameEnabledProperty.set(enabled);
}
@Override
public void regenerateCode()
{
element = new ThrowElement(this, param1.getSlotElement(), frameEnabledProperty.get());
codeVersion.set(codeVersion.get() + 1);
}
@Override
public ThrowElement getCode()
{
return element;
}
public static FrameFactory getFactory()
{
return new FrameFactory<ThrowFrame>() {
@Override
public ThrowFrame createBlock(InteractionManager editor)
{
return new ThrowFrame(editor);
}
@Override
public Class getBlockClass()
{
return ThrowFrame.class;
}
};
}
}
. ThrowFrame
. ThrowFrame
. regenerateCode
. getCode
. getFactory
. createBlock
. getBlockClass
91 neLoCode
+ 3 LoComm