private static void patchMainMenu() { final CustomActionsSchema schema = new CustomActionsSchema(); final JTree actionsTree = new Tree(); Group rootGroup = new Group("root", null, null); final DefaultMutableTreeNode root = new DefaultMutableTreeNode(rootGroup); DefaultTreeModel model = new DefaultTreeModel(root); actionsTree.setModel(model); schema.fillActionGroups(root); for (int i = 0; i < root.getChildCount(); i++) { final DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) root.getChildAt(i); if ("Main menu".equals(getItemId(treeNode))) { hideActionFromMainMenu(root, schema, treeNode); } hideActions(schema, root, treeNode, HIDDEN_ACTIONS); } CustomActionsSchema.getInstance().copyFrom(schema); }
@Override public void update(AnActionEvent e) { Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); e.getPresentation().setEnabled(false); if (focusOwner instanceof JComponent && SpeedSearchBase.hasActiveSpeedSearch((JComponent) focusOwner)) { return; } if (StackingPopupDispatcher.getInstance().isPopupFocused()) return; if (focusOwner instanceof JTree) { JTree tree = (JTree) focusOwner; if (!tree.isEditing()) { e.getPresentation().setEnabled(true); } } else if (focusOwner instanceof JTable) { JTable table = (JTable) focusOwner; if (!table.isEditing()) { e.getPresentation().setEnabled(true); } } }