modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java | 18 +++++++--- 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 | 11 +++--- 3 files changed, 22 insertions(+), 10 deletions(-)
New commits: commit ea307199f414e3f155c4ababaabb5fee769c6c9c Author: Ian Springer ian.springer@redhat.com Date: Mon Dec 13 12:30:56 2010 -0500
2nd attempt at fixing subtab refresh when switching back to a subtab from another subtab on the same Resource or group, hopefully this time without breaking TableSection detail views (https://bugzilla.redhat.com/show_bug.cgi?id=661528); disable ack-all and delete-all buttons on alert history view if there are 0 alerts in the history
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java index d84b01f..bf936be 100644 --- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java +++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java @@ -29,6 +29,7 @@ import com.smartgwt.client.types.MultipleAppearance; import com.smartgwt.client.types.SortDirection; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.form.fields.SelectItem; +import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord;
@@ -38,6 +39,7 @@ import org.rhq.core.domain.criteria.AlertCriteria; import org.rhq.enterprise.gui.coregui.client.CoreGUI; import org.rhq.enterprise.gui.coregui.client.ImageManager; import org.rhq.enterprise.gui.coregui.client.components.table.AbstractTableAction; +import org.rhq.enterprise.gui.coregui.client.components.table.TableAction; import org.rhq.enterprise.gui.coregui.client.components.table.TableActionEnablement; import org.rhq.enterprise.gui.coregui.client.components.table.TableSection; import org.rhq.enterprise.gui.coregui.client.components.view.ViewName; @@ -112,8 +114,6 @@ public class AlertHistoryView extends TableSection<AlertDataSource> { private void setupTableInteractions() { TableActionEnablement singleTargetEnablement = hasWriteAccess ? TableActionEnablement.ANY : TableActionEnablement.NEVER; - TableActionEnablement multipleTargetEnablement = hasWriteAccess ? TableActionEnablement.ALWAYS - : TableActionEnablement.NEVER;
addTableAction("DeleteAlert", MSG.common_button_delete(), MSG.view_alerts_delete_confirm(), new AbstractTableAction(singleTargetEnablement) { @@ -122,7 +122,12 @@ public class AlertHistoryView extends TableSection<AlertDataSource> { } }); addTableAction("DeleteAll", MSG.common_button_delete_all(), MSG.view_alerts_delete_confirm_all(), - new AbstractTableAction(multipleTargetEnablement) { + new TableAction() { + public boolean isEnabled(ListGridRecord[] selection) { + ListGrid grid = getListGrid(); + return (hasWriteAccess && grid != null && (getListGrid().getRecords().length >= 1)); + } + public void executeAction(ListGridRecord[] selection, Object actionValue) { deleteAll(); } @@ -134,7 +139,12 @@ public class AlertHistoryView extends TableSection<AlertDataSource> { } }); addTableAction("AcknowledgeAll", MSG.common_button_ack_all(), MSG.view_alerts_ack_confirm_all(), - new AbstractTableAction(multipleTargetEnablement) { + new TableAction() { + public boolean isEnabled(ListGridRecord[] selection) { + ListGrid grid = getListGrid(); + return (hasWriteAccess && grid != null && (grid.getRecords().length >= 1)); + } + public void executeAction(ListGridRecord[] selection, Object actionValue) { acknowledgeAll(); } 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 fb1fec9..eeb428b 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 @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import java.util.Set;
+import com.allen_sauer.gwt.log.client.Log; import com.smartgwt.client.data.Criteria; import com.smartgwt.client.data.DSCallback; import com.smartgwt.client.data.DSRequest; @@ -476,7 +477,7 @@ public class Table<DS extends RPCDataSource> extends LocatableHLayout implements }
public void refresh() { - if (null != this.listGrid) { + if (null != this.listGrid) { this.listGrid.invalidateCache(); this.listGrid.markForRedraw(); } 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 6040959..a4f76c8 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,11 +240,12 @@ 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); - } else if (subView instanceof RefreshableView) { - if (subView.isDrawn()) { - // Refresh the data on the subtab, so it's not stale. - ((RefreshableView) subView).refresh(); - } + } + + if (subView instanceof RefreshableView && viewPath.isEnd() && subView.isDrawn()) { + // Refresh the data on the subtab, so it's not stale. + Log.debug("Refreshing data for [" + subView.getClass().getName() + "]..."); + ((RefreshableView) subView).refresh(); }
this.tabSet.markForRedraw();
rhq-commits@lists.fedorahosted.org