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;
}
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;
}
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));
}
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;
}
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());
}
Aggregations