package bluej.stride.framedjava.elements;
import java.util.stream.Stream;
import bluej.stride.generic.InteractionManager;
import nu.xom.Element;
import threadchecker.OnThread;
import threadchecker.Tag;
import bluej.stride.framedjava.ast.JavaSource;
import bluej.stride.framedjava.ast.SlotFragment;
import bluej.stride.framedjava.frames.CommentFrame;
import bluej.stride.generic.Frame;
import bluej.stride.generic.Frame.ShowReason;
public class CommentElement
extends CodeElement{
public static final String ELEMENT = "comment";
private CommentFrame frame;
private final String comment;
public CommentElement(Element xmlEl)
{
if (xmlEl.getChildCount() > 0)
comment = xmlEl.getChild(0).getValue();
else{ comment = "";
}
}
@OnThread(Tag.FX)
public CommentElement(CommentFrame frame)
{
this.frame = frame;
this.comment = frame.getComment();
}
public CommentElement(String s)
{
this.comment = s;
}
@Override
public JavaSource toJavaSource()
{
String sanitised = " " +comment.replace("/*", "").replace("*/","").replace("\n","");
return new JavaSource(null, f(frame, "/*"), f(frame, sanitised), f(frame, "*/"));
}
@Override
public LocatableElement toXML()
{
LocatableElement commentEl = new LocatableElement(this, ELEMENT);
preserveWhitespace(commentEl);
commentEl.appendChild(comment);
return commentEl;
}
@Override
public Frame createFrame(InteractionManager editor)
{
frame = new CommentFrame(editor, comment);
return frame;
}
@Override
public void show(ShowReason reason)
{
frame.show(reason);
}
@Override
protected Stream getDirectSlotFragments()
{
return Stream.empty();
}
}
top,
use,
map,
class CommentElement
. CommentElement
. CommentElement
. CommentElement
. toJavaSource
. toXML
. createFrame
. show
. getDirectSlotFragments
98 neLoCode
+ 0 LoComm