xml mappings for configurables: support for SearchableConfigurable

This commit is contained in:
Dmitry Avdeev
2012-09-18 13:00:17 +04:00
parent 5c34e27943
commit 11b99d304f
5 changed files with 24 additions and 32 deletions
@@ -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
*/
@@ -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;
}
}
@@ -225,8 +225,9 @@
<ComponentRoamingType component="RestoreUpdateTree" type="DISABLED"/>
<ComponentRoamingType component="PropertiesComponent" type="DISABLED"/>
<projectConfigurable instance="com.intellij.javaee.ExternalResourceConfigurable" key="display.name.edit.external.resource" bundle="messages.XmlBundle">
<configurable instance="com.intellij.javaee.XMLCatalogConfigurable" displayName="XML Catalog"/>
<projectConfigurable instance="com.intellij.javaee.ExternalResourceConfigurable" key="display.name.edit.external.resource"
bundle="messages.XmlBundle" id="preferences.externalResources">
<configurable instance="com.intellij.javaee.XMLCatalogConfigurable" displayName="XML Catalog" id="xml.catalog"/>
</projectConfigurable>
<bundledKeymapProvider implementation="com.intellij.openapi.keymap.impl.DefaultBundledKeymaps"/>
@@ -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<NameLocationPair> myPairs;
private List<String> myIgnoredUrls;
@@ -54,7 +52,6 @@ public class ExternalResourceConfigurable extends BaseConfigurable
private HtmlLanguageLevelForm myHtmlLanguageLevelForm;
@Nullable private final Project myProject;
private final List<NameLocationPair> 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;
}
}
@@ -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;
}
}