diff options
author | Tor Norbye <tnorbye@google.com> | 2014-08-20 17:01:23 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2014-08-20 17:01:23 -0700 |
commit | 1aa2e09bdbd413eacb677e9fa4b50630530d0656 (patch) | |
tree | 2f4cc6d69645bd460aa253fdecb606d764fbd25d /platform/platform-impl/src/com/intellij/openapi/options/ex/MixedConfigurableGroup.java | |
parent | 02cf98d65c798d368fcec43ed64a001d513bdd4f (diff) | |
download | idea-1aa2e09bdbd413eacb677e9fa4b50630530d0656.tar.gz |
Snapshot idea/138.1696 from git://git.jetbrains.org/idea/community.git
Change-Id: I50c97b83a815ce635e49a38380ba5b8765e4b16a
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.java | 26 |
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; + } } |