modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java | 34 +++++++--- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java | 1 modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/inventory/PluginConfigurationEditView.java | 2 3 files changed, 26 insertions(+), 11 deletions(-)
New commits: commit 8b3cd4ebae3e0fc7d63e4595bc69a89c86f1e28d Author: Ian Springer ian.springer@redhat.com Date: Tue Mar 1 12:37:15 2011 -0500
add "reloadable" boolean flag to config editor, which is set to true only if the constructor which places the config editor in charge of loading the config and config def is used
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java index 181dda0..f2a2580 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java @@ -165,6 +165,8 @@ public class ConfigurationEditor extends LocatableVLayout { private boolean readOnly = false; private Set<String> invalidPropertyNames = new HashSet<String>(); private Set<PropertyValueChangeListener> propertyValueChangeListeners = new HashSet<PropertyValueChangeListener>(); + private boolean loaded; + private boolean reloadable;
public static enum ConfigType { plugin, resource @@ -183,25 +185,26 @@ public class ConfigurationEditor extends LocatableVLayout {
private LoadHandler loadHandler = null;
- public ConfigurationEditor(String locatorId) { - super(locatorId); - } - - public ConfigurationEditor(String locatorId, int resourceId, int resourceTypeId) { - this(locatorId, resourceId, resourceTypeId, ConfigType.resource); - } - public ConfigurationEditor(String locatorId, int resourceId, int resourceTypeId, ConfigType configType) { super(locatorId); this.resourceId = resourceId; this.resourceTypeId = resourceTypeId; this.configType = configType; setOverflow(Overflow.AUTO); + this.reloadable = true; }
public ConfigurationEditor(String locatorId, ConfigurationDefinition configurationDefinition, Configuration configuration) { super(locatorId); + + if (configuration == null) { + throw new IllegalArgumentException("Null configuration."); + } + if (configurationDefinition == null) { + throw new IllegalArgumentException("Null configurationDefinition."); + } + this.configuration = configuration; this.configurationDefinition = configurationDefinition; } @@ -342,6 +345,10 @@ public class ConfigurationEditor extends LocatableVLayout { }
public void reload() { + if (this.loaded && !this.reloadable) { + return; + } + if (configurationDefinition == null || configuration == null) { // Wait for both to load. return; @@ -356,7 +363,13 @@ public class ConfigurationEditor extends LocatableVLayout { if (configurationDefinition.getConfigurationFormat() == ConfigurationFormat.STRUCTURED || configurationDefinition.getConfigurationFormat() == ConfigurationFormat.STRUCTURED_AND_RAW) { Log.info("Building structured configuration editor..."); - LocatableVLayout structuredConfigLayout = buildStructuredPane(); + LocatableVLayout structuredConfigLayout = null; + try { + structuredConfigLayout = buildStructuredPane(); + } catch (RuntimeException e) { + e.printStackTrace(); + throw e; + } addMember(structuredConfigLayout); } else { Label label = new Label("Structured configuration is not supported."); @@ -364,6 +377,7 @@ public class ConfigurationEditor extends LocatableVLayout { }
this.markForRedraw(); + this.loaded = true; }
public void reset() { @@ -1412,7 +1426,7 @@ public class ConfigurationEditor extends LocatableVLayout { if (property instanceof PropertySimple) { PropertySimple propertySimple = (PropertySimple) property; if (propertyDefinition.isRequired() && - (propertySimple.getStringValue() == null) || propertySimple.getStringValue().equals("")) { + (propertySimple.getStringValue() == null) || "".equals(propertySimple.getStringValue())) { // special case 2: required simple prop with no value - allow user to edit it even if it's a read-only prop, // otherwise the user will have no way to give the property a new value and thereby get things to a valid state return false; diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java index 98949f6..0700b78 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java @@ -129,7 +129,6 @@ public class ResourceConfigurationEditView extends LocatableVLayout implements P addMember(editor); markForRedraw(); refreshing = false; - // TODO (ips): If editor != null, use editor.reload() instead. } }); } diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/inventory/PluginConfigurationEditView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/inventory/PluginConfigurationEditView.java index 3ca884f..1195d1e 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/inventory/PluginConfigurationEditView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/inventory/PluginConfigurationEditView.java @@ -112,6 +112,8 @@ public class PluginConfigurationEditView extends LocatableVLayout implements Pro editor.destroy(); removeMember(editor); } + // TODO (ips): Load the config and config def ourselves, so we can remove that logic from the ConfigurationEditor, + // whose only purpose should be to render a config. editor = new ConfigurationEditor(extendLocatorId("Editor"), resource.getId(), resource.getResourceType() .getId(), ConfigurationEditor.ConfigType.plugin); editor.setOverflow(Overflow.AUTO);
rhq-commits@lists.fedorahosted.org