modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BookmarkableView.java | 4 ++++ modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/RefreshableView.java | 1 + modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/TableSection.java | 5 ++++- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java | 8 ++++++-- modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java | 4 +--- 5 files changed, 16 insertions(+), 6 deletions(-)
New commits: commit 917151ed255b6a96ddc12dd39cc5b8e0f53586bb Author: Ian Springer ian.springer@redhat.com Date: Mon Dec 13 19:46:02 2010 -0500
3rd and hopefully final take of fix for https://bugzilla.redhat.com/show_bug.cgi?id=661528
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BookmarkableView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BookmarkableView.java index 73eeceb..eccb940 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BookmarkableView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BookmarkableView.java @@ -55,6 +55,10 @@ package org.rhq.enterprise.gui.coregui.client; * } * </code> * + * <b>NOTE:</b> If the view implementing BookmarkableView also implements {@link RefreshableView}, the + * {@link #renderView} implementation is responsible for invoking {@link RefreshableView#refresh()} to ensure the + * view's data is fresh. + * * @author Ian Springer */ public interface BookmarkableView { 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 index 162e950..6f078e0 100644 --- 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 @@ -29,4 +29,5 @@ 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/table/TableSection.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/TableSection.java index 7a4c292..0b2d1e6 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/TableSection.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/table/TableSection.java @@ -22,6 +22,7 @@ */ package org.rhq.enterprise.gui.coregui.client.components.table;
+import com.allen_sauer.gwt.log.client.Log; import com.google.gwt.user.client.History; import com.smartgwt.client.data.Criteria; import com.smartgwt.client.data.SortSpecifier; @@ -315,7 +316,9 @@ public abstract class TableSection<DS extends RPCDataSource> extends Table<DS> i protected void switchToTableView() { final Canvas contents = getTableContents(); if (contents != null) { - + // First refresh the table's data. + Log.debug("Refreshing data for [" + getClass().getName() + "]..."); + refresh(); if (detailsHolder != null && detailsHolder.isVisible()) { detailsHolder.animateHide(AnimationEffect.WIPE, new AnimationCallback() { @Override diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java index 5bab96c..0951e8d 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/AbstractSectionedLeftNavigationView.java @@ -23,6 +23,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map;
+import com.allen_sauer.gwt.log.client.Log; import com.smartgwt.client.types.VisibilityMode; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.grid.events.CellClickEvent; @@ -54,6 +55,7 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTreeGrid; */ public abstract class AbstractSectionedLeftNavigationView extends LocatableHLayout implements BookmarkableView, InitializableView { + private String viewId; private boolean initialized; private ViewId currentSectionViewId; @@ -222,8 +224,9 @@ public abstract class AbstractSectionedLeftNavigationView extends LocatableHLayo } else { if (this.currentContent instanceof BookmarkableView) { ((BookmarkableView) this.currentContent).renderView(viewPath.next().next()); - } - if (this.currentContent instanceof RefreshableView) { + } else if (this.currentContent instanceof RefreshableView && this.currentContent.isDrawn()) { + // Refresh the data on the content pane, so it's not stale. + Log.debug("Refreshing data for [" + this.currentContent.getClass().getName() + "]..."); ((RefreshableView) this.currentContent).refresh(); } } @@ -245,4 +248,5 @@ public abstract class AbstractSectionedLeftNavigationView extends LocatableHLayo } } } + } 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 a4f76c8..d36e17c 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 @@ -240,9 +240,7 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends Layout> extends Lo if (subView instanceof BookmarkableView) { // Handle any remaining view items (e.g. id of a selected item in a subtab that contains a Master-Details view). ((BookmarkableView) subView).renderView(viewPath); - } - - if (subView instanceof RefreshableView && viewPath.isEnd() && subView.isDrawn()) { + } else if (subView instanceof RefreshableView && subView.isDrawn()) { // Refresh the data on the subtab, so it's not stale. Log.debug("Refreshing data for [" + subView.getClass().getName() + "]..."); ((RefreshableView) subView).refresh();
rhq-commits@lists.fedorahosted.org