diff --git a/platform/editor-ui-ex/src/com/intellij/openapi/editor/colors/ex/DefaultColorSchemesManager.java b/platform/editor-ui-ex/src/com/intellij/openapi/editor/colors/ex/DefaultColorSchemesManager.java index 81c14027ade6..53ac33ba72fc 100644 --- a/platform/editor-ui-ex/src/com/intellij/openapi/editor/colors/ex/DefaultColorSchemesManager.java +++ b/platform/editor-ui-ex/src/com/intellij/openapi/editor/colors/ex/DefaultColorSchemesManager.java @@ -15,34 +15,25 @@ */ package com.intellij.openapi.editor.colors.ex; -import com.intellij.openapi.components.NamedComponent; -import com.intellij.openapi.components.ServiceManager; +import com.intellij.openapi.components.*; import com.intellij.openapi.editor.colors.EditorColorsScheme; import com.intellij.openapi.editor.colors.impl.DefaultColorsScheme; import com.intellij.openapi.util.InvalidDataException; -import com.intellij.openapi.util.JDOMExternalizable; -import com.intellij.openapi.util.WriteExternalException; import org.jdom.Element; import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; -/** - * @author max - */ -public class DefaultColorSchemesManager implements JDOMExternalizable, NamedComponent { +@State( + name = "DefaultColorSchemesManager", + storages = @Storage(file = StoragePathMacros.APP_CONFIG + "/other.xml") +) +public class DefaultColorSchemesManager implements PersistentStateComponent { private final List mySchemes; @NonNls private static final String SCHEME_ELEMENT = "scheme"; - @Override - @NotNull - public String getComponentName() { - return "DefaultColorSchemesManager"; - } - public DefaultColorSchemesManager() { mySchemes = new ArrayList(); } @@ -51,20 +42,24 @@ public class DefaultColorSchemesManager implements JDOMExternalizable, NamedComp return ServiceManager.getService(DefaultColorSchemesManager.class); } + @Nullable @Override - public void readExternal(Element element) throws InvalidDataException { - List schemes = element.getChildren(SCHEME_ELEMENT); - for (Object scheme : schemes) { - Element schemeElement = (Element)scheme; - DefaultColorsScheme newScheme = new DefaultColorsScheme(this); - newScheme.readExternal(schemeElement); - mySchemes.add(newScheme); - } + public Element getState() { + return null; } @Override - public void writeExternal(Element element) throws WriteExternalException { - throw new WriteExternalException(); + public void loadState(Element state) { + for (Element schemeElement : state.getChildren(SCHEME_ELEMENT)) { + DefaultColorsScheme newScheme = new DefaultColorsScheme(this); + try { + newScheme.readExternal(schemeElement); + } + catch (InvalidDataException e) { + throw new RuntimeException(e); + } + mySchemes.add(newScheme); + } } public DefaultColorsScheme[] getAllSchemes() { diff --git a/platform/platform-resources/src/META-INF/PlatformExtensions.xml b/platform/platform-resources/src/META-INF/PlatformExtensions.xml index 0f1ea54bc37d..588675bfb14e 100644 --- a/platform/platform-resources/src/META-INF/PlatformExtensions.xml +++ b/platform/platform-resources/src/META-INF/PlatformExtensions.xml @@ -139,8 +139,7 @@ - +