public void update(final AnActionEvent e) { final FileGroupInfo fileGroupInfo = new FileGroupInfo(); myHelperAction.setFileIterationListener(fileGroupInfo); myHelperAction.update(e); myGetterStub.setDelegate(fileGroupInfo); if ((e.getPresentation().isEnabled())) { removeAll(); if (myHelperAction.allAreIgnored()) { final DataContext dataContext = e.getDataContext(); final Project project = CommonDataKeys.PROJECT.getData(dataContext); SvnVcs vcs = SvnVcs.getInstance(project); final Ref<Boolean> filesOk = new Ref<Boolean>(Boolean.FALSE); final Ref<Boolean> extensionOk = new Ref<Boolean>(Boolean.FALSE); // virtual files parameter is not used -> can pass null SvnPropertyService.doCheckIgnoreProperty( vcs, project, null, fileGroupInfo, fileGroupInfo.getExtensionMask(), filesOk, extensionOk); if (Boolean.TRUE.equals(filesOk.get())) { myRemoveExactAction.setActionText( fileGroupInfo.oneFileSelected() ? fileGroupInfo.getFileName() : SvnBundle.message("action.Subversion.UndoIgnore.text")); add(myRemoveExactAction); } if (Boolean.TRUE.equals(extensionOk.get())) { myRemoveExtensionAction.setActionText(fileGroupInfo.getExtensionMask()); add(myRemoveExtensionAction); } e.getPresentation().setText(SvnBundle.message("group.RevertIgnoreChoicesGroup.text")); } else if (myHelperAction.allCanBeIgnored()) { final String ignoreExactlyName = (fileGroupInfo.oneFileSelected()) ? fileGroupInfo.getFileName() : SvnBundle.message("action.Subversion.Ignore.ExactMatch.text"); myAddExactAction.setActionText(ignoreExactlyName); add(myAddExactAction); if (fileGroupInfo.sameExtension()) { myAddExtensionAction.setActionText(fileGroupInfo.getExtensionMask()); add(myAddExtensionAction); } e.getPresentation().setText(SvnBundle.message("group.IgnoreChoicesGroup.text")); } } }
private static boolean isEnabled(DataContext dataContext) { Project project = CommonDataKeys.PROJECT.getData(dataContext); if (project == null || EditorGutter.KEY.getData(dataContext) != null || Boolean.TRUE.equals(dataContext.getData(CommonDataKeys.EDITOR_VIRTUAL_SPACE))) { return false; } Editor editor = CommonDataKeys.EDITOR.getData(dataContext); if (editor == null) { UsageTarget[] target = UsageView.USAGE_TARGETS_KEY.getData(dataContext); return target != null && target.length > 0; } else { PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(editor.getDocument()); if (file == null) { return false; } Language language = PsiUtilBase.getLanguageInEditor(editor, project); if (language == null) { language = file.getLanguage(); } return !(LanguageFindUsages.INSTANCE.forLanguage(language) instanceof EmptyFindUsagesProvider); } }
private void appendAction(@NotNull AnAction action) { Presentation presentation = getPresentation(action); AnActionEvent event = createActionEvent(action); ActionUtil.performDumbAwareUpdate(action, event, true); if ((myShowDisabled || presentation.isEnabled()) && presentation.isVisible()) { String text = presentation.getText(); if (myShowNumbers) { if (myCurrentNumber < 9) { text = "&" + (myCurrentNumber + 1) + ". " + text; } else if (myCurrentNumber == 9) { text = "&" + 0 + ". " + text; } else if (myUseAlphaAsNumbers) { text = "&" + (char) ('A' + myCurrentNumber - 10) + ". " + text; } myCurrentNumber++; } else if (myHonorActionMnemonics) { text = Presentation.restoreTextWithMnemonic( text, action.getTemplatePresentation().getMnemonic()); } Icon icon = presentation.getIcon(); if (icon == null) { @NonNls final String actionId = ActionManager.getInstance().getId(action); if (actionId != null && actionId.startsWith("QuickList.")) { icon = AllIcons.Actions.QuickList; } else if (action instanceof Toggleable) { boolean toggled = Boolean.TRUE.equals(presentation.getClientProperty(Toggleable.SELECTED_PROPERTY)); icon = toggled ? new IconWrapper(PlatformIcons.CHECK_ICON) : myEmptyIcon; } else { icon = myEmptyIcon; } } else { icon = new IconWrapper(icon); } boolean prependSeparator = (!myListModel.isEmpty() || mySeparatorText != null) && myPrependWithSeparator; assert text != null : action + " has no presentation"; myListModel.add( new ActionItem( action, text, presentation.isEnabled(), icon, prependSeparator, mySeparatorText)); myPrependWithSeparator = false; mySeparatorText = null; } }
@Override public void update(final AnActionEvent e) { super.update(e); Presentation presentation = e.getPresentation(); Object property = presentation.getClientProperty(CUSTOM_COMPONENT_PROPERTY); if (property instanceof JCheckBox) { JCheckBox checkBox = (JCheckBox) property; checkBox.setText(presentation.getText()); checkBox.setToolTipText(presentation.getDescription()); checkBox.setMnemonic(presentation.getMnemonic()); checkBox.setDisplayedMnemonicIndex(presentation.getDisplayedMnemonicIndex()); checkBox.setSelected(Boolean.TRUE.equals(presentation.getClientProperty(SELECTED_PROPERTY))); checkBox.setEnabled(presentation.isEnabled()); checkBox.setVisible(presentation.isVisible()); } }
private void updateIcon(AnAction action) { if (action instanceof Toggleable && myPresentation.getIcon() == null) { action.update(myEvent); if (Boolean.TRUE.equals( myEvent.getPresentation().getClientProperty(Toggleable.SELECTED_PROPERTY))) { setIcon(ourCheckedIcon); setDisabledIcon(IconLoader.getDisabledIcon(ourCheckedIcon)); } else { setIcon(ourUncheckedIcon); setDisabledIcon(IconLoader.getDisabledIcon(ourUncheckedIcon)); } } else { if (!SystemInfo.isMac || UISettings.getInstance().SHOW_ICONS_IN_MENUS) { Icon icon = myPresentation.getIcon(); setIcon(icon); if (myPresentation.getDisabledIcon() != null) { setDisabledIcon(myPresentation.getDisabledIcon()); } else { setDisabledIcon(IconLoader.getDisabledIcon(icon)); } } } }
private void updateIcon(AnAction action) { if (isToggleable() && (myPresentation.getIcon() == null || myInsideCheckedGroup || !UISettings.getInstance().SHOW_ICONS_IN_MENUS)) { action.update(myEvent); myToggled = Boolean.TRUE.equals( myEvent.getPresentation().getClientProperty(Toggleable.SELECTED_PROPERTY)); if (ActionPlaces.MAIN_MENU.equals(myPlace) && SystemInfo.isMacSystemMenu || UIUtil.isUnderNimbusLookAndFeel() || UIUtil.isUnderWindowsLookAndFeel() && SystemInfo.isWin7OrNewer) { setState(myToggled); } else if (!(getUI() instanceof GtkMenuItemUI)) { if (myToggled) { setIcon(ourCheckedIcon); setDisabledIcon(IconLoader.getDisabledIcon(ourCheckedIcon)); } else { setIcon(ourUncheckedIcon); setDisabledIcon(IconLoader.getDisabledIcon(ourUncheckedIcon)); } } } else { if (UISettings.getInstance().SHOW_ICONS_IN_MENUS) { Icon icon = myPresentation.getIcon(); if (action instanceof ToggleAction && ((ToggleAction) action).isSelected(myEvent)) { icon = new PoppedIcon(icon, 16, 16); } setIcon(icon); if (myPresentation.getDisabledIcon() != null) { setDisabledIcon(myPresentation.getDisabledIcon()); } else { setDisabledIcon(IconLoader.getDisabledIcon(icon)); } } } }