private void actionPerformed(final AnActionEvent event) { if (myAction instanceof ActionGroup && !(myAction instanceof CustomComponentAction) && ((ActionGroup)myAction).isPopup()) { final ActionManagerImpl am = (ActionManagerImpl)ActionManager.getInstance(); ActionPopupMenuImpl popupMenu = (ActionPopupMenuImpl)am.createActionPopupMenu(event.getPlace(), (ActionGroup)myAction, new MenuItemPresentationFactory() { @Override protected void processPresentation(Presentation presentation) { if (myNoIconsInPopup) { presentation.setIcon(null); presentation.setHoveredIcon(null); } } }); popupMenu.setDataContextProvider(new Getter<DataContext>() { @Override public DataContext get() { return ActionButton.this.getDataContext(); } }); if (ActionPlaces.isToolbarPlace(event.getPlace())) { popupMenu.getComponent().show(this, 0, getHeight()); } else { popupMenu.getComponent().show(this, getWidth(), 0); } } else { ActionUtil.performActionDumbAware(myAction, event); } }
private JComponent getCustomComponent(AnAction action) { Presentation presentation = myPresentationFactory.getPresentation(action); JComponent customComponent = ObjectUtils.tryCast(presentation.getClientProperty(CustomComponentAction.CUSTOM_COMPONENT_PROPERTY), JComponent.class); if (customComponent == null) { customComponent = ((CustomComponentAction)action).createCustomComponent(presentation); presentation.putClientProperty(CustomComponentAction.CUSTOM_COMPONENT_PROPERTY, customComponent); } if (customComponent instanceof JCheckBox) { customComponent.setBorder(JBUI.Borders.empty(0, 9, 0, 0)); } tweakActionComponentUI(customComponent); return customComponent; }
private void actionPerformed(final AnActionEvent event) { if (myAction instanceof ActionGroup && !(myAction instanceof CustomComponentAction) && ((ActionGroup)myAction).isPopup()) { final ActionManagerImpl am = (ActionManagerImpl)ActionManager.getInstance(); ActionPopupMenuImpl popupMenu = (ActionPopupMenuImpl)am.createActionPopupMenu(event.getPlace(), (ActionGroup)myAction, new MenuItemPresentationFactory() { @Override protected Presentation processPresentation(Presentation presentation) { if (myNoIconsInPopup) { presentation.setIcon(null); presentation.setHoveredIcon(null); } return presentation; } }); popupMenu.setDataContextProvider(new Getter<DataContext>() { @Override public DataContext get() { return ActionButton.this.getDataContext(); } }); if (ActionPlaces.isToolbarPlace(event.getPlace())) { popupMenu.getComponent().show(this, 0, getHeight()); } else { popupMenu.getComponent().show(this, getWidth(), 0); } } else { ActionUtil.performActionDumbAware(myAction, event); } }
private JComponent getCustomComponent(AnAction action) { Presentation presentation = myPresentationFactory.getPresentation(action); JComponent customComponent = ((CustomComponentAction)action).createCustomComponent(presentation); if (ActionPlaces.EDITOR_TOOLBAR.equals(myPlace)) { // tweak font & color for editor toolbar to match editor tabs style Color foreground = customComponent.getForeground(); customComponent.setFont(UIUtil.getLabelFont(UIUtil.FontSize.SMALL)); if (foreground != null) customComponent.setForeground(ColorUtil.dimmer(foreground)); } presentation.putClientProperty(CustomComponentAction.CUSTOM_COMPONENT_PROPERTY, customComponent); return customComponent; }
private void actionPerformed(final AnActionEvent event) { if (myAction instanceof ActionGroup && !(myAction instanceof CustomComponentAction) && ((ActionGroup)myAction).isPopup() && !((ActionGroup)myAction).canBePerformed(event.getDataContext())) { final ActionManagerImpl am = (ActionManagerImpl)ActionManager.getInstance(); ActionPopupMenuImpl popupMenu = (ActionPopupMenuImpl)am.createActionPopupMenu(event.getPlace(), (ActionGroup)myAction, new MenuItemPresentationFactory() { @Override protected void processPresentation(Presentation presentation) { if (myNoIconsInPopup) { presentation.setIcon(null); presentation.setHoveredIcon(null); } } }); popupMenu.setDataContextProvider(this::getDataContext); if (event.isFromActionToolbar()) { popupMenu.getComponent().show(this, 0, getHeight()); } else { popupMenu.getComponent().show(this, getWidth(), 0); } } else { ActionUtil.performActionDumbAware(myAction, event); } }
private void fillToolBar(final List<AnAction> actions, boolean layoutSecondaries) { if (myAddSeparatorFirst) { add(new MySeparator()); } for (int i = 0; i < actions.size(); i++) { final AnAction action = actions.get(i); if (action instanceof Separator && isNavBar()) { continue; } //if (action instanceof ComboBoxAction) { // ((ComboBoxAction)action).setSmallVariant(true); //} if (layoutSecondaries) { if (!myActionGroup.isPrimary(action)) { mySecondaryActions.add(action); continue; } } if (action instanceof Separator) { if (i > 0 && i < actions.size() - 1) { add(new MySeparator()); } } else if (action instanceof CustomComponentAction) { add(getCustomComponent(action)); } else { add(createToolbarButton(action)); } } if (mySecondaryActions.getChildrenCount() > 0) { mySecondaryActionsButton = new ActionButton(mySecondaryActions, myPresentationFactory.getPresentation(mySecondaryActions), myPlace, getMinimumButtonSize()); mySecondaryActionsButton.setNoIconsInPopup(true); add(mySecondaryActionsButton); } if (Registry.is("search.everywhere.enabled") && (ActionPlaces.MAIN_TOOLBAR.equals(myPlace) || ActionPlaces.NAVIGATION_BAR.equals(myPlace))) { final JComponent searchEverywhere = getCustomComponent(ActionManager.getInstance().getAction("SearchEverywhere")); searchEverywhere.putClientProperty("SEARCH_EVERYWHERE", Boolean.TRUE); add(searchEverywhere); } }