Example usage for com.intellij.openapi.actionSystem DefaultActionGroup DefaultActionGroup

List of usage examples for com.intellij.openapi.actionSystem DefaultActionGroup DefaultActionGroup

Introduction

In this page you can find the example usage for com.intellij.openapi.actionSystem DefaultActionGroup DefaultActionGroup.

Prototype

public DefaultActionGroup() 

Source Link

Usage

From source file:altn8.ui.AbstractDataPanel.java

License:Apache License

/**
 * Init our Components/*from www  . j a  v a2 s.  c o m*/
 */
private void initUIComponents() {
    DefaultActionGroup actionGroup = new DefaultActionGroup();

    // buttonAdd
    actionGroup.add(new AnAction("Add", "Add new item...", AllIcons.General.Add) {
        @Override
        public void actionPerformed(AnActionEvent e) {
            doAdd();
        }

        @Override
        public void update(AnActionEvent e) {
            e.getPresentation().setEnabled(enabled);
        }
    });

    // buttonRemove
    actionGroup.add(new AnAction("Remove", "Remove item...", AllIcons.General.Remove) {
        @Override
        public void actionPerformed(AnActionEvent e) {
            doRemove();
        }

        @Override
        public void update(AnActionEvent e) {
            e.getPresentation().setEnabled(enabled && table.getSelectedRow() >= 0);
        }
    });

    // buttonEdit
    actionGroup.add(new AnAction("Edit", "Edit item...", AllIcons.Actions.Edit) {
        @Override
        public void actionPerformed(AnActionEvent e) {
            doEdit();
        }

        @Override
        public void update(AnActionEvent e) {
            e.getPresentation().setEnabled(enabled && table.getSelectedRow() >= 0);
        }
    });

    // buttonCopy
    actionGroup.add(new AnAction("Copy", "Copy item...", AllIcons.Actions.Copy) {
        @Override
        public void actionPerformed(AnActionEvent e) {
            doCopy();
        }

        @Override
        public void update(AnActionEvent e) {
            e.getPresentation().setEnabled(enabled && table.getSelectedRow() >= 0);
        }
    });

    actionGroup.addSeparator();

    // buttonMoveUp
    actionGroup.add(new AnAction("Move Up", "Move item up...", AllIcons.Actions.MoveUp) {
        @Override
        public void actionPerformed(AnActionEvent e) {
            doMove(true);
        }

        @Override
        public void update(AnActionEvent e) {
            e.getPresentation().setEnabled(enabled && table.getSelectedRow() > 0);
        }
    });

    // buttonMoveDown
    actionGroup.add(new AnAction("Move Down", "Move item down...", AllIcons.Actions.MoveDown) {
        @Override
        public void actionPerformed(AnActionEvent e) {
            doMove(false);
        }

        @Override
        public void update(AnActionEvent e) {
            int selectedRow = table.getSelectedRow();
            e.getPresentation().setEnabled(
                    enabled && selectedRow >= 0 && selectedRow < (table.getModel().getRowCount() - 1));
        }
    });

    toolbar.add(ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, actionGroup, true)
            .getComponent());
}

From source file:automation.RobotControlWindow.java

License:Apache License

public RobotControlWindow(@NotNull final Component component) throws HeadlessException {
    super(findWindow(component));

    myRobotControl = RobotControlManager.getInstance().getRobotControl();

    Window window = findWindow(component);
    setModal(window instanceof JDialog && ((JDialog) window).isModal());
    getRootPane().setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

    setLayout(new BorderLayout());
    setTitle(component.getClass().getName());

    DefaultActionGroup actions = new DefaultActionGroup();
    actions.addAction(new IconWithTextAction("Push the ActionLink") {
        @Override//from w w  w.java2  s.c o m
        public void actionPerformed(AnActionEvent e) {
            //  Component actionLink = GuiUtil.findComponentByText("Create New Project", component);
            //  if(actionLink != null) {
            //    try {
            //      RobotControlManager.getInstance().getRobotControl().navigateAndClickScript(actionLink);
            //    }
            //    catch (InterruptedException e1) {
            //      e1.printStackTrace();
            //    }
            //    catch (Exception e1) {
            //      e1.printStackTrace();
            //    }
            //  }
            //}
            try {
                ScriptProcessor.process();
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }

        @Override
        public void update(AnActionEvent e) {
            //do nothing
        }
    });

    //actions.addSeparator();

    //actions.add(new IconWithTextAction("Refresh") {
    //
    // @Override
    // public void actionPerformed(AnActionEvent e) {
    //   getCurrentTable().refresh();
    // }
    //
    // @Override
    // public void update(AnActionEvent e) {
    //   e.getPresentation().setEnabled(myComponent != null && myComponent.isVisible());
    // }
    //});

    ActionToolbar toolbar = ActionManager.getInstance().createActionToolbar(ActionPlaces.CONTEXT_TOOLBAR,
            actions, true);
    add(toolbar.getComponent(), BorderLayout.NORTH);
    statusLabel = new JLabel("Ok");
    add(statusLabel);

    myWrapperPanel = new JPanel(new BorderLayout());

    //myHierarchyTree = new HierarchyTree(component) {
    //  @Override
    //  public void onComponentChanged(Component c) {
    //    boolean wasHighlighted = myHighlightComponent != null;
    //    setHighlightingEnabled(false);
    //    switchInfo(c);
    //    setHighlightingEnabled(wasHighlighted);
    //  }
    //};

    //myWrapperPanel.add(myInspectorTable, BorderLayout.CENTER);

    //JSplitPane splitPane = new JSplitPane();
    //splitPane.setDividerLocation(0.5);
    //splitPane.setRightComponent(myWrapperPanel);

    JScrollPane pane = new JBScrollPane(myHierarchyTree);
    //splitPane.setLeftComponent(pane);
    //add(splitPane, BorderLayout.CENTER);

    //myHierarchyTree.expandPath();

    addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {
            close();
        }
    });

    getRootPane().getActionMap().put("CLOSE", new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            close();
        }
    });
    //setHighlightingEnabled(true);
    getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
            .put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "CLOSE");
}

From source file:com.abelsky.idea.geekandpoke.ui.impl.ComicsPanelImpl.java

License:Apache License

@NotNull
private JComponent createToolbar() {
    final ActionManager actionManager = ActionManager.getInstance();
    @NotNull/*from  www .java 2s. c  o m*/
    final DefaultActionGroup actionGroup = new DefaultActionGroup();

    actionGroup.add(new RefreshAction());
    actionGroup.add(new MoreAction());

    final ActionToolbar actionToolbar = actionManager.createActionToolbar("ComicsPanelToolbar", actionGroup,
            true);
    final JComponent actionToolbarComponent = actionToolbar.getComponent();
    @NotNull
    final JPanel actionsPanel = new JPanel();

    actionToolbar.setReservePlaceAutoPopupIcon(false);
    actionsPanel.setLayout(new FlowLayout(FlowLayout.LEADING, 0, 0));
    actionsPanel.add(actionToolbarComponent);

    return actionsPanel;
}

From source file:com.android.tools.adtui.workbench.AttachedToolWindow.java

License:Apache License

private void showGearPopup(@NotNull Component component, int x, int y) {
    DefaultActionGroup group = new DefaultActionGroup();
    addGearPopupActions(group);/*w  ww  . ja va 2  s  .  c o  m*/

    ActionPopupMenu popupMenu = ActionManager.getInstance()
            .createActionPopupMenu(ToolWindowContentUi.POPUP_PLACE, group);
    popupMenu.getComponent().show(component, x, y);
}

From source file:com.android.tools.idea.configurations.ConfigurationToolBar.java

License:Apache License

public static DefaultActionGroup createActions(RenderContext configurationHolder) {
    DefaultActionGroup group = new DefaultActionGroup();
    ConfigurationMenuAction configAction = new ConfigurationMenuAction(configurationHolder);
    group.add(configAction);/*from  w  ww. j  a v a 2s  . c o m*/
    group.addSeparator();

    DeviceMenuAction deviceAction = new DeviceMenuAction(configurationHolder);
    group.add(deviceAction);
    group.addSeparator();

    OrientationMenuAction orientationAction = new OrientationMenuAction(configurationHolder);
    group.add(orientationAction);
    group.addSeparator();

    ThemeMenuAction themeAction = new ThemeMenuAction(configurationHolder);
    group.add(themeAction);
    group.addSeparator();

    ActivityMenuAction activityAction = new ActivityMenuAction(configurationHolder);
    group.add(activityAction);
    group.addSeparator();

    LocaleMenuAction localeAction = new LocaleMenuAction(configurationHolder);
    group.add(localeAction);
    group.addSeparator();

    TargetMenuAction targetMenuAction = new TargetMenuAction(configurationHolder);
    group.add(targetMenuAction);
    return group;
}

From source file:com.android.tools.idea.configurations.RenderOptionsMenuBuilder.java

License:Apache License

private RenderOptionsMenuBuilder(@NotNull final RenderContext context) {
    myGroup = new DefaultActionGroup();
    mySettings = AndroidEditorSettings.getInstance();
    myContext = context;/*ww  w .j a  v a 2 s  . c om*/
}

From source file:com.android.tools.idea.ddms.DevicePanel.java

License:Apache License

@NotNull
public ActionGroup getToolbarActions() {
    DefaultActionGroup group = new DefaultActionGroup();

    group.add(new MyScreenshotAction());
    //group.add(new MyFileExplorerAction());
    //group.add(new Separator());

    group.add(new MyTerminateVMAction());
    group.add(new MyGcAction());
    //group.add(new MyDumpHprofAction());
    //group.add(new MyAllocationTrackerAction());
    //group.add(new Separator());

    //group.add(new MyToggleMethodProfilingAction());
    //group.add(new MyThreadDumpAction()); // thread dump -> systrace
    return group;
}

From source file:com.android.tools.idea.editors.allocations.AllocationsView.java

License:Apache License

public AllocationsView(@NotNull Project project, @NotNull final AllocationInfo[] allocations) {
    myProject = project;/*from   www .j  a va 2  s .co m*/
    myAllocations = allocations;
    myGroupByName = PropertiesComponent.getInstance(project).getValue(ALLOCATION_VIEW_ID + GROUP_BY_NAME,
            GroupByMethod.NAME);
    myPackageFilter = new SearchTextFieldWithStoredHistory("alloc.package.filter");
    myPackageFilter.addDocumentListener(new DocumentAdapter() {
        @Override
        protected void textChanged(DocumentEvent e) {
            myAlarm.cancelAllRequests();
            myAlarm.addRequest(() -> setGroupByName(GroupByAllocator.NAME), 1000);
        }
    });
    myTreeNode = generateTree();
    myTreeModel = new DefaultTreeModel(myTreeNode);
    myAlarm = new Alarm(project);

    myTree = new Tree(myTreeModel);
    myTree.setRootVisible(false);
    myTree.setShowsRootHandles(true);

    myTree.putClientProperty(DataManager.CLIENT_PROPERTY_DATA_PROVIDER, this.new TreeDataProvider());
    final DefaultActionGroup popupGroup = new DefaultActionGroup();
    popupGroup.add(new EditMultipleSourcesAction());
    myTree.addMouseListener(new PopupHandler() {
        @Override
        public void invokePopup(Component comp, int x, int y) {
            ActionManager.getInstance().createActionPopupMenu(ActionPlaces.UNKNOWN, popupGroup).getComponent()
                    .show(comp, x, y);
        }
    });

    myTree.addTreeExpansionListener(new TreeExpansionListener() {
        private boolean myIsCurrentlyExpanding = false;

        @Override
        public void treeExpanded(TreeExpansionEvent event) {
            if (myIsCurrentlyExpanding) {
                return;
            }

            myIsCurrentlyExpanding = true;
            // Do a fast expansion of descendant nodes if they only have one child each.
            AbstractTreeNode node = (AbstractTreeNode) event.getPath().getLastPathComponent();
            AbstractTreeNode currentNode = node;
            int recursiveDepth = 0;
            List<Object> expandedPath = new ArrayList<>(Arrays.asList(event.getPath().getPath()));
            while (currentNode.getChildCount() == 1 && recursiveDepth < MAX_AUTO_EXPANSION_DEPTH) {
                AbstractTreeNode childNode = (AbstractTreeNode) currentNode.getChildAt(0);
                if (childNode.isLeaf()) {
                    break;
                }
                expandedPath.add(childNode);
                currentNode = childNode;
                ++recursiveDepth;
            }

            if (node != currentNode) {
                myTree.expandPath(new TreePath(expandedPath.toArray()));
            }
            myIsCurrentlyExpanding = false;
        }

        @Override
        public void treeCollapsed(TreeExpansionEvent event) {
        }
    });

    ColumnTreeBuilder builder = new ColumnTreeBuilder(myTree)
            .addColumn(new ColumnTreeBuilder.ColumnBuilder().setName("Method").setPreferredWidth(600)
                    .setHeaderAlignment(SwingConstants.LEFT).setComparator((a, b) -> {
                        if (a instanceof ThreadNode && b instanceof ThreadNode) {
                            return ((ThreadNode) a).getThreadId() - ((ThreadNode) b).getThreadId();
                        } else if (a instanceof StackNode && b instanceof StackNode) {
                            StackTraceElement ea = ((StackNode) a).getStackTraceElement();
                            StackTraceElement eb = ((StackNode) b).getStackTraceElement();
                            int value = ea.getMethodName().compareTo(eb.getMethodName());
                            if (value == 0)
                                value = ea.getLineNumber() - eb.getLineNumber();
                            return value;
                        } else {
                            return a.getClass().toString().compareTo(b.getClass().toString());
                        }
                    }).setRenderer(new NodeTreeCellRenderer()))
            .addColumn(new ColumnTreeBuilder.ColumnBuilder().setName("Count").setPreferredWidth(150)
                    .setHeaderAlignment(SwingConstants.RIGHT)
                    .setComparator((AbstractTreeNode a, AbstractTreeNode b) -> a.getCount() - b.getCount())
                    .setRenderer(new ColoredTreeCellRenderer() {
                        @Override
                        public void customizeCellRenderer(@NotNull JTree tree, Object value, boolean selected,
                                boolean expanded, boolean leaf, int row, boolean hasFocus) {
                            if (value instanceof ValuedTreeNode) {
                                int v = ((ValuedTreeNode) value).getCount();
                                int total = myTreeNode.getCount();
                                setTextAlign(SwingConstants.RIGHT);
                                append(String.valueOf(v));
                                append(String.format(" (%.2f%%)", 100.0f * v / total),
                                        new SimpleTextAttributes(STYLE_PLAIN, JBColor.GRAY));
                            }
                        }
                    }))
            .addColumn(new ColumnTreeBuilder.ColumnBuilder().setName("Total Size").setPreferredWidth(150)
                    .setHeaderAlignment(SwingConstants.RIGHT).setInitialOrder(SortOrder.DESCENDING)
                    .setComparator((AbstractTreeNode a, AbstractTreeNode b) -> a.getValue() - b.getValue())
                    .setRenderer(new ColoredTreeCellRenderer() {
                        @Override
                        public void customizeCellRenderer(@NotNull JTree tree, Object value, boolean selected,
                                boolean expanded, boolean leaf, int row, boolean hasFocus) {
                            if (value instanceof ValuedTreeNode) {
                                int v = ((ValuedTreeNode) value).getValue();
                                int total = myTreeNode.getValue();
                                setTextAlign(SwingConstants.RIGHT);
                                append(String.valueOf(v));
                                append(String.format(" (%.2f%%)", 100.0f * v / total),
                                        new SimpleTextAttributes(STYLE_PLAIN, JBColor.GRAY));
                            }
                        }
                    }));

    builder.setTreeSorter((Comparator<AbstractTreeNode> comparator, SortOrder sortOrder) -> {
        myTreeNode.sort(comparator);
        myTreeModel.nodeStructureChanged(myTreeNode);
    });
    JComponent columnTree = builder.build();

    mySplitter = new JBSplitter(true);

    new TreeSpeedSearch(myTree, e -> {
        Object o = e.getLastPathComponent();
        if (o instanceof StackNode) {
            StackTraceElement ee = ((StackNode) o).getStackTraceElement();
            return ee.toString();
        }
        return o.toString();
    }, true);

    JPanel panel = new JPanel(new BorderLayout());

    JPanel topPanel = new JPanel(new BorderLayout());
    ActionToolbar toolbar = ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN,
            getMainActions(), true);
    topPanel.add(toolbar.getComponent(), BorderLayout.CENTER);
    myPackageFilter.setVisible(false);
    topPanel.add(myPackageFilter, BorderLayout.EAST);
    panel.add(topPanel, BorderLayout.NORTH);
    panel.add(columnTree, BorderLayout.CENTER);

    mySplitter.setFirstComponent(panel);

    myChartPane = new JPanel(new BorderLayout());
    myLayout = new SunburstChart(myTreeNode);
    myLayout.setAngle(360.0f);
    myLayout.setAutoSize(true);
    myLayout.setSeparator(1.0f);
    myLayout.setGap(20.0f);
    myLayout.addSelectionListener(this);
    myLayout.setBorder(IdeBorderFactory.createBorder());
    myLayout.setBackground(UIUtil.getTreeBackground());
    Choreographer.animate(myLayout);

    toolbar = ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, getChartActions(), true);
    myChartOrientation = "Sunburst";
    myChartUnit = "Size";

    myChartPane = new JPanel(new BorderLayout());
    myChartPane.add(toolbar.getComponent(), BorderLayout.NORTH);
    JBSplitter chartSplitter = new JBSplitter();
    myChartPane.add(chartSplitter, BorderLayout.CENTER);
    chartSplitter.setFirstComponent(myLayout);
    if (PropertiesComponent.getInstance().getBoolean(ALLOCATION_VIEW_ID + SHOW_CHART_STATE, false)) {
        mySplitter.setSecondComponent(myChartPane);
    }

    JPanel infoPanel = new JPanel(new BorderLayout());
    infoPanel.setBorder(IdeBorderFactory.createBorder());

    myInfoLabel = new JLabel();
    myInfoLabel.setBackground(UIUtil.getTreeBackground());
    myInfoLabel.setOpaque(true);
    myInfoLabel.setVerticalAlignment(SwingConstants.TOP);
    infoPanel.add(myInfoLabel, BorderLayout.NORTH);
    myInfoTableModel = new DefaultTableModel() {
        @Override
        public boolean isCellEditable(int i, int i1) {
            return false;
        }
    };
    myInfoTableModel.addColumn("Data");
    myInfoTable = new JBTable(myInfoTableModel);
    myInfoTable.putClientProperty(DataManager.CLIENT_PROPERTY_DATA_PROVIDER, this.new TableDataProvider());
    myInfoTable.addMouseListener(new PopupHandler() {
        @Override
        public void invokePopup(Component comp, int x, int y) {
            ActionManager.getInstance().createActionPopupMenu(ActionPlaces.UNKNOWN, popupGroup).getComponent()
                    .show(comp, x, y);
        }

        @Override
        public void mousePressed(MouseEvent e) {
            super.mousePressed(e);

            if (e.getClickCount() == 2) {
                Object value = myInfoTable.getValueAt(myInfoTable.getSelectedRow(), 0);
                if (value instanceof TreeNode) {
                    TreeNode[] nodes = myTreeModel.getPathToRoot((TreeNode) value);
                    TreePath path = new TreePath(nodes);
                    myTree.setSelectionPath(path);
                    myTree.scrollPathToVisible(path);
                }
            }
        }
    });
    myInfoTable.setTableHeader(null);
    myInfoTable.setShowGrid(false);
    myInfoTable.setDefaultRenderer(Object.class, new NodeTableCellRenderer());
    JBScrollPane scroll = new JBScrollPane(myInfoTable);
    scroll.setBorder(BorderFactory.createEmptyBorder());
    infoPanel.add(scroll, BorderLayout.CENTER);
    chartSplitter.setSecondComponent(infoPanel);
    chartSplitter.setProportion(0.7f);

    myComponent = mySplitter;

    setGroupByName(myGroupByName);
}

From source file:com.android.tools.idea.editors.allocations.AllocationsView.java

License:Apache License

private ActionGroup getMainActions() {
    DefaultActionGroup group = new DefaultActionGroup();

    group.add(new ComboBoxAction() {
        @NotNull//from  w  w  w.  j a  v a  2  s.c  o  m
        @Override
        protected DefaultActionGroup createPopupActionGroup(JComponent button) {
            DefaultActionGroup group = new DefaultActionGroup();
            group.add(new ChangeGroupAction(GroupByMethod.NAME));
            group.add(new ChangeGroupAction(GroupByAllocator.NAME));
            return group;
        }

        @Override
        public void update(AnActionEvent e) {
            super.update(e);
            getTemplatePresentation().setText(myGroupBy.get(myGroupByName).getName());
            e.getPresentation().setText(myGroupBy.get(myGroupByName).getName());
        }
    });
    group.add(new EditMultipleSourcesAction());
    group.add(new ShowChartAction());
    group.add(new Separator());
    group.add(new BrowserHelpAction("Hprof Viewer",
            "http://developer.android.com/r/studio-ui/am-allocation.html"));

    return group;
}

From source file:com.android.tools.idea.editors.allocations.AllocationsView.java

License:Apache License

private ActionGroup getChartActions() {
    DefaultActionGroup group = new DefaultActionGroup();
    group.add(new ComboBoxAction() {
        @NotNull//from w  ww.  j a  v a  2s. co m
        @Override
        protected DefaultActionGroup createPopupActionGroup(JComponent button) {
            DefaultActionGroup group = new DefaultActionGroup();
            group.add(new AnAction("Sunburst") {
                @Override
                public void actionPerformed(AnActionEvent e) {
                    myChartOrientation = "Sunburst";
                    myLayout.setAngle(360.0f);
                }
            });
            group.add(new AnAction("Layout") {
                @Override
                public void actionPerformed(AnActionEvent e) {
                    myChartOrientation = "Layout";
                    myLayout.setAngle(0.0f);
                }
            });
            return group;
        }

        @Override
        public void update(AnActionEvent e) {
            super.update(e);
            getTemplatePresentation().setText(myChartOrientation);
            e.getPresentation().setText(myChartOrientation);
        }
    });
    group.add(new ComboBoxAction() {
        @NotNull
        @Override
        protected DefaultActionGroup createPopupActionGroup(JComponent button) {
            DefaultActionGroup group = new DefaultActionGroup();
            group.add(new AnAction("Size") {
                @Override
                public void actionPerformed(AnActionEvent e) {
                    myChartUnit = "Size";
                    myLayout.setUseCount(false);
                }
            });
            group.add(new AnAction("Count") {
                @Override
                public void actionPerformed(AnActionEvent e) {
                    myChartUnit = "Count";
                    myLayout.setUseCount(true);
                }
            });
            return group;
        }

        @Override
        public void update(AnActionEvent e) {
            super.update(e);
            getTemplatePresentation().setText(myChartUnit);
            e.getPresentation().setText(myChartUnit);
        }
    });
    return group;
}