public void refreshProperties()

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());
  }