mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
use parentId to express child-parent relation
This commit is contained in:
@@ -53,7 +53,7 @@ public class ConfigurableEP<T extends UnnamedConfigurable> extends AbstractExten
|
||||
|
||||
public String getDisplayName() {
|
||||
if (displayName != null) return displayName;
|
||||
LOG.assertTrue(bundle != null, "Bundle missed for " + this);
|
||||
LOG.assertTrue(bundle != null, "Bundle missed for " + instanceClass);
|
||||
final ResourceBundle resourceBundle = AbstractBundle.getResourceBundle(bundle, myPluginDescriptor.getPluginClassLoader());
|
||||
return displayName = CommonBundle.message(resourceBundle, key);
|
||||
}
|
||||
@@ -68,6 +68,9 @@ public class ConfigurableEP<T extends UnnamedConfigurable> extends AbstractExten
|
||||
@Attribute("childrenEPName")
|
||||
public String childrenEPName;
|
||||
|
||||
@Attribute("parentId")
|
||||
public String parentId;
|
||||
|
||||
public ConfigurableEP[] getChildren() {
|
||||
for (ConfigurableEP child : children) {
|
||||
child.myPicoContainer = myPicoContainer;
|
||||
@@ -146,6 +149,11 @@ public class ConfigurableEP<T extends UnnamedConfigurable> extends AbstractExten
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getDisplayName();
|
||||
}
|
||||
|
||||
private class InstanceFromProviderFactory extends AtomicNotNullLazyValue<ConfigurableProvider> implements NullableFactory<T> {
|
||||
public T create() {
|
||||
return (T)getValue().createConfigurable();
|
||||
|
||||
+22
-3
@@ -134,6 +134,20 @@ public class ConfigurableWrapper implements SearchableConfigurable {
|
||||
return myEp.id == null ? myEp.instanceClass : myEp.id;
|
||||
}
|
||||
|
||||
|
||||
public String getParentId() {
|
||||
return myEp.parentId;
|
||||
}
|
||||
|
||||
public ConfigurableWrapper addChild(Configurable configurable) {
|
||||
return new CompositeWrapper(myEp, configurable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getDisplayName();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Runnable enableSearch(String option) {
|
||||
@@ -143,11 +157,10 @@ public class ConfigurableWrapper implements SearchableConfigurable {
|
||||
|
||||
private static class CompositeWrapper extends ConfigurableWrapper implements Configurable.Composite {
|
||||
|
||||
private final Configurable[] myKids;
|
||||
private Configurable[] myKids;
|
||||
|
||||
public CompositeWrapper(ConfigurableEP ep) {
|
||||
public CompositeWrapper(ConfigurableEP ep, Configurable... kids) {
|
||||
super(ep);
|
||||
Configurable[] kids;
|
||||
if (ep.children == null) {
|
||||
kids = EMPTY_ARRAY;
|
||||
}
|
||||
@@ -171,5 +184,11 @@ public class ConfigurableWrapper implements SearchableConfigurable {
|
||||
public Configurable[] getConfigurables() {
|
||||
return myKids;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConfigurableWrapper addChild(Configurable configurable) {
|
||||
myKids = ArrayUtil.append(myKids, configurable);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user