modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java
| 29 +++++-----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/GroupConfigurationEditor.java
| 17 ++++-
2 files changed, 29 insertions(+), 17 deletions(-)
New commits:
commit cd758dcbc78fea04ebda2d3563a3b283b630b88e
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Mon Mar 28 14:27:18 2011 -0400
fix editing of group config props via modal member value editor
(
https://bugzilla.redhat.com/show_bug.cgi?id=690483)
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 449e9c3..d991515 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
@@ -1316,17 +1316,20 @@ public class ConfigurationEditor extends LocatableVLayout {
List<Validator> validators = buildValidators(propertyDefinitionSimple,
propertySimple);
valueItem.setValidators(validators.toArray(new
Validator[validators.size()]));
- valueItem.addChangedHandler(new ChangedHandler() {
- public void onChanged(ChangedEvent changedEvent) {
- updatePropertySimpleValue(changedEvent.getValue(), propertySimple,
propertyDefinitionSimple);
- // Only fire a prop value change event if the prop's a top-level
simple or a simple within a
- // top-level map.
- if (fireEventOnPropertyValueChange(propertyDefinitionSimple,
propertySimple)) {
- boolean isValid = changedEvent.getItem().validate();
- firePropertyChangedEvent(propertySimple,
propertyDefinitionSimple, isValid);
+ if ((propertySimple.getConfiguration() != null) ||
(propertySimple.getParentMap() != null) ||
+ (propertySimple.getParentList() != null)) {
+ valueItem.addChangedHandler(new ChangedHandler() {
+ public void onChanged(ChangedEvent changedEvent) {
+ updatePropertySimpleValue(changedEvent.getValue(),
propertySimple, propertyDefinitionSimple);
+ // Only fire a prop value change event if the prop's a
top-level simple or a simple within a
+ // top-level map.
+ if (fireEventOnPropertyValueChange(propertyDefinitionSimple,
propertySimple)) {
+ boolean isValid = changedEvent.getItem().validate();
+ firePropertyChangedEvent(propertySimple,
propertyDefinitionSimple, isValid);
+ }
}
- }
- });
+ });
+ }
}
// for more robust and repeatable item locators (not positional) assign a name
and title
@@ -1356,9 +1359,9 @@ public class ConfigurationEditor extends LocatableVLayout {
protected boolean fireEventOnPropertyValueChange(PropertyDefinitionSimple
propertyDefinitionSimple,
PropertySimple propertySimple) {
- PropertyDefinitionMap parentPropertyMapDefinition =
propertyDefinitionSimple.getParentPropertyMapDefinition();
- return propertyDefinitionSimple.getConfigurationDefinition() != null
- || (parentPropertyMapDefinition != null &&
parentPropertyMapDefinition.getConfigurationDefinition() != null);
+ PropertyMap parentMap = propertySimple.getParentMap();
+ return propertySimple.getConfiguration() != null
+ || (parentMap != null && parentMap.getConfiguration() != null);
}
protected void updatePropertySimpleValue(Object value, PropertySimple
propertySimple,
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/GroupConfigurationEditor.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/GroupConfigurationEditor.java
index 4c4a29f..eafbd15 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/GroupConfigurationEditor.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/GroupConfigurationEditor.java
@@ -250,7 +250,7 @@ public class GroupConfigurationEditor extends ConfigurationEditor {
setAllValuesToItem.setAlign(Alignment.RIGHT);
setAllItems.add(setAllValuesToItem);
- PropertySimple masterPropertySimple = new
PropertySimple(aggregatePropertySimple.getName(), null);
+ PropertySimple masterPropertySimple = new
PropertySimple(propertyDefinitionSimple.getName(), null);
final FormItem masterValueItem = super.buildSimpleField(propertyDefinitionSimple,
masterPropertySimple);
masterValueItem.setDisabled(false);
@@ -286,7 +286,7 @@ public class GroupConfigurationEditor extends ConfigurationEditor {
masterValueItem.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent changedEvent) {
applyButton.enable();
- applyButton.focus();
+ //applyButton.focus();
}
});
@@ -332,7 +332,9 @@ public class GroupConfigurationEditor extends ConfigurationEditor {
// Add data rows.
final List<FormItem> valueItems = new
ArrayList<FormItem>(this.memberConfigurations.size());
final Map<String, PropertySimple> valueItemNameToPropertySimpleMap = new
HashMap<String, PropertySimple>();
- for (GroupMemberConfiguration memberConfiguration : this.memberConfigurations) {
+ List<GroupMemberConfiguration> memberConfigurations1 =
this.memberConfigurations;
+ for (int i = 0, memberConfigurations1Size = memberConfigurations1.size(); i <
memberConfigurations1Size; i++) {
+ GroupMemberConfiguration memberConfiguration = memberConfigurations1.get(i);
String memberName = memberConfiguration.getLabel();
StaticTextItem memberItem = new StaticTextItem();
memberItem.setShowTitle(false);
@@ -340,8 +342,11 @@ public class GroupConfigurationEditor extends ConfigurationEditor {
items.add(memberItem);
Configuration configuration = memberConfiguration.getConfiguration();
PropertySimple memberPropertySimple = (PropertySimple)
getProperty(configuration, aggregatePropertySimple,
- index);
+ index);
FormItem valueItem = buildSimpleField(propertyDefinitionSimple,
memberPropertySimple);
+ // All of the member props have the same name, so add an index to the item
name to ensure it's unique
+ // to the form.
+ valueItem.setName(propertyDefinitionSimple.getName() + "-" + i);
valueItems.add(valueItem);
valueItemNameToPropertySimpleMap.put(valueItem.getName(),
memberPropertySimple);
FormItem unsetItem = buildUnsetItem(propertyDefinitionSimple,
memberPropertySimple, valueItem);
@@ -420,6 +425,10 @@ public class GroupConfigurationEditor extends ConfigurationEditor {
@Override
public void onClick(ClickEvent clickEvent) {
Object value = masterValueItem.getValue();
+ // Update the aggregate property.
+ aggregatePropertySimple.setValue(value);
+
+ // Update the member properties.
for (FormItem valueItem : valueItems) {
setValue(valueItem, value);