From b38da6bed10372e5fee91bfa9cd3b2634246ef68 Mon Sep 17 00:00:00 2001 From: anna Date: Fri, 2 Oct 2009 15:45:13 +0400 Subject: [PATCH] sort out --- .../execution/RunConfigurationExtension.java | 32 ++++++++----------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/java/execution/impl/src/com/intellij/execution/RunConfigurationExtension.java b/java/execution/impl/src/com/intellij/execution/RunConfigurationExtension.java index 44299a432075..80971e0511a7 100644 --- a/java/execution/impl/src/com/intellij/execution/RunConfigurationExtension.java +++ b/java/execution/impl/src/com/intellij/execution/RunConfigurationExtension.java @@ -36,13 +36,12 @@ import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.WriteExternalException; import com.intellij.ui.LayeredIcon; -import org.jdom.Content; import org.jdom.Element; import org.jetbrains.annotations.Nullable; import javax.swing.*; -import java.util.ArrayList; import java.util.List; +import java.util.TreeMap; public abstract class RunConfigurationExtension { public static final ExtensionPointName EP_NAME = new ExtensionPointName("com.intellij.runConfigurationExtension"); @@ -97,29 +96,24 @@ public abstract class RunConfigurationExtension { } public static void writeSettings(ModuleBasedConfiguration runConfiguration, Element element) throws WriteExternalException { + final TreeMap map = new TreeMap(); + final List elements = runConfiguration.getCopyableUserData(RUN_EXTENSIONS); + if (elements != null) { + for (Element el : elements) { + final String name = el.getAttributeValue("name"); + map.put(name, (Element)el.clone()); + } + } + for (RunConfigurationExtension extension : Extensions.getExtensions(EP_NAME)) { Element el = new Element("extension"); el.setAttribute("name", extension.getName()); extension.writeExternal(runConfiguration, el); - element.addContent(el); + map.put(extension.getName(), el); } - List elements = runConfiguration.getCopyableUserData(RUN_EXTENSIONS); - if (elements != null && !elements.isEmpty()) { - final List foundNames = new ArrayList(); - final List children = element.getChildren("extension"); - for (Object o : children) { - foundNames.add(((Element)o).getAttributeValue("name")); - } - int idx = children.isEmpty() ? element.getContentSize() : element.indexOf((Content)children.get(0)); - for (Element el : elements) { - final String name = el.getAttributeValue("name"); - int i = foundNames.indexOf(name); - if (i == -1) { - element.addContent(idx, (Content)el.clone()); - } - idx ++; - } + for (Element val : map.values()) { + element.addContent(val); } }