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(a)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);
Show replies by date