diff --git a/platform/core-api/src/com/intellij/openapi/options/BaseSchemeProcessor.java b/platform/core-api/src/com/intellij/openapi/options/BaseSchemeProcessor.java index 845e50fbe804..e9630d633000 100644 --- a/platform/core-api/src/com/intellij/openapi/options/BaseSchemeProcessor.java +++ b/platform/core-api/src/com/intellij/openapi/options/BaseSchemeProcessor.java @@ -27,7 +27,7 @@ import java.io.IOException; /** * @author yole */ -public abstract class BaseSchemeProcessor implements SchemeProcessor { +public abstract class BaseSchemeProcessor implements SchemeProcessor, SchemeExtensionProvider { @Override public void initScheme(@NotNull T scheme) { } @@ -75,4 +75,15 @@ public abstract class BaseSchemeProcessor implem public State getState(@NotNull T scheme) { return shouldBeSaved(scheme) ? State.POSSIBLY_CHANGED : State.NON_PERSISTENT; } + + @Override + public boolean isUpgradeNeeded() { + return false; + } + + @NotNull + @Override + public String getSchemeExtension() { + return ".xml"; + } } diff --git a/platform/platform-api/src/com/intellij/openapi/options/SchemeExtensionProvider.java b/platform/core-api/src/com/intellij/openapi/options/SchemeExtensionProvider.java similarity index 100% rename from platform/platform-api/src/com/intellij/openapi/options/SchemeExtensionProvider.java rename to platform/core-api/src/com/intellij/openapi/options/SchemeExtensionProvider.java diff --git a/platform/core-api/src/com/intellij/openapi/options/SharedScheme.java b/platform/core-api/src/com/intellij/openapi/options/SharedScheme.java deleted file mode 100644 index a0f59d39f521..000000000000 --- a/platform/core-api/src/com/intellij/openapi/options/SharedScheme.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2000-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.intellij.openapi.options; - -import org.jetbrains.annotations.NotNull; - -@Deprecated -public class SharedScheme { - private final String myUserName; - private final String myDescription; - private final E myScheme; - - public SharedScheme(@NotNull String userName, final String description, @NotNull E scheme) { - myUserName = userName; - myDescription = description; - myScheme = scheme; - } - - @NotNull - public String getUserName() { - return myUserName; - } - - public String getDescription() { - return myDescription; - } - - @NotNull - public E getScheme() { - return myScheme; - } -} diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java index a433a1d6f445..1421aef3e99c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/colors/impl/EditorColorsManagerImpl.java @@ -56,7 +56,7 @@ import java.util.Comparator; import java.util.List; public class EditorColorsManagerImpl extends EditorColorsManager implements NamedJDOMExternalizable, ExportableComponent, NamedComponent { - private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.editor.colors.impl.EditorColorsManagerImpl"); + private static final Logger LOG = Logger.getInstance(EditorColorsManagerImpl.class); private final EventDispatcher myListeners = EventDispatcher.create(EditorColorsListener.class); @@ -76,9 +76,49 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name public EditorColorsManagerImpl(DefaultColorSchemesManager defaultColorSchemesManager, SchemesManagerFactory schemesManagerFactory) { myDefaultColorSchemesManager = defaultColorSchemesManager; - mySchemesManager = schemesManagerFactory.createSchemesManager( - FILE_SPEC, - new MySchemeProcessor(), RoamingType.PER_USER); + mySchemesManager = schemesManagerFactory.createSchemesManager(FILE_SPEC, new BaseSchemeProcessor() { + @NotNull + @Override + public EditorColorsSchemeImpl readScheme(@NotNull Element element) throws InvalidDataException { + return loadSchemeFromDocument(element, true); + } + + @Override + public Element writeScheme(@NotNull final EditorColorsSchemeImpl scheme) { + Element root = new Element(SCHEME_NODE_NAME); + try { + scheme.writeExternal(root); + } + catch (WriteExternalException e) { + LOG.error(e); + return null; + } + + return root; + } + + @NotNull + @Override + public State getState(@NotNull EditorColorsSchemeImpl scheme) { + return scheme instanceof ReadOnlyColorsScheme ? State.NON_PERSISTENT : State.POSSIBLY_CHANGED; + } + + @Override + public void onCurrentSchemeChanged(final Scheme newCurrentScheme) { + fireChanges(mySchemesManager.getCurrentScheme()); + } + + @NotNull + @Override + public String getSchemeExtension() { + return FILE_EXT; + } + + @Override + public boolean isUpgradeNeeded() { + return true; + } + }, RoamingType.PER_USER); addDefaultSchemes(); @@ -184,10 +224,6 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name return scheme; } - // ------------------------------------------------------------------------- - // Schemes manipulation routines - // ------------------------------------------------------------------------- - @Override public void addColorsScheme(@NotNull EditorColorsScheme scheme) { if (!isDefaultScheme(scheme) && scheme.getName().trim().length() > 0) { @@ -208,10 +244,6 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name } } - // ------------------------------------------------------------------------- - // Getters & Setters - // ------------------------------------------------------------------------- - @NotNull @Override public EditorColorsScheme[] getAllSchemes() { @@ -268,10 +300,6 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name myListeners.getMulticaster().globalSchemeChange(scheme); } - // ------------------------------------------------------------------------- - // Routines responsible for loading & saving colors schemes. - // ------------------------------------------------------------------------- - private static File getColorsDir(boolean create) { @NonNls String directoryPath = PathManager.getConfigPath() + File.separator + "colors"; File directory = new File(directoryPath); @@ -368,48 +396,4 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Name public String getComponentName() { return "EditorColorsManagerImpl"; } - - private final class MySchemeProcessor extends BaseSchemeProcessor implements SchemeExtensionProvider { - @NotNull - @Override - public EditorColorsSchemeImpl readScheme(@NotNull Element element) throws InvalidDataException { - return loadSchemeFromDocument(element, true); - } - - @Override - public Element writeScheme(@NotNull final EditorColorsSchemeImpl scheme) { - Element root = new Element(SCHEME_NODE_NAME); - try { - scheme.writeExternal(root); - } - catch (WriteExternalException e) { - LOG.error(e); - return null; - } - - return root; - } - - @NotNull - @Override - public State getState(@NotNull EditorColorsSchemeImpl scheme) { - return scheme instanceof ReadOnlyColorsScheme ? State.NON_PERSISTENT : State.POSSIBLY_CHANGED; - } - - @Override - public void onCurrentSchemeChanged(final Scheme newCurrentScheme) { - fireChanges(mySchemesManager.getCurrentScheme()); - } - - @NotNull - @Override - public String getSchemeExtension() { - return FILE_EXT; - } - - @Override - public boolean isUpgradeNeeded() { - return true; - } - } } diff --git a/platform/platform-impl/src/com/intellij/openapi/options/SchemesManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/options/SchemesManagerImpl.java index a8243ab67d1b..58bf8e6ecb64 100644 --- a/platform/platform-impl/src/com/intellij/openapi/options/SchemesManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/options/SchemesManagerImpl.java @@ -69,7 +69,7 @@ public class SchemesManagerImpl myFilesToDelete = new THashSet(); @@ -85,7 +85,7 @@ public class SchemesManagerImpl