package bluej.stride.framedjava.ast;
import bluej.stride.framedjava.errors.CodeError;
import bluej.stride.framedjava.errors.ErrorShower;
import bluej.stride.generic.Frame;
import bluej.stride.slots.EditableSlot;
import threadchecker.OnThread;
import threadchecker.Tag;
| A fragment of program code which is stored in a choice slot.
|
| Needs to be overridden by subclasses to actually store the value in question,
| but provides an implementation of a lot of methods from SlotFragment, suitable for
| items which were stored in a choice slot.
|
public abstract class ChoiceSlotFragment
extends SlotFragment{
private final Frame frame;
protected ChoiceSlotFragment(Frame f)
{
this.frame = f;
}
@Override
@OnThread(Tag.FXPlatform)
public void addError(CodeError codeError)
{
frame.addError(codeError);
}
@Override
public ErrorRelation checkCompileError(int startLine, int startColumn, int endLine, int endColumn)
{
if (frame == null)
return ErrorRelation.CANNOT_SHOW;
else{ return super.checkCompileError(startLine, startColumn, endLine, endColumn);
}
}
@Override
@OnThread(Tag.FX)
protected JavaFragment getCompileErrorRedirect()
{
EditableSlot slot = frame.getErrorShowRedirect();
if (slot != null)
return slot.getSlotElement();
else{ return this;
}
}
@Override
@OnThread(Tag.FX)
public ErrorShower getErrorShower()
{
EditableSlot slot = frame.getErrorShowRedirect();
if (slot != null)
return slot;
else{ return frame;
}
}
}
top,
use,
map,
abstract class ChoiceSlotFragment
. ChoiceSlotFragment
. addError
. checkCompileError
. getCompileErrorRedirect
. getErrorShower
68 neLoCode
+ 4 LoComm