From b6359bdab5cdc819df9de5fdef4ecb483c400d37 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Tue, 7 Oct 2014 12:33:42 +0200 Subject: [PATCH] =?UTF-8?q?DefaultColorSchemesManager=20=E2=80=94=20avoid?= =?UTF-8?q?=20use=20WriteExternalException=20to=20cancel=20write?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../colors/ex/DefaultColorSchemesManager.java | 45 +++++++++---------- .../src/META-INF/PlatformExtensions.xml | 3 +- 2 files changed, 21 insertions(+), 27 deletions(-) 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 @@ - +