diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleSchemesActions.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleSchemesActions.java index 42d2f2fdfe6b..2dfc69b36a8d 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleSchemesActions.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleSchemesActions.java @@ -65,11 +65,6 @@ abstract class CodeStyleSchemesActions extends AbstractSchemeActions { } } - public void removeScheme(final CodeStyleScheme scheme) { + @Override + public void removeScheme(@NotNull final CodeStyleScheme scheme) { mySchemes.remove(scheme); myDispatcher.getMulticaster().schemeListChanged(); if (myGlobalSelected == scheme) { diff --git a/platform/lang-impl/src/com/intellij/application/options/colors/ColorAndFontOptions.java b/platform/lang-impl/src/com/intellij/application/options/colors/ColorAndFontOptions.java index a97602ced00d..b3835630df55 100644 --- a/platform/lang-impl/src/com/intellij/application/options/colors/ColorAndFontOptions.java +++ b/platform/lang-impl/src/com/intellij/application/options/colors/ColorAndFontOptions.java @@ -255,20 +255,22 @@ public class ColorAndFontOptions extends SearchableConfigurable.Parent.Abstract resetSchemesCombo(null); } - public void removeScheme(String name) { - if (mySelectedScheme.getName().equals(name)) { + @Override + public void removeScheme(@NotNull EditorColorsScheme scheme) { + String schemeName = scheme.getName(); + if (mySelectedScheme.getName().equals(schemeName)) { selectDefaultScheme(); } boolean deletedNewlyCreated = false; - MyColorScheme toDelete = mySchemes.get(name); + MyColorScheme toDelete = mySchemes.get(schemeName); if (toDelete != null) { deletedNewlyCreated = toDelete.isNew(); } - mySchemes.remove(name); + mySchemes.remove(schemeName); resetSchemesCombo(null); mySomeSchemesDeleted = mySomeSchemesDeleted || !deletedNewlyCreated; } diff --git a/platform/lang-impl/src/com/intellij/application/options/colors/ColorSchemeActions.java b/platform/lang-impl/src/com/intellij/application/options/colors/ColorSchemeActions.java index 69a38cd45b93..eca6ae152512 100644 --- a/platform/lang-impl/src/com/intellij/application/options/colors/ColorSchemeActions.java +++ b/platform/lang-impl/src/com/intellij/application/options/colors/ColorSchemeActions.java @@ -112,11 +112,6 @@ public abstract class ColorSchemeActions extends AbstractSchemeActions imple @Override protected void renameScheme(@NotNull EditorColorsScheme scheme, @NotNull String newName) { if (myOptions.saveSchemeAs(scheme, newName)) { - myOptions.removeScheme(scheme.getName()); + myOptions.removeScheme(scheme); myOptions.selectScheme(newName); } } diff --git a/platform/lang-impl/src/com/intellij/application/options/schemes/AbstractSchemeActions.java b/platform/lang-impl/src/com/intellij/application/options/schemes/AbstractSchemeActions.java index c5a89f5ed927..47e99eb6f718 100644 --- a/platform/lang-impl/src/com/intellij/application/options/schemes/AbstractSchemeActions.java +++ b/platform/lang-impl/src/com/intellij/application/options/schemes/AbstractSchemeActions.java @@ -19,6 +19,7 @@ import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.application.ApplicationBundle; import com.intellij.openapi.options.*; import com.intellij.openapi.project.DumbAwareAction; +import com.intellij.openapi.ui.Messages; import com.intellij.openapi.ui.popup.JBPopupFactory; import com.intellij.openapi.ui.popup.ListPopup; import org.jetbrains.annotations.NotNull; @@ -348,7 +349,14 @@ public abstract class AbstractSchemeActions { * * @param scheme The scheme to delete. */ - protected abstract void deleteScheme(@NotNull T scheme); + protected void deleteScheme(@NotNull T scheme) { + if (Messages.showOkCancelDialog( + "Do you want to delete \"" + scheme.getName() + "\" scheme?", + "Delete Scheme", + Messages.getQuestionIcon()) == Messages.OK) { + mySchemesPanel.getModel().removeScheme(scheme); + } + } /** * Export the scheme using the given exporter name. diff --git a/platform/lang-impl/src/com/intellij/application/options/schemes/SchemesModel.java b/platform/lang-impl/src/com/intellij/application/options/schemes/SchemesModel.java index 3f89c5b25b40..d4044c8de8ed 100644 --- a/platform/lang-impl/src/com/intellij/application/options/schemes/SchemesModel.java +++ b/platform/lang-impl/src/com/intellij/application/options/schemes/SchemesModel.java @@ -71,4 +71,6 @@ public interface SchemesModel { * returns {@code true}. */ boolean differsFromDefault(@NotNull T scheme); + + void removeScheme(@NotNull T scheme); }