if( ! arg1 ) {
domainElement = arg0;
visibleCells.add(this);
RegionImpl stack = (RegionImpl) getGraphic();
TextFlow flow;
if( stack == null ) {
flow = new TextFlow() {
@Override
protected void layoutChildren() {
super.layoutChildren();
updateCaret();
}
};
Path caretPath = new Path();
caretPath.setManaged(false);
caretPath.setStrokeWidth(1);
caretPath.setFill((Color.BLACK));
caretPath.setStroke((Color.BLACK));
caretPath.visibleProperty().bind(caretVisible);
stack = new RegionImpl(flow,caretPath);
setGraphic(stack);
} else {
flow = (TextFlow) stack.getChildren().get(0);
}
List<Text> texts = new ArrayList<>();
for( final Segment seg : arg0.getSegments() ) {
final Text t = new Text(seg.text);
t.setUserData(seg.style.start);
if( seg.style.foreground != null ) {
t.setFill(seg.style.foreground);
}
if( seg.style.font != null ) {
t.setFont(seg.style.font);
} else {
t.setFont(getFontByStyle(seg.style.fontStyle));
}
if( seg.style.underline ) {
System.err.println("=====================> UNDERLINEING");
}
texts.add(t);
}
if( texts.isEmpty() ) {
Text t = new Text("");
t.setUserData(arg0.getLineOffset());
texts.add(t);
}
flow.getChildren().setAll(texts);
stack.requestLayout();
} else {
setGraphic(null);
domainElement = null;
visibleCells.remove(this);