diff --git a/platform/platform-api/src/com/intellij/openapi/options/ConfigurableEP.java b/platform/platform-api/src/com/intellij/openapi/options/ConfigurableEP.java
index 281fc695c942..5717d694bc35 100644
--- a/platform/platform-api/src/com/intellij/openapi/options/ConfigurableEP.java
+++ b/platform/platform-api/src/com/intellij/openapi/options/ConfigurableEP.java
@@ -51,6 +51,8 @@ public class ConfigurableEP extends AbstractExtensionPointBean {
@AbstractCollection(surroundWithTag = false)
public ConfigurableEP[] children;
+ @Attribute("id")
+ public String id;
/**
* @deprecated use '{@link #instanceClass instance}' or '{@link #providerClass provider}' attribute instead
*/
diff --git a/platform/platform-impl/src/com/intellij/openapi/options/ex/ConfigurableWrapper.java b/platform/platform-impl/src/com/intellij/openapi/options/ex/ConfigurableWrapper.java
index f99bd19a682d..1adc8957329e 100644
--- a/platform/platform-impl/src/com/intellij/openapi/options/ex/ConfigurableWrapper.java
+++ b/platform/platform-impl/src/com/intellij/openapi/options/ex/ConfigurableWrapper.java
@@ -18,9 +18,11 @@ package com.intellij.openapi.options.ex;
import com.intellij.openapi.options.Configurable;
import com.intellij.openapi.options.ConfigurableEP;
import com.intellij.openapi.options.ConfigurationException;
+import com.intellij.openapi.options.SearchableConfigurable;
import com.intellij.util.Function;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.Nls;
+import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
@@ -29,7 +31,7 @@ import javax.swing.*;
* @author Dmitry Avdeev
* Date: 9/17/12
*/
-public class ConfigurableWrapper implements Configurable, Configurable.Composite {
+public class ConfigurableWrapper implements SearchableConfigurable, Configurable.Composite {
private static final ConfigurableWrapper[] EMPTY_ARRAY = new ConfigurableWrapper[0];
@@ -107,4 +109,17 @@ public class ConfigurableWrapper implements Configurable, Configurable.Composite
public Configurable[] getConfigurables() {
return myKids;
}
+
+ @NotNull
+ @Override
+ public String getId() {
+ return myEp.id;
+ }
+
+ @Nullable
+ @Override
+ public Runnable enableSearch(String option) {
+ final Configurable configurable = getConfigurable();
+ return configurable instanceof SearchableConfigurable ? ((SearchableConfigurable)configurable).enableSearch(option) : null;
+ }
}
diff --git a/platform/platform-resources/src/META-INF/PlatformExtensions.xml b/platform/platform-resources/src/META-INF/PlatformExtensions.xml
index f182b14a5f1d..1db3f55cff7b 100644
--- a/platform/platform-resources/src/META-INF/PlatformExtensions.xml
+++ b/platform/platform-resources/src/META-INF/PlatformExtensions.xml
@@ -225,8 +225,9 @@
-
-
+
+
diff --git a/xml/impl/src/com/intellij/javaee/ExternalResourceConfigurable.java b/xml/impl/src/com/intellij/javaee/ExternalResourceConfigurable.java
index 04e87b4fde1a..086f8fedefbd 100644
--- a/xml/impl/src/com/intellij/javaee/ExternalResourceConfigurable.java
+++ b/xml/impl/src/com/intellij/javaee/ExternalResourceConfigurable.java
@@ -18,7 +18,6 @@ package com.intellij.javaee;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.options.BaseConfigurable;
import com.intellij.openapi.options.Configurable;
-import com.intellij.openapi.options.SearchableConfigurable;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.JarFileSystem;
@@ -30,7 +29,6 @@ import com.intellij.util.ArrayUtil;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.ui.UIUtil;
import com.intellij.xml.XmlBundle;
-import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
@@ -44,7 +42,7 @@ import java.util.Collections;
import java.util.List;
public class ExternalResourceConfigurable extends BaseConfigurable
- implements SearchableConfigurable, Configurable.NoScroll {
+ implements Configurable.NoScroll {
private JPanel myPanel;
private List myPairs;
private List myIgnoredUrls;
@@ -54,7 +52,6 @@ public class ExternalResourceConfigurable extends BaseConfigurable
private HtmlLanguageLevelForm myHtmlLanguageLevelForm;
@Nullable private final Project myProject;
private final List myNewPairs;
- private Configurable[] myConfigurables;
@SuppressWarnings("UnusedDeclaration")
public ExternalResourceConfigurable(@Nullable Project project) {
@@ -241,7 +238,7 @@ public class ExternalResourceConfigurable extends BaseConfigurable
}
public String getHelpTopic() {
- return getId();
+ return "preferences.externalResources";
}
@Nullable
@@ -378,14 +375,4 @@ public class ExternalResourceConfigurable extends BaseConfigurable
return myNames[column];
}
}
-
- @NotNull
- public String getId() {
- return "preferences.externalResources";
- }
-
- @Nullable
- public Runnable enableSearch(String option) {
- return null;
- }
}
diff --git a/xml/impl/src/com/intellij/javaee/XMLCatalogConfigurable.java b/xml/impl/src/com/intellij/javaee/XMLCatalogConfigurable.java
index f8e6f95f6f8e..41b5825d3fa1 100644
--- a/xml/impl/src/com/intellij/javaee/XMLCatalogConfigurable.java
+++ b/xml/impl/src/com/intellij/javaee/XMLCatalogConfigurable.java
@@ -18,11 +18,9 @@ package com.intellij.javaee;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.options.BaseConfigurable;
import com.intellij.openapi.options.ConfigurationException;
-import com.intellij.openapi.options.SearchableConfigurable;
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
import com.intellij.openapi.util.text.StringUtil;
import org.jetbrains.annotations.Nls;
-import org.jetbrains.annotations.NotNull;
import javax.swing.*;
@@ -30,7 +28,7 @@ import javax.swing.*;
* @author Dmitry Avdeev
* Date: 7/20/12
*/
-public class XMLCatalogConfigurable extends BaseConfigurable implements SearchableConfigurable {
+public class XMLCatalogConfigurable extends BaseConfigurable {
private TextFieldWithBrowseButton myPropertyFile;
private JPanel myPanel;
@@ -80,15 +78,4 @@ public class XMLCatalogConfigurable extends BaseConfigurable implements Searchab
public void disposeUIResources() {
}
-
- @NotNull
- @Override
- public String getId() {
- return "xml.catalog";
- }
-
- @Override
- public Runnable enableSearch(String option) {
- return null;
- }
}