Example usage for com.intellij.openapi.actionSystem.ex ActionManagerEx createActionToolbar

List of usage examples for com.intellij.openapi.actionSystem.ex ActionManagerEx createActionToolbar

Introduction

In this page you can find the example usage for com.intellij.openapi.actionSystem.ex ActionManagerEx createActionToolbar.

Prototype

@NotNull
    public abstract ActionToolbar createActionToolbar(@NotNull String place, @NotNull ActionGroup group,
            boolean horizontal, boolean decorateButtons);

Source Link

Usage

From source file:com.intellij.ui.CommonActionsPanel.java

License:Apache License

CommonActionsPanel(ListenerFactory factory, @Nullable JComponent contextComponent,
        ActionToolbarPosition position, @Nullable AnActionButton[] additionalActions,
        @Nullable Comparator<AnActionButton> buttonComparator, String addName, String removeName,
        String moveUpName, String moveDownName, String editName, Icon addIcon, Buttons... buttons) {
    super(new BorderLayout());
    final Listener listener = factory.createListener(this);
    AnActionButton[] actions = new AnActionButton[buttons.length];
    for (int i = 0; i < buttons.length; i++) {
        Buttons button = buttons[i];/* w w  w .  j ava 2s .  com*/
        String name = null;
        switch (button) {
        case ADD:
            name = addName;
            break;
        case EDIT:
            name = editName;
            break;
        case REMOVE:
            name = removeName;
            break;
        case UP:
            name = moveUpName;
            break;
        case DOWN:
            name = moveDownName;
            break;
        }
        final MyActionButton b = button.createButton(listener, name,
                button == Buttons.ADD && addIcon != null ? addIcon : button.getIcon());
        actions[i] = b;
        myButtons.put(button, b);
    }
    if (additionalActions != null && additionalActions.length > 0) {
        final ArrayList<AnActionButton> allActions = new ArrayList<AnActionButton>(Arrays.asList(actions));
        allActions.addAll(Arrays.asList(additionalActions));
        actions = allActions.toArray(new AnActionButton[allActions.size()]);
    }
    myActions = actions;
    for (AnActionButton action : actions) {
        action.setContextComponent(contextComponent);
    }
    if (buttonComparator != null) {
        Arrays.sort(myActions, buttonComparator);
    }
    ArrayList<AnAction> toolbarActions = new ArrayList<AnAction>(Arrays.asList(myActions));
    for (int i = 0; i < toolbarActions.size(); i++) {
        if (toolbarActions.get(i) instanceof AnActionButton.CheckedAnActionButton) {
            toolbarActions.set(i, ((AnActionButton.CheckedAnActionButton) toolbarActions.get(i)).getDelegate());
        }
    }
    myDecorateButtons = UIUtil.isUnderAquaLookAndFeel() && position == ActionToolbarPosition.BOTTOM;

    final ActionManagerEx mgr = (ActionManagerEx) ActionManager.getInstance();
    final ActionToolbar toolbar = mgr.createActionToolbar(ActionPlaces.UNKNOWN,
            new DefaultActionGroup(toolbarActions.toArray(new AnAction[toolbarActions.size()])),
            position == ActionToolbarPosition.BOTTOM || position == ActionToolbarPosition.TOP,
            myDecorateButtons);
    toolbar.getComponent().setOpaque(false);
    toolbar.getComponent().setBorder(null);
    add(toolbar.getComponent(), BorderLayout.CENTER);
}