modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java
| 32 ++++++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/ConfigurationEditor.java
| 1
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/configuration/GroupConfigurationEditor.java
| 1
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
| 3
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
| 6 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
| 17 ++---
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/configuration/ResourceConfigurationEditView.java
| 22 +++---
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/inventory/PluginConfigurationEditView.java
| 18 +++--
8 files changed, 72 insertions(+), 28 deletions(-)
New commits:
commit 78763d27f78b03215853e6c2340189ea35911ee7
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Fri Oct 8 11:23:05 2010 -0400
make sure a subtab's view is refreshed when the user switches to that subtab
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java
new file mode 100644
index 0000000..162e950
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java
@@ -0,0 +1,32 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2010 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.rhq.enterprise.gui.coregui.client;
+
+/**
+ * A view that can refresh its content.
+ *
+ * @author Ian Springer
+ */
+public interface RefreshableView {
+
+ /**
+ * Refresh this view, i.e. reload its data from the Server.
+ */
+ void refresh();
+}
\ No newline at end of file
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 3f01cde..2cbebe4 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
@@ -128,6 +128,7 @@ import
org.rhq.core.domain.configuration.definition.constraint.IntegerRangeConst
import org.rhq.core.domain.configuration.definition.constraint.RegexConstraint;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.RefreshableView;
import org.rhq.enterprise.gui.coregui.client.components.table.PropertyGrid;
import org.rhq.enterprise.gui.coregui.client.gwt.ConfigurationGWTServiceAsync;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
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 b25b625..de29950 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
@@ -49,6 +49,7 @@ import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
import org.rhq.core.domain.configuration.definition.PropertyDefinition;
import org.rhq.core.domain.configuration.definition.PropertyDefinitionSimple;
+import org.rhq.enterprise.gui.coregui.client.RefreshableView;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
/**
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
index f5c9a40..917946a 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/Table.java
@@ -56,6 +56,7 @@ import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.client.widgets.toolbar.ToolStrip;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.RefreshableView;
import org.rhq.enterprise.gui.coregui.client.util.RPCDataSource;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHLayout;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableIButton;
@@ -65,7 +66,7 @@ import
org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableListGrid;
* @author Greg Hinkle
* @author Ian Springer
*/
-public class Table extends LocatableHLayout {
+public class Table extends LocatableHLayout implements RefreshableView {
private static final SelectionEnablement DEFAULT_SELECTION_ENABLEMENT =
SelectionEnablement.ALWAYS;
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
index 74c5ca3..84ccc47 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
@@ -31,6 +31,7 @@ import com.smartgwt.client.widgets.layout.Layout;
import org.rhq.core.domain.authz.Permission;
import org.rhq.enterprise.gui.coregui.client.BookmarkableView;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.RefreshableView;
import org.rhq.enterprise.gui.coregui.client.ViewPath;
import org.rhq.enterprise.gui.coregui.client.components.tab.SubTab;
import org.rhq.enterprise.gui.coregui.client.components.tab.TwoLevelTab;
@@ -221,8 +222,11 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends
Layout> extends Lo
// Handle any remaining view items (e.g. id of a selected item in a subtab
that contains a Master-Details view).
Canvas subView = subtab.getCanvas();
+ if (subView instanceof RefreshableView) {
+ ((RefreshableView)subView).refresh();
+ }
if (subView instanceof BookmarkableView) {
- ((BookmarkableView) subView).renderView(viewPath);
+ ((BookmarkableView)subView).renderView(viewPath);
}
this.tabSet.markForRedraw();
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
index cef496a..4e9d337 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/configuration/GroupResourceConfigurationEditView.java
@@ -41,6 +41,7 @@ import org.rhq.core.domain.resource.composite.ResourcePermission;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.RefreshableView;
import
org.rhq.enterprise.gui.coregui.client.components.configuration.ConfigurationEditor;
import
org.rhq.enterprise.gui.coregui.client.components.configuration.GroupConfigurationEditor;
import
org.rhq.enterprise.gui.coregui.client.components.configuration.GroupMemberConfiguration;
@@ -60,7 +61,8 @@ import
org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
*
* @author Ian Springer
*/
-public class GroupResourceConfigurationEditView extends LocatableVLayout implements
PropertyValueChangeListener {
+public class GroupResourceConfigurationEditView extends LocatableVLayout
+ implements PropertyValueChangeListener, RefreshableView {
private final ConfigurationGWTServiceAsync configurationService =
GWTServiceLookup.getConfigurationService();
private ResourceGroup group;
@@ -81,10 +83,7 @@ public class GroupResourceConfigurationEditView extends
LocatableVLayout impleme
@Override
protected void onDraw() {
super.onDraw();
- build();
- }
- public void build() {
ToolStrip toolStrip = new ToolStrip();
toolStrip.setWidth100();
@@ -98,9 +97,9 @@ public class GroupResourceConfigurationEditView extends LocatableVLayout
impleme
}
});
toolStrip.addMember(saveButton);
-
+
addMember(toolStrip);
- reloadConfiguration();
+ refresh();
if (!this.resourcePermission.isConfigureWrite()) {
Message message = new Message("You do not have permission to edit this
group's configuration.",
@@ -109,12 +108,14 @@ public class GroupResourceConfigurationEditView extends
LocatableVLayout impleme
}
}
- private void reloadConfiguration() {
+ @Override
+ public void refresh() {
this.saveButton.disable();
if (editor != null) {
editor.destroy();
removeMember(editor);
}
+ // TODO (ips): If editor != null, use editor.reload() instead.
loadConfigurationDefinition();
loadConfigurations();
@@ -191,7 +192,7 @@ public class GroupResourceConfigurationEditView extends
LocatableVLayout impleme
"Configuration update initiated for " +
group.getResourceType().getName()
+ " compatible group '" + group.getName() +
"'.",
Message.Severity.Info));
- reloadConfiguration();
+ refresh();
}
});
}
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 d616f81..875fc0d 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
@@ -35,6 +35,7 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.composite.ResourceComposite;
import org.rhq.core.domain.resource.composite.ResourcePermission;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.RefreshableView;
import
org.rhq.enterprise.gui.coregui.client.components.configuration.ConfigurationEditor;
import
org.rhq.enterprise.gui.coregui.client.components.configuration.PropertyValueChangeEvent;
import
org.rhq.enterprise.gui.coregui.client.components.configuration.PropertyValueChangeListener;
@@ -50,7 +51,8 @@ import
org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
* @author Greg Hinkle
* @author Ian Springer
*/
-public class ResourceConfigurationEditView extends LocatableVLayout implements
PropertyValueChangeListener {
+public class ResourceConfigurationEditView extends LocatableVLayout
+ implements PropertyValueChangeListener, RefreshableView {
private Resource resource;
private ResourcePermission resourcePermission;
private ConfigurationEditor editor;
@@ -66,10 +68,7 @@ public class ResourceConfigurationEditView extends LocatableVLayout
implements P
@Override
protected void onDraw() {
super.onDraw();
- build();
- }
- public void build() {
ToolStrip toolStrip = new ToolStrip();
toolStrip.setWidth100();
@@ -82,9 +81,9 @@ public class ResourceConfigurationEditView extends LocatableVLayout
implements P
}
});
toolStrip.addMember(saveButton);
-
+
addMember(toolStrip);
- reloadConfiguration();
+ refresh();
if (!this.resourcePermission.isConfigureWrite()) {
Message message = new Message("You do not have permission to edit this
Resource's configuration.",
@@ -93,8 +92,10 @@ public class ResourceConfigurationEditView extends LocatableVLayout
implements P
}
}
- private void reloadConfiguration() {
+ @Override
+ public void refresh() {
this.saveButton.disable();
+
if (editor != null) {
editor.destroy();
removeMember(editor);
@@ -104,9 +105,10 @@ public class ResourceConfigurationEditView extends LocatableVLayout
implements P
editor.setOverflow(Overflow.AUTO);
editor.addPropertyValueChangeListener(this);
editor.setReadOnly(!this.resourcePermission.isConfigureWrite());
- addMember(editor);
+ addMember(editor);
+ // TODO (ips): If editor != null, use editor.reload() instead.
}
-
+
private void save() {
Configuration updatedConfiguration = editor.getConfiguration();
@@ -121,7 +123,7 @@ public class ResourceConfigurationEditView extends LocatableVLayout
implements P
new Message("Configuration updated.",
"Configuration updated for Resource [" +
resource.getName() + "].",
Message.Severity.Info));
- reloadConfiguration();
+ refresh();
}
});
}
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 703f9d4..b3a5709 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
@@ -34,6 +34,7 @@ import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.composite.ResourceComposite;
import org.rhq.core.domain.resource.composite.ResourcePermission;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
+import org.rhq.enterprise.gui.coregui.client.RefreshableView;
import
org.rhq.enterprise.gui.coregui.client.components.configuration.ConfigurationEditor;
import
org.rhq.enterprise.gui.coregui.client.components.configuration.PropertyValueChangeEvent;
import
org.rhq.enterprise.gui.coregui.client.components.configuration.PropertyValueChangeListener;
@@ -49,7 +50,8 @@ import
org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
* @author Greg Hinkle
* @author Ian Springer
*/
-public class PluginConfigurationEditView extends LocatableVLayout implements
PropertyValueChangeListener {
+public class PluginConfigurationEditView extends LocatableVLayout
+ implements PropertyValueChangeListener, RefreshableView {
private Resource resource;
private ResourcePermission resourcePermission;
private ConfigurationEditor editor;
@@ -65,10 +67,7 @@ public class PluginConfigurationEditView extends LocatableVLayout
implements Pro
@Override
protected void onDraw() {
super.onDraw();
- build();
- }
- public void build() {
ToolStrip toolStrip = new ToolStrip();
toolStrip.setWidth100();
@@ -82,9 +81,9 @@ public class PluginConfigurationEditView extends LocatableVLayout
implements Pro
});
this.saveButton.disable();
toolStrip.addMember(this.saveButton);
-
+
addMember(toolStrip);
- reloadConfiguration();
+ refresh();
if (!this.resourcePermission.isInventory()) {
Message message = new Message("You do not have permission to edit this
Resource's connection settings.",
@@ -93,8 +92,10 @@ public class PluginConfigurationEditView extends LocatableVLayout
implements Pro
}
}
- private void reloadConfiguration() {
+ @Override
+ public void refresh() {
this.saveButton.disable();
+
if (editor != null) {
editor.destroy();
removeMember(editor);
@@ -105,6 +106,7 @@ public class PluginConfigurationEditView extends LocatableVLayout
implements Pro
editor.addPropertyValueChangeListener(this);
editor.setReadOnly(!this.resourcePermission.isInventory());
addMember(editor);
+ // TODO (ips): If editor != null, use editor.reload() instead.
}
private void save() {
@@ -120,7 +122,7 @@ public class PluginConfigurationEditView extends LocatableVLayout
implements Pro
CoreGUI.getMessageCenter().notify(
new Message("Connection settings updated.",
"Connection settings updated for Resource [" +
resource.getName() + "]."));
- reloadConfiguration();
+ refresh();
}
});
}