diff --git a/java/debugger/impl/src/com/intellij/debugger/actions/AdjustArrayRangeAction.java b/java/debugger/impl/src/com/intellij/debugger/actions/AdjustArrayRangeAction.java index b7c311eb2089..5f905ddc4784 100644 --- a/java/debugger/impl/src/com/intellij/debugger/actions/AdjustArrayRangeAction.java +++ b/java/debugger/impl/src/com/intellij/debugger/actions/AdjustArrayRangeAction.java @@ -24,6 +24,7 @@ import com.intellij.debugger.ui.impl.watch.NodeDescriptorImpl; import com.intellij.debugger.ui.impl.watch.ValueDescriptorImpl; import com.intellij.debugger.ui.tree.render.*; import com.intellij.debugger.ui.tree.render.Renderer; +import com.intellij.ide.actions.ShowSettingsUtilImpl; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.options.Configurable; import com.intellij.openapi.options.ex.SingleConfigurableEditor; @@ -68,14 +69,9 @@ public class AdjustArrayRangeAction extends DebuggerAction { title = title + " " + label.substring(index); } final ArrayRenderer clonedRenderer = renderer.clone(); - SingleConfigurableEditor editor = new SingleConfigurableEditor(project, new NamedArrayConfigurable(title, clonedRenderer)) { - protected Action[] createActions() { - final String helpTopic = getConfigurable().getHelpTopic(); - return (helpTopic != null)? - new Action[]{getOKAction(), getCancelAction(), getHelpAction()} : - new Action[]{getOKAction(), getCancelAction()}; - } - }; + final NamedArrayConfigurable configurable = new NamedArrayConfigurable(title, clonedRenderer); + SingleConfigurableEditor editor = new SingleConfigurableEditor(project, configurable, + ShowSettingsUtilImpl.createDimensionKey(configurable), false); editor.show(); if(editor.getExitCode() == DialogWrapper.OK_EXIT_CODE) { diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsManagerMain.java b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsManagerMain.java index 3b5fa3d78f2b..269ed7ba01c1 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsManagerMain.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsManagerMain.java @@ -16,6 +16,7 @@ package com.intellij.ide.plugins; import com.intellij.CommonBundle; +import com.intellij.ide.actions.ShowSettingsUtilImpl; import com.intellij.openapi.actionSystem.ActionGroup; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; @@ -62,12 +63,8 @@ public class InstalledPluginsManagerMain extends PluginManagerMain { button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - new SingleConfigurableEditor(myActionsPanel, createAvailableConfigurable()) { - @Override - protected Action[] createActions() { - return new Action[] {getOKAction(), getCancelAction(), getHelpAction()}; - } - }.show(); + final PluginManagerConfigurable configurable = createAvailableConfigurable(); + new SingleConfigurableEditor(myActionsPanel, configurable, ShowSettingsUtilImpl.createDimensionKey(configurable), false).show(); } }); myActionsPanel.add(button); diff --git a/platform/platform-impl/src/com/intellij/openapi/options/ex/SingleConfigurableEditor.java b/platform/platform-impl/src/com/intellij/openapi/options/ex/SingleConfigurableEditor.java index acfdcb4160e4..f6adea145500 100644 --- a/platform/platform-impl/src/com/intellij/openapi/options/ex/SingleConfigurableEditor.java +++ b/platform/platform-impl/src/com/intellij/openapi/options/ex/SingleConfigurableEditor.java @@ -35,6 +35,8 @@ import org.jetbrains.annotations.NonNls; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; +import java.util.ArrayList; +import java.util.List; public class SingleConfigurableEditor extends DialogWrapper { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.options.ex.SingleConfigurableEditor"); @@ -43,11 +45,16 @@ public class SingleConfigurableEditor extends DialogWrapper { private Configurable myConfigurable; private JComponent myCenterPanel; private String myDimensionKey; + private final boolean myShowApplyButton; private boolean myChangesWereApplied; - public SingleConfigurableEditor(Project project, Configurable configurable, @NonNls String dimensionKey) { + public SingleConfigurableEditor(Project project, + Configurable configurable, + @NonNls String dimensionKey, + final boolean showApplyButton) { super(project, true); myDimensionKey = dimensionKey; + myShowApplyButton = showApplyButton; setTitle(createTitleString(configurable)); myProject = project; @@ -56,9 +63,13 @@ public class SingleConfigurableEditor extends DialogWrapper { myConfigurable.reset(); } - public SingleConfigurableEditor(Component parent, Configurable configurable, String dimensionServiceKey) { + public SingleConfigurableEditor(Component parent, + Configurable configurable, + String dimensionServiceKey, + final boolean showApplyButton) { super(parent, true); myDimensionKey = dimensionServiceKey; + myShowApplyButton = showApplyButton; setTitle(createTitleString(configurable)); myParentComponent = parent; @@ -67,12 +78,12 @@ public class SingleConfigurableEditor extends DialogWrapper { myConfigurable.reset(); } - public Configurable getConfigurable() { - return myConfigurable; + public SingleConfigurableEditor(Project project, Configurable configurable, @NonNls String dimensionKey) { + this(project, configurable, dimensionKey, true); } - public Project getProject() { - return myProject; + public SingleConfigurableEditor(Component parent, Configurable configurable, String dimensionServiceKey) { + this(parent, configurable, dimensionServiceKey, true); } public SingleConfigurableEditor(Project project, Configurable configurable) { @@ -83,6 +94,14 @@ public class SingleConfigurableEditor extends DialogWrapper { this(parent, configurable, ShowSettingsUtilImpl.createDimensionKey(configurable)); } + public Configurable getConfigurable() { + return myConfigurable; + } + + public Project getProject() { + return myProject; + } + private static String createTitleString(Configurable configurable) { String displayName = configurable.getDisplayName(); LOG.assertTrue(displayName != null, configurable.getClass().getName()); @@ -99,12 +118,16 @@ public class SingleConfigurableEditor extends DialogWrapper { } protected Action[] createActions() { + List actions = new ArrayList(); + actions.add(getOKAction()); + actions.add(getCancelAction()); + if (myShowApplyButton) { + actions.add(new ApplyAction()); + } if (myConfigurable.getHelpTopic() != null) { - return new Action[]{getOKAction(), getCancelAction(), new ApplyAction(), getHelpAction()}; - } - else { - return new Action[]{getOKAction(), getCancelAction(), new ApplyAction()}; + actions.add(getHelpAction()); } + return actions.toArray(new Action[actions.size()]); } protected void doHelpAction() {