ActionGroup () { return new DefaultActionGroup(new DumbAwareAction(IdeBundle.messagePointer("button.restore.last.state")) { @Override public void actionPerformed(@NotNull AnActionEvent e) { reset(); } @Override public void update(@NotNull AnActionEvent e) { e.getPresentation().setEnabled(mySelectedSchema.isModified(CustomActionsSchema.getInstance())); } @Override public @NotNull ActionUpdateThread getActionUpdateThread() { return ActionUpdateThread.EDT; } }, new DumbAwareAction(IdeBundle.messagePointer("button.restore.defaults")) { @Override public void actionPerformed(@NotNull AnActionEvent e) { resetToDefaults(); } @Override public void update(@NotNull AnActionEvent e) { CustomActionsSchema cleanScheme = new CustomActionsSchema(null); updateLocalSchema(cleanScheme); e.getPresentation().setEnabled(mySelectedSchema.isModified(cleanScheme)); } @Override public @NotNull ActionUpdateThread getActionUpdateThread() { return ActionUpdateThread.EDT; } }) { { getTemplatePresentation().setPopupGroup(true); getTemplatePresentation().setIcon(AllIcons.Actions.Rollback); getTemplatePresentation().setText(IdeBundle.message("group.customizations.restore.action.group")); } @Override public void update(@NotNull AnActionEvent e) { CustomActionsSchema cleanScheme = new CustomActionsSchema(null); updateLocalSchema(cleanScheme); e.getPresentation().setEnabled(mySelectedSchema.isModified(CustomActionsSchema.getInstance()) || mySelectedSchema.isModified(cleanScheme)); } @Override public @NotNull ActionUpdateThread getActionUpdateThread() { return ActionUpdateThread.EDT; } }; }