/**
  * Checks whether mouse event's button and modifiers match a shortcut configured in active keymap
  * for given action id. Only shortcuts having click count of 1 can be matched, mouse event's click
  * count is ignored.
  */
 public static boolean isMouseActionEvent(@NotNull MouseEvent e, @NotNull String actionId) {
   KeymapManager keymapManager = KeymapManager.getInstance();
   if (keymapManager == null) {
     return false;
   }
   Keymap keymap = keymapManager.getActiveKeymap();
   if (keymap == null) {
     return false;
   }
   int button = MouseShortcut.getButton(e);
   int modifiers = e.getModifiersEx();
   if (button == MouseEvent.NOBUTTON && e.getID() == MouseEvent.MOUSE_DRAGGED) {
     // mouse drag events don't have button field set due to some reason
     if ((modifiers & InputEvent.BUTTON1_DOWN_MASK) != 0) {
       button = MouseEvent.BUTTON1;
     } else if ((modifiers & InputEvent.BUTTON2_DOWN_MASK) != 0) {
       button = MouseEvent.BUTTON2;
     }
   }
   String[] actionIds = keymap.getActionIds(new MouseShortcut(button, modifiers, 1));
   if (actionIds == null) {
     return false;
   }
   for (String id : actionIds) {
     if (actionId.equals(id)) {
       return true;
     }
   }
   return false;
 }
 public static boolean isEmacsKeymap() {
   return isEmacsKeymap(KeymapManager.getInstance().getActiveKeymap());
 }
 @NotNull
 public static String getFirstKeyboardShortcutText(@NotNull String actionId) {
   Shortcut[] shortcuts = KeymapManager.getInstance().getActiveKeymap().getShortcuts(actionId);
   KeyboardShortcut shortcut = ContainerUtil.findInstance(shortcuts, KeyboardShortcut.class);
   return shortcut == null ? "" : getShortcutText(shortcut);
 }