in cell/src/main/java/jetbrains/jetpad/cell/toDom/TextCellMapper.java [79:139]
public void refreshProperties() {
super.refreshProperties();
Boolean focused = getSource().get(Cell.FOCUSED);
if (focused) {
if (myFocusRegistration == null) {
final Timer timer = new Timer() {
@Override
public void run() {
if (System.currentTimeMillis() - myLastChangeTime < CARET_BLINK_DELAY) return;
myCaretVisible = !myCaretVisible;
updateCaretVisibility();
}
};
timer.scheduleRepeating(500);
myContainerFocused = getContext().focused.get();
myFocusRegistration = new CompositeRegistration(
getContext().focused.addHandler(new EventHandler<PropertyChangeEvent<Boolean>>() {
@Override
public void onEvent(PropertyChangeEvent<Boolean> event) {
myContainerFocused = event.getNewValue();
updateCaretVisibility();
}
}),
getSource().caretVisible().addHandler(new EventHandler<PropertyChangeEvent<Boolean>>() {
@Override
public void onEvent(PropertyChangeEvent<Boolean> event) {
if (event.getNewValue()) {
myLastChangeTime = System.currentTimeMillis();
myCaretVisible = true;
}
}
}),
new Registration() {
@Override
protected void doRemove() {
timer.cancel();
}
}
);
}
} else {
if (myFocusRegistration != null) {
myFocusRegistration.remove();
myFocusRegistration = null;
}
}
myLastChangeTime = System.currentTimeMillis();
myTextEditor.setText(getSource().text().get());
myTextEditor.setCaretPosition(getSource().caretPosition().get());
myTextEditor.setCaretVisible(getSource().caretVisible().get());
myTextEditor.setTextColor(getSource().textColor().get());
myTextEditor.setBold(getSource().bold().get());
myTextEditor.setFontFamily(getSource().fontFamily().get());
myTextEditor.setFontSize(getSource().fontSize().get());
myTextEditor.setSelectionVisible(getSource().selectionVisible().get());
myTextEditor.setSelectionStart(getSource().selectionStart().get());
}