use of com.intellij.ui.FilterComponent 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.ui.FilterComponent 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;
}
Aggregations