@Override
  public final void propertyChange(PropertyChangeEvent event) {
    if (!myEvent && myTextWithMnemonic != null) {
      String property = event.getPropertyName();
      if (myTextProperty.equals(property)) {
        // it is needed to update text later because
        // this listener is notified before Swing updates mnemonics
        myTextWithMnemonic = null;
        updateRequest();
      }
      else if (myCodeProperty.equals(property)) {
        myMnemonicChanged = true;
        updateRequest();
      }
      else if (myIndexProperty.equals(property)) {
        myMnemonicChanged = true;
        updateRequest();
      }
      else if ("focusable".equals(property) || "labelFor".equals(property)) {
        myFocusable = isFocusable();
        updateRequest();
      }
    }
  }
@Override
  public final void propertyChange(PropertyChangeEvent event)