@Override
 public void propertyChange(PropertyChangeEvent event) {
   boolean internal = myInternal;
   myInternal = true;
   Object value = event.getNewValue();
   if (ShortcutFilteringPanel.this == event.getSource()) {
     if (value instanceof KeyboardShortcut) {
       KeyboardShortcut shortcut = (KeyboardShortcut) value;
       myMousePanel.setShortcut(null);
       myKeyboardPanel.setShortcut(shortcut);
       if (null != shortcut.getSecondKeyStroke()) {
         myKeyboardPanel.mySecondStrokeEnable.setSelected(true);
       }
     } else {
       MouseShortcut shortcut =
           value instanceof MouseShortcut ? (MouseShortcut) value : null;
       String text = shortcut == null ? null : KeymapUtil.getMouseShortcutText(shortcut);
       myMousePanel.setShortcut(shortcut);
       myKeyboardPanel.setShortcut(null);
       myKeyboardPanel.myFirstStroke.setText(text);
       myKeyboardPanel.mySecondStroke.setText(null);
       myKeyboardPanel.mySecondStroke.setEnabled(false);
     }
   } else if (value instanceof Shortcut) {
     setShortcut((Shortcut) value);
   } else if (!internal) {
     setShortcut(null);
   }
   myInternal = internal;
 }