Search in sources :

Example 6 with TreeExpander

use of com.intellij.ide.TreeExpander in project intellij-community by JetBrains.

the class ChooseActionsDialog method createToolbarPanel.

private JPanel createToolbarPanel() {
    final JPanel panel = new JPanel(new BorderLayout());
    DefaultActionGroup group = new DefaultActionGroup();
    final JComponent toolbar = ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, group, true).getComponent();
    final CommonActionsManager commonActionsManager = CommonActionsManager.getInstance();
    final TreeExpander treeExpander = new TreeExpander() {

        public void expandAll() {
            TreeUtil.expandAll(myActionsTree.getTree());
        }

        public boolean canExpand() {
            return true;
        }

        public void collapseAll() {
            TreeUtil.collapseAll(myActionsTree.getTree(), 0);
        }

        public boolean canCollapse() {
            return true;
        }
    };
    group.add(commonActionsManager.createExpandAllAction(treeExpander, myActionsTree.getTree()));
    group.add(commonActionsManager.createCollapseAllAction(treeExpander, myActionsTree.getTree()));
    panel.add(toolbar, BorderLayout.WEST);
    group = new DefaultActionGroup();
    ActionToolbar actionToolbar = ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, group, true);
    actionToolbar.setReservePlaceAutoPopupIcon(false);
    final JComponent searchToolbar = actionToolbar.getComponent();
    final Alarm alarm = new Alarm();
    myFilterComponent = new FilterComponent("KEYMAP_IN_QUICK_LISTS", 5) {

        public void filter() {
            alarm.cancelAllRequests();
            alarm.addRequest(() -> {
                if (!myFilterComponent.isShowing())
                    return;
                if (!myTreeExpansionMonitor.isFreeze())
                    myTreeExpansionMonitor.freeze();
                myFilteringPanel.setShortcut(null);
                final String filter = getFilter();
                myActionsTree.filter(filter, myQuicklists);
                final JTree tree = myActionsTree.getTree();
                TreeUtil.expandAll(tree);
                if (filter == null || filter.length() == 0) {
                    TreeUtil.collapseAll(tree, 0);
                    myTreeExpansionMonitor.restore();
                }
            }, 300);
        }
    };
    myFilterComponent.reset();
    panel.add(myFilterComponent, BorderLayout.CENTER);
    group.add(new AnAction(KeyMapBundle.message("filter.shortcut.action.text"), KeyMapBundle.message("filter.shortcut.action.text"), AllIcons.Actions.ShortcutFilter) {

        public void actionPerformed(AnActionEvent e) {
            myFilterComponent.reset();
            myActionsTree.reset(myKeymap, myQuicklists);
            myFilteringPanel.showPopup(searchToolbar);
        }
    });
    group.add(new AnAction(KeyMapBundle.message("filter.clear.action.text"), KeyMapBundle.message("filter.clear.action.text"), AllIcons.Actions.GC) {

        @Override
        public void update(AnActionEvent event) {
            boolean enabled = null != myFilteringPanel.getShortcut();
            Presentation presentation = event.getPresentation();
            presentation.setEnabled(enabled);
            presentation.setIcon(enabled ? AllIcons.Actions.Cancel : EmptyIcon.ICON_16);
        }

        public void actionPerformed(AnActionEvent e) {
            myFilteringPanel.setShortcut(null);
            //clear filtering
            myActionsTree.filter(null, myQuicklists);
            TreeUtil.collapseAll(myActionsTree.getTree(), 0);
            myTreeExpansionMonitor.restore();
        }
    });
    panel.add(searchToolbar, BorderLayout.EAST);
    return panel;
}
Also used : TreeExpander(com.intellij.ide.TreeExpander) FilterComponent(com.intellij.ui.FilterComponent) Alarm(com.intellij.util.Alarm) CommonActionsManager(com.intellij.ide.CommonActionsManager)

Example 7 with TreeExpander

use of com.intellij.ide.TreeExpander in project intellij-community by JetBrains.

the class KeymapPanel method createToolbarPanel.

private JPanel createToolbarPanel() {
    final JPanel panel = new JPanel(new GridBagLayout());
    DefaultActionGroup group = new DefaultActionGroup();
    final JComponent toolbar = ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, group, true).getComponent();
    final CommonActionsManager commonActionsManager = CommonActionsManager.getInstance();
    final TreeExpander treeExpander = new TreeExpander() {

        @Override
        public void expandAll() {
            TreeUtil.expandAll(myActionsTree.getTree());
        }

        @Override
        public boolean canExpand() {
            return true;
        }

        @Override
        public void collapseAll() {
            TreeUtil.collapseAll(myActionsTree.getTree(), 0);
        }

        @Override
        public boolean canCollapse() {
            return true;
        }
    };
    group.add(commonActionsManager.createExpandAllAction(treeExpander, myActionsTree.getTree()));
    group.add(commonActionsManager.createCollapseAllAction(treeExpander, myActionsTree.getTree()));
    group.add(new AnAction("Edit Shortcut", "Edit Shortcut", AllIcons.ToolbarDecorator.Edit) {

        {
            registerCustomShortcutSet(CommonShortcuts.ENTER, myActionsTree.getTree());
        }

        @Override
        public void update(@NotNull AnActionEvent e) {
            final String actionId = myActionsTree.getSelectedActionId();
            e.getPresentation().setEnabled(actionId != null);
        }

        @Override
        public void actionPerformed(@NotNull AnActionEvent e) {
            editSelection(e.getInputEvent(), false);
        }
    });
    panel.add(toolbar, new GridBagConstraints(0, 0, 1, 1, 1, 0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(8, 0, 0, 0), 0, 0));
    group = new DefaultActionGroup();
    ActionToolbar actionToolbar = ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, group, true);
    actionToolbar.setReservePlaceAutoPopupIcon(false);
    final JComponent searchToolbar = actionToolbar.getComponent();
    final Alarm alarm = new Alarm();
    myFilterComponent = new FilterComponent("KEYMAP", 5) {

        @Override
        public void filter() {
            alarm.cancelAllRequests();
            alarm.addRequest(() -> {
                if (!myFilterComponent.isShowing())
                    return;
                myTreeExpansionMonitor.freeze();
                myFilteringPanel.setShortcut(null);
                final String filter = getFilter();
                myActionsTree.filter(filter, myQuickLists);
                final JTree tree = myActionsTree.getTree();
                TreeUtil.expandAll(tree);
                if (filter == null || filter.length() == 0) {
                    TreeUtil.collapseAll(tree, 0);
                    myTreeExpansionMonitor.restore();
                } else {
                    myTreeExpansionMonitor.unfreeze();
                }
            }, 300);
        }
    };
    myFilterComponent.reset();
    panel.add(myFilterComponent, new GridBagConstraints(1, 0, 1, 1, 0, 0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(8, 0, 0, 0), 0, 0));
    group.add(new DumbAwareAction(KeyMapBundle.message("filter.shortcut.action.text"), KeyMapBundle.message("filter.shortcut.action.text"), AllIcons.Actions.ShortcutFilter) {

        @Override
        public void actionPerformed(@NotNull AnActionEvent e) {
            myFilterComponent.reset();
            //noinspection ConstantConditions
            myActionsTree.reset(myEditor.getModel().getSelected(), myQuickLists);
            myFilteringPanel.showPopup(searchToolbar);
        }
    });
    group.add(new DumbAwareAction(KeyMapBundle.message("filter.clear.action.text"), KeyMapBundle.message("filter.clear.action.text"), AllIcons.Actions.GC) {

        @Override
        public void update(AnActionEvent event) {
            boolean enabled = null != myFilteringPanel.getShortcut();
            Presentation presentation = event.getPresentation();
            presentation.setEnabled(enabled);
            presentation.setIcon(enabled ? AllIcons.Actions.Cancel : EmptyIcon.ICON_16);
        }

        @Override
        public void actionPerformed(@NotNull AnActionEvent e) {
            myTreeExpansionMonitor.freeze();
            myFilteringPanel.setShortcut(null);
            //clear filtering
            myActionsTree.filter(null, myQuickLists);
            TreeUtil.collapseAll(myActionsTree.getTree(), 0);
            myTreeExpansionMonitor.restore();
        }
    });
    panel.add(searchToolbar, new GridBagConstraints(2, 0, 1, 1, 0, 0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(8, 0, 0, 0), 0, 0));
    return panel;
}
Also used : TreeExpander(com.intellij.ide.TreeExpander) FilterComponent(com.intellij.ui.FilterComponent) DumbAwareAction(com.intellij.openapi.project.DumbAwareAction) Alarm(com.intellij.util.Alarm) CommonActionsManager(com.intellij.ide.CommonActionsManager)

Example 8 with TreeExpander

use of com.intellij.ide.TreeExpander in project intellij-community by JetBrains.

the class BaseStructureConfigurable method addCollapseExpandActions.

protected void addCollapseExpandActions(final List<AnAction> result) {
    final TreeExpander expander = new TreeExpander() {

        @Override
        public void expandAll() {
            TreeUtil.expandAll(myTree);
        }

        @Override
        public boolean canExpand() {
            return true;
        }

        @Override
        public void collapseAll() {
            TreeUtil.collapseAll(myTree, 0);
        }

        @Override
        public boolean canCollapse() {
            return true;
        }
    };
    final CommonActionsManager actionsManager = CommonActionsManager.getInstance();
    result.add(actionsManager.createExpandAllAction(expander, myTree));
    result.add(actionsManager.createCollapseAllAction(expander, myTree));
}
Also used : TreeExpander(com.intellij.ide.TreeExpander) CommonActionsManager(com.intellij.ide.CommonActionsManager)

Example 9 with TreeExpander

use of com.intellij.ide.TreeExpander in project intellij-community by JetBrains.

the class ChooseLibrariesDialogBase method createNorthPanel.

@Override
protected JComponent createNorthPanel() {
    final DefaultActionGroup group = new DefaultActionGroup();
    final TreeExpander expander = new DefaultTreeExpander(myTree);
    final CommonActionsManager actionsManager = CommonActionsManager.getInstance();
    group.add(actionsManager.createExpandAllAction(expander, myTree));
    group.add(actionsManager.createCollapseAllAction(expander, myTree));
    final JComponent component = ActionManager.getInstance().createActionToolbar(ActionPlaces.PROJECT_VIEW_TOOLBAR, group, true).getComponent();
    component.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.darkGray), component.getBorder()));
    return component;
}
Also used : DefaultTreeExpander(com.intellij.ide.DefaultTreeExpander) TreeExpander(com.intellij.ide.TreeExpander) CommonActionsManager(com.intellij.ide.CommonActionsManager) DefaultTreeExpander(com.intellij.ide.DefaultTreeExpander) DefaultActionGroup(com.intellij.openapi.actionSystem.DefaultActionGroup)

Example 10 with TreeExpander

use of com.intellij.ide.TreeExpander in project intellij-community by JetBrains.

the class TreeCollapseAllActionBase method update.

public void update(AnActionEvent event) {
    Presentation presentation = event.getPresentation();
    TreeExpander expander = getExpander(event.getDataContext());
    presentation.setEnabled(expander != null && expander.canCollapse());
}
Also used : TreeExpander(com.intellij.ide.TreeExpander) Presentation(com.intellij.openapi.actionSystem.Presentation)

Aggregations

TreeExpander (com.intellij.ide.TreeExpander)12 CommonActionsManager (com.intellij.ide.CommonActionsManager)7 DefaultTreeExpander (com.intellij.ide.DefaultTreeExpander)3 Presentation (com.intellij.openapi.actionSystem.Presentation)2 FilterComponent (com.intellij.ui.FilterComponent)2 Alarm (com.intellij.util.Alarm)2 NotNull (org.jetbrains.annotations.NotNull)2 ExecutionBundle (com.intellij.execution.ExecutionBundle)1 DashboardGrouper (com.intellij.execution.dashboard.tree.DashboardGrouper)1 RunDashboardTreeStructure (com.intellij.execution.dashboard.tree.RunDashboardTreeStructure)1 DataManager (com.intellij.ide.DataManager)1 com.intellij.ide.util.treeView (com.intellij.ide.util.treeView)1 ActionPresentation (com.intellij.ide.util.treeView.smartTree.ActionPresentation)1 Disposable (com.intellij.openapi.Disposable)1 com.intellij.openapi.actionSystem (com.intellij.openapi.actionSystem)1 AnAction (com.intellij.openapi.actionSystem.AnAction)1 DefaultActionGroup (com.intellij.openapi.actionSystem.DefaultActionGroup)1 ApplicationManager (com.intellij.openapi.application.ApplicationManager)1 DumbAware (com.intellij.openapi.project.DumbAware)1 DumbAwareAction (com.intellij.openapi.project.DumbAwareAction)1