summaryrefslogtreecommitdiff
path: root/platform/platform-impl/src/com/intellij/openapi/options/ex/MixedConfigurableGroup.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/options/ex/MixedConfigurableGroup.java')
-rw-r--r--platform/platform-impl/src/com/intellij/openapi/options/ex/MixedConfigurableGroup.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/options/ex/MixedConfigurableGroup.java b/platform/platform-impl/src/com/intellij/openapi/options/ex/MixedConfigurableGroup.java
index f465e2d0fecb..f1411cf3551d 100644
--- a/platform/platform-impl/src/com/intellij/openapi/options/ex/MixedConfigurableGroup.java
+++ b/platform/platform-impl/src/com/intellij/openapi/options/ex/MixedConfigurableGroup.java
@@ -18,9 +18,11 @@ package com.intellij.openapi.options.ex;
import com.intellij.openapi.options.Configurable;
import com.intellij.openapi.options.ConfigurableGroup;
import com.intellij.openapi.options.OptionsBundle;
+import com.intellij.openapi.options.SearchableConfigurable;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map.Entry;
public final class MixedConfigurableGroup implements ConfigurableGroup {
@@ -66,6 +68,16 @@ public final class MixedConfigurableGroup implements ConfigurableGroup {
}
list.add(configurable);
}
+ ArrayList<Configurable> buildList = map.get("build");
+ if (buildList != null) {
+ NodeConfigurable buildTools = new NodeConfigurable("build.tools");
+ buildTools.add(find("MavenSettings", buildList.iterator()));
+ buildTools.add(find("reference.settingsdialog.project.gradle", buildList.iterator()));
+ buildTools.add(find("reference.settingsdialog.project.gant", buildList.iterator()));
+ if (buildTools.getConfigurables() != null) {
+ buildList.add(0, buildTools);
+ }
+ }
ArrayList<ConfigurableGroup> groups = new ArrayList<ConfigurableGroup>(map.size());
groups.add(new MixedConfigurableGroup("appearance", map));
groups.add(new MixedConfigurableGroup("editor", map));
@@ -80,4 +92,18 @@ public final class MixedConfigurableGroup implements ConfigurableGroup {
groups.add(other);
return groups.toArray(new ConfigurableGroup[groups.size()]);
}
+
+ private static Configurable find(String id, Iterator<Configurable> iterator) {
+ while (iterator.hasNext()) {
+ Configurable configurable = iterator.next();
+ if (configurable instanceof SearchableConfigurable) {
+ SearchableConfigurable sc = (SearchableConfigurable)configurable;
+ if (id.equals(sc.getId())) {
+ iterator.remove();
+ return configurable;
+ }
+ }
+ }
+ return null;
+ }
}