modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTabSet.java
| 27 +++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/AutoRefreshPortlet.java
| 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/AutoRefreshPortletUtil.java
| 72 ++++++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupAlertsPortlet.java
| 34 ----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupAlertsPortlet3.java
| 38 +----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupBundleDeploymentsPortlet.java
| 33 +---
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupEventsPortlet.java
| 32 ----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupMetricsPortlet.java
| 34 +---
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupOobsPortlet.java
| 34 ----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupOperationsPortlet.java
| 32 +---
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupPkgHistoryPortlet.java
| 34 ----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/queue/AutodiscoveryPortlet.java
| 33 ----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/FavoriteResourcesPortlet.java
| 33 +---
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/alerts/RecentAlertsPortlet.java
| 34 ----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java
| 33 ----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationsPortlet.java
| 33 ----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java
| 32 ----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/InventorySummaryPortlet.java
| 32 ----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java
| 69 +++++++--
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
| 3
20 files changed, 269 insertions(+), 409 deletions(-)
New commits:
commit 308f9f8d0ea4e019c3439d79e259a20f8ee39162
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Mar 23 10:09:24 2011 -0400
trivial: add import lost in merge
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupMetricsPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupMetricsPortlet.java
index 7c748fa..898c04b 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupMetricsPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupMetricsPortlet.java
@@ -66,6 +66,7 @@ import
org.rhq.enterprise.gui.coregui.client.inventory.groups.detail.ResourceGro
import
org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository;
import org.rhq.enterprise.gui.coregui.client.resource.disambiguation.ReportDecorator;
import org.rhq.enterprise.gui.coregui.client.util.BrowserUtility;
+import org.rhq.enterprise.gui.coregui.client.util.MeasurementUtility;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableCanvas;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
commit b649b2f2f9853879ec2494df9510b04cbaac0dd7
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Mar 23 10:09:06 2011 -0400
More Tabbing Fun
There are multiple ways that during one rendering of tabs
we can get a request for another. We need to shut down user and smartgwt
initiated tab selection events until we're ready (until we've finished the
previous rendering). Hopefully this finally gets it right. I added some more
comments in this for the next unlucky soul (well, probably me...).
I think I also may have gotten rid of some unwanted, duplicate rendering.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTabSet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTabSet.java
index 7413dae..6329f67 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTabSet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTabSet.java
@@ -38,6 +38,8 @@ public class TwoLevelTabSet extends NamedTabSet implements
TabSelectedHandler, T
/** maps Tab locator IDs to Tabs. */
private Map<String, TwoLevelTab> hiddenTabs = new LinkedHashMap<String,
TwoLevelTab>();
+ private boolean ignoreSelectEvents = false;
+
public TwoLevelTabSet(String locatorId) {
super(locatorId);
}
@@ -109,7 +111,15 @@ public class TwoLevelTabSet extends NamedTabSet implements
TabSelectedHandler, T
return m.addHandler(TwoLevelTabSelectedEvent.TYPE, handler);
}
+ // This is invoked by smartgwt when the user clicks on a Tab in the TabSet, or
TabSet.selectTab() is called. It
+ // sets the current SubTab and fires an event to notify AbstractTwoLevelTabSet that a
tab/subtab has been selected.
public void onTabSelected(TabSelectedEvent tabSelectedEvent) {
+ // if requested, ignore select tab notifications. smartgwt can generate unwanted
notifications
+ // while we manipulate the tabset (e.g. when hiding the current tab). We want to
manage this at a higher level
+ if (isIgnoreSelectEvents()) {
+ return;
+ }
+
TwoLevelTab tab = (TwoLevelTab) getSelectedTab();
SubTab currentSubTab = tab.getLayout().getCurrentSubTab();
if (null != currentSubTab) {
@@ -119,7 +129,15 @@ public class TwoLevelTabSet extends NamedTabSet implements
TabSelectedHandler, T
}
}
+ // This is invoked by an event fired in SubTabLayout when the user clicks a SubTab
button. It sets the Tab
+ // and fires an event to notify AbstractTwoLevelTabSet that a tab/subtab has been
selected.
public void onTabSelected(TwoLevelTabSelectedEvent tabSelectedEvent) {
+ // if requested, ignore select tab notifications. smartgwt can generate unwanted
notifications
+ // while we manipulate the tabset (e.g. when hiding the current tab). We want to
manage this at a higher level
+ if (isIgnoreSelectEvents()) {
+ return;
+ }
+
tabSelectedEvent.setTabNum(getSelectedTabNumber());
Tab tab = getSelectedTab();
tabSelectedEvent.setId(this.getTabByTitle(tab.getTitle()).getName());
@@ -156,6 +174,14 @@ public class TwoLevelTabSet extends NamedTabSet implements
TabSelectedHandler, T
}
}
+ public boolean isIgnoreSelectEvents() {
+ return ignoreSelectEvents;
+ }
+
+ public void setIgnoreSelectEvents(boolean ignoreSelectEvents) {
+ this.ignoreSelectEvents = ignoreSelectEvents;
+ }
+
@Override
public void destroy() {
// add the hidden tabs back under the TabSet. This will get them destroyed by
smartgwt when the tabset
@@ -168,4 +194,5 @@ public class TwoLevelTabSet extends NamedTabSet implements
TabSelectedHandler, T
}
super.destroy();
}
+
}
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 e303c50..04d6410 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
@@ -133,18 +133,21 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends
Layout> extends Lo
}
}
+ // This is invoked by events fired in TwoLevelTabSet whenever a tab/subtab combo has
been selected.
public void onTabSelected(TwoLevelTabSelectedEvent tabSelectedEvent) {
- // We want to finish the tab selection process, which may involve async loading
of content,
- // before allowing more tab selection. This avoids potential tab
"looping" that happens when a new
- // tab is selected before the previous one could finish loading. So, disable the
tab set here, and
- // re-enable it later when the tab content is actuall rendered (see selectTab).
+ // Establishing the proper tabbed view may involve tab add/remove and async
loading of content. While doing this
+ // we want to prevent user initiation of another tab change. To block users from
clicking tabs we
+ // disable the tab set. We re-enable the tabset when safe. (see this method and
also selectTab()).
if (getSelectedItemId() == null) {
this.tabSet.disable();
CoreGUI.goToView(History.getToken());
+
} else {
- String tabPath = "/" + tabSelectedEvent.getId() + "/" +
tabSelectedEvent.getSubTabId();
+ String tabId = tabSelectedEvent.getId();
+ String subTabId = tabSelectedEvent.getSubTabId();
+ String tabPath = "/" + tabId + "/" + subTabId;
String path = this.baseViewPath + "/" + getSelectedItemId() +
tabPath;
// If the selected tab or subtab is not already the current history item, the
user clicked on the tab, rather
@@ -153,11 +156,16 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends
Layout> extends Lo
if (!(History.getToken().equals(path) || History.getToken().startsWith(path +
"/"))) {
this.tabSet.disable();
CoreGUI.goToView(path);
+
+ } else {
+ // ensure the tabset is enabled if we're not going to be doing any
further tab selection
+ this.tabSet.enable();
}
}
}
public void renderView(final ViewPath viewPath) {
+
new PermissionsLoader().loadExplicitGlobalPermissions(new
PermissionsLoadedListener() {
@Override
public void onPermissionsLoaded(Set<Permission> permissions) {
@@ -168,6 +176,7 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends
Layout> extends Lo
}
private void renderTabs(final ViewPath viewPath) {
+
// e.g. #Resource/10010/Summary/Overview
// ^ current path
final int id = Integer.parseInt(viewPath.getCurrent().getPath());
@@ -191,10 +200,19 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends
Layout> extends Lo
}
if (getSelectedItemId() == null || getSelectedItemId() != id) {
- loadSelectedItem(id, viewPath);
+ // A different entity (resource or group), load it and try to navigate to the
same tabs if possible.
+ // Changing entities may change the available tabs as the same tab set may
not be supported by the
+ // new entity's type. To maintain a valid tab selection for the TabSet,
smartgwt will generate an
+ // events if the current tab is removed (which can happen say, when
navigating from a resource of type A
+ // to a resource of type B). We need to ignore tab selection events generated
by smartgwt because we
+ // handle this at a higher level. To do this we explicitly set events to be
be ignored. We re-enable
+ // the event handling when safe. (see selectTab()).
+ this.tabSet.setIgnoreSelectEvents(true);
+ this.loadSelectedItem(id, viewPath);
+
} else {
// Same Resource - just switch tabs.
- selectTab(this.tabName, this.subTabName, viewPath);
+ this.selectTab(this.tabName, this.subTabName, viewPath);
}
}
@@ -210,23 +228,36 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends
Layout> extends Lo
TwoLevelTab tab = (tabName != null) ? this.tabSet.getTabByName(tabName) :
null;
SubTab subtab = null;
+ // if the requested tab is not available for the tabset then select the
defaults (firing a new event)
if (tab == null || tab.getDisabled()) {
+ this.tabSet.setIgnoreSelectEvents(false);
subtab = selectDefaultTabAndSubTab();
- } else {
- // Do *not* select the tab and trigger the tab selected event until the
subtab has been selected first.
- subtab = (subtabName != null) ? tab.getSubTabByName(subtabName) :
tab.getDefaultSubTab();
- if (subtab == null || tab.getLayout().isSubTabDisabled(subtab)) {
- // due to our attempt to perform sticky tabbing we may request an
invalid subtab when
- // switching resources. Just silently go to the default tab/subtab.
- subtab = tab.getLayout().getDefaultSubTab();
- }
- tab.getLayout().selectSubTab(subtab);
-
- // Now that the subtab has been selected, select the tab (this will cause
a tab selected event to fire).
+ return;
+ }
+
+ // the tab is available, now get the subtab
+ subtab = (subtabName != null) ? tab.getSubTabByName(subtabName) :
tab.getDefaultSubTab();
+
+ // due to our attempt to perform sticky tabbing we may request an invalid
subtab when
+ // switching resources. If the requested subtab is not available the select
the default subtab for the tab
+ if (subtab == null || tab.getLayout().isSubTabDisabled(subtab)) {
+ subtab = tab.getLayout().getDefaultSubTab();
+ }
+
+ // select the subTab (this does not fire an event, just sets the subtab)
+ tab.getLayout().selectSubTab(subtab);
+
+ // now that the tab/subtab is determined, if currently selected tab is not
the desired tab, then
+ // select it now (firing a new event).
+ if (!tab.equals(this.tabSet.getSelectedTab())) {
+ this.tabSet.setIgnoreSelectEvents(false);
this.tabSet.selectTab(tab);
+ return;
}
+ // if the desired tab/subtab are already selected, now we can render the
subtab canvas
Canvas subView = subtab.getCanvas();
+
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);
@@ -237,8 +268,10 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends
Layout> extends Lo
}
// ensure the tabset is enabled (disabled in onTabSelected), and redraw
+ this.tabSet.setIgnoreSelectEvents(false);
this.tabSet.enable();
this.tabSet.markForRedraw();
+
} catch (Exception e) {
this.tabSet.enable();
Log.info("Failed to select tab " + tabName + "/" +
subtabName + ": " + e);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
index 38e09eb..91f617d 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java
@@ -85,7 +85,6 @@ public class ResourceDetailView extends
AbstractTwoLevelTabSetView<ResourceCompo
public static class Tab {
public static final String OPERATIONS = "Operations";
public static final String CONFIGURATION = "Configuration";
- // TODO: other tabs
}
public static class OperationsSubTab {
@@ -142,6 +141,8 @@ public class ResourceDetailView extends
AbstractTwoLevelTabSetView<ResourceCompo
public ResourceDetailView(String locatorId) {
super(locatorId, BASE_VIEW_PATH);
+
+ // hide until we have our tabs in place
this.hide();
}
commit 48ec8e2feb895608ba589bfd36406f939a5f5e47
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Tue Mar 22 17:33:26 2011 -0400
Resource/Group dash AutoRefreshPortlets were continuing to refresh even
when the Summary/Activity subtab was not being viewed. This generates a lot
of background work and db round trips. The reason is that we don't
destroy a subtab's canvas if the user stays within the same entity detail
view (on the assumption that the user may well revisit the same subtab).
Now, skip the refresh request if the subtab canvas is not visible.
- consolidate some autoresreshportlet logic into a util class
- add isRefreshing() to interface, and also skip the refresh request if the
portlet is still refreshing from a previous request (not every ARP currently
has this implemented)
- get rid of some warnings/unused code
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/AutoRefreshPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/AutoRefreshPortlet.java
index 9b23871..897c1b4 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/AutoRefreshPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/AutoRefreshPortlet.java
@@ -32,4 +32,10 @@ public interface AutoRefreshPortlet extends Portlet {
* should be canceled when the portlet goes out of scope (typically in an onDestroy()
override).
*/
void startRefreshCycle();
+
+ /**
+ * @return true if the portlet is currently responding to a refresh (i.e. reloading
data). This can be used
+ * to ignore refresh requests until a prior request is completed.
+ */
+ boolean isRefreshing();
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/AutoRefreshPortletUtil.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/AutoRefreshPortletUtil.java
new file mode 100644
index 0000000..4977de6
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/AutoRefreshPortletUtil.java
@@ -0,0 +1,72 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2009 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.dashboard;
+
+import com.google.gwt.user.client.Timer;
+import com.smartgwt.client.widgets.Canvas;
+
+import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
+import org.rhq.enterprise.gui.coregui.client.util.MeasurementUtility;
+
+/**
+ * @author Jay Shaughnessy
+ */
+public class AutoRefreshPortletUtil {
+
+ public static Timer startRefreshCycle(final AutoRefreshPortlet portlet, final Canvas
autoRefreshPortletCanvas,
+ Timer refreshTimer) {
+
+ final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
+
+ //cancel any existing timer
+ if (null != refreshTimer) {
+ refreshTimer.cancel();
+ }
+
+ if (refreshInterval >= MeasurementUtility.MINUTES) {
+
+ refreshTimer = new Timer() {
+ public void run() {
+
+ // if the portlet is already refreshing or if the portlet is not
currently on screen then
+ // don't bother doing the work. this protects against unnecessary
or unwanted db queries
+ // being performed in the background.
+ if (!portlet.isRefreshing() &&
autoRefreshPortletCanvas.isVisible()) {
+ autoRefreshPortletCanvas.redraw();
+ }
+ }
+ };
+
+ refreshTimer.scheduleRepeating(refreshInterval);
+ }
+
+ return refreshTimer;
+ }
+
+ public static void onDestroy(final Canvas portlet, Timer refreshTimer) {
+
+ if (refreshTimer != null) {
+
+ refreshTimer.cancel();
+ }
+
+ }
+
+}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupAlertsPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupAlertsPortlet.java
index cc14736..740d549 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupAlertsPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupAlertsPortlet.java
@@ -43,12 +43,11 @@ import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.LinkManager;
-import org.rhq.enterprise.gui.coregui.client.Messages;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.alert.AlertHistoryView;
import org.rhq.enterprise.gui.coregui.client.alert.AlertPortletConfigurationDataSource;
import
org.rhq.enterprise.gui.coregui.client.components.measurement.CustomConfigMeasurementRangeEditor;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
@@ -56,7 +55,6 @@ import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
import
org.rhq.enterprise.gui.coregui.client.dashboard.portlets.PortletConfigurationEditorComponent;
import
org.rhq.enterprise.gui.coregui.client.dashboard.portlets.recent.alerts.PortletAlertSelector;
import
org.rhq.enterprise.gui.coregui.client.inventory.common.detail.summary.AbstractActivityView;
-import org.rhq.enterprise.gui.coregui.client.util.MeasurementUtility;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
@@ -216,7 +214,6 @@ public class GroupAlertsPortlet extends AlertHistoryView implements
CustomSettin
@Override
public void onSubmitValues(SubmitValuesEvent event) {
- String selectedValue;
//alert severity
portletConfig =
AbstractActivityView.saveAlertPrioritySettings(alertPrioritySelector, portletConfig);
@@ -260,37 +257,21 @@ public class GroupAlertsPortlet extends AlertHistoryView implements
CustomSettin
}
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
-
- refreshTimer = new Timer() {
- public void run() {
- redraw();
- }
- };
-
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
super.onDestroy();
}
+ public boolean isRefreshing() {
+ return false;
+ }
+
@Override
protected void setupTableInteractions(boolean hasWriteAccess) {
// The portlet is a "subsystem" view. Meaning the alerts displayed can
be from any accessible group for
@@ -363,7 +344,6 @@ final class AlertResourceSelectorRegion extends LocatableVLayout {
this.currentlyAssignedIds = assigned;
}
- private static final Messages MSG = CoreGUI.getMessages();
private PortletAlertSelector selector = null;
private Integer[] currentlyAssignedIds;
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupAlertsPortlet3.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupAlertsPortlet3.java
index 7c166ad..2a2b3ac 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupAlertsPortlet3.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupAlertsPortlet3.java
@@ -46,9 +46,9 @@ import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.domain.util.PageOrdering;
import org.rhq.enterprise.gui.coregui.client.ImageManager;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import
org.rhq.enterprise.gui.coregui.client.components.measurement.CustomConfigMeasurementRangeEditor;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
@@ -60,7 +60,6 @@ import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import
org.rhq.enterprise.gui.coregui.client.inventory.common.detail.summary.AbstractActivityView;
import org.rhq.enterprise.gui.coregui.client.resource.disambiguation.ReportDecorator;
import org.rhq.enterprise.gui.coregui.client.util.GwtRelativeDurationConverter;
-import org.rhq.enterprise.gui.coregui.client.util.MeasurementUtility;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableCanvas;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
@@ -207,10 +206,10 @@ public class GroupAlertsPortlet3 extends LocatableVLayout implements
CustomSetti
if (property != null) {
String currentSetting = property.getStringValue();
if (currentSetting.trim().isEmpty() ||
currentSetting.equalsIgnoreCase("5")) {
- PageControl pageControl = new PageControl(0, 5);
+ //PageControl pageControl = new PageControl(0, 5);
pc.setPageSize(5);
} else {
- PageControl pageControl = new PageControl(0,
Integer.valueOf(currentSetting));
+ //PageControl pageControl = new PageControl(0,
Integer.valueOf(currentSetting));
pc.setPageSize(Integer.valueOf(currentSetting));
}
}
@@ -356,40 +355,21 @@ public class GroupAlertsPortlet3 extends LocatableVLayout implements
CustomSetti
return customSettings;
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
-
- refreshTimer = new Timer() {
- public void run() {
- if (!currentlyLoading) {
- loadData();
- redraw();
- }
- }
- };
-
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
- refreshTimer.cancel();
- }
super.onDestroy();
}
+ public boolean isRefreshing() {
+ return this.currentlyLoading;
+ }
+
@Override
public void redraw() {
super.redraw();
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupBundleDeploymentsPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupBundleDeploymentsPortlet.java
index 2c4fdc1..4d163ab 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupBundleDeploymentsPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupBundleDeploymentsPortlet.java
@@ -43,8 +43,8 @@ import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.domain.util.PageOrdering;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
@@ -55,7 +55,6 @@ import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import
org.rhq.enterprise.gui.coregui.client.inventory.common.detail.summary.AbstractActivityView;
import org.rhq.enterprise.gui.coregui.client.resource.disambiguation.ReportDecorator;
import org.rhq.enterprise.gui.coregui.client.util.GwtRelativeDurationConverter;
-import org.rhq.enterprise.gui.coregui.client.util.MeasurementUtility;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableCanvas;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
@@ -263,37 +262,21 @@ public class GroupBundleDeploymentsPortlet extends LocatableVLayout
implements C
});
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
- refreshTimer = new Timer() {
- public void run() {
- if (!currentlyLoading) {
- loadData();
- redraw();
- }
- }
- };
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
+
super.onDestroy();
}
+ public boolean isRefreshing() {
+ return this.currentlyLoading;
+ }
+
@Override
public void redraw() {
super.redraw();
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupEventsPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupEventsPortlet.java
index ec4dae7..3b069c5 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupEventsPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupEventsPortlet.java
@@ -39,9 +39,9 @@ import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.core.domain.event.EventSeverity;
import org.rhq.enterprise.gui.coregui.client.ImageManager;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import
org.rhq.enterprise.gui.coregui.client.components.measurement.CustomConfigMeasurementRangeEditor;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
@@ -292,39 +292,21 @@ public class GroupEventsPortlet extends LocatableVLayout implements
CustomSettin
});
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
-
- refreshTimer = new Timer() {
- public void run() {
- if (!currentlyLoading) {
- redraw();
- }
- }
- };
-
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
- refreshTimer.cancel();
- }
super.onDestroy();
}
+ public boolean isRefreshing() {
+ return this.currentlyLoading;
+ }
+
@Override
public void redraw() {
super.redraw();
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupMetricsPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupMetricsPortlet.java
index 5cf7b36..7c748fa 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupMetricsPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupMetricsPortlet.java
@@ -51,9 +51,9 @@ import org.rhq.core.domain.resource.group.GroupCategory;
import org.rhq.core.domain.resource.group.ResourceGroup;
import org.rhq.core.domain.resource.group.composite.ResourceGroupComposite;
import org.rhq.core.domain.util.PageList;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import
org.rhq.enterprise.gui.coregui.client.components.measurement.CustomConfigMeasurementRangeEditor;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
@@ -66,7 +66,6 @@ import
org.rhq.enterprise.gui.coregui.client.inventory.groups.detail.ResourceGro
import
org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository;
import org.rhq.enterprise.gui.coregui.client.resource.disambiguation.ReportDecorator;
import org.rhq.enterprise.gui.coregui.client.util.BrowserUtility;
-import org.rhq.enterprise.gui.coregui.client.util.MeasurementUtility;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableCanvas;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
@@ -454,39 +453,21 @@ public class GroupMetricsPortlet extends LocatableVLayout implements
CustomSetti
recentMeasurementsContent.markForRedraw();
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
-
- refreshTimer = new Timer() {
- public void run() {
- if (!currentlyLoading) {
- loadData();
- redraw();
- }
- }
- };
-
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
+
super.onDestroy();
}
+ public boolean isRefreshing() {
+ return this.currentlyLoading;
+ }
+
@Override
public void redraw() {
super.redraw();
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupOobsPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupOobsPortlet.java
index ed3fb42..265e200 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupOobsPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupOobsPortlet.java
@@ -40,8 +40,8 @@ import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.core.domain.measurement.composite.MeasurementOOBComposite;
import org.rhq.core.domain.util.PageList;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
@@ -51,7 +51,6 @@ import
org.rhq.enterprise.gui.coregui.client.dashboard.portlets.PortletConfigura
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import
org.rhq.enterprise.gui.coregui.client.inventory.common.detail.summary.AbstractActivityView;
import org.rhq.enterprise.gui.coregui.client.util.GwtRelativeDurationConverter;
-import org.rhq.enterprise.gui.coregui.client.util.MeasurementUtility;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableCanvas;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
@@ -243,40 +242,21 @@ public class GroupOobsPortlet extends LocatableVLayout implements
CustomSettings
});
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
-
- refreshTimer = new Timer() {
- public void run() {
- if (!currentlyLoading) {
- loadData();
- redraw();
- }
- }
- };
-
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
- refreshTimer.cancel();
- }
super.onDestroy();
}
+ public boolean isRefreshing() {
+ return this.currentlyLoading;
+ }
+
@Override
public void redraw() {
super.redraw();
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupOperationsPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupOperationsPortlet.java
index 37813ac..10031d1 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupOperationsPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupOperationsPortlet.java
@@ -48,9 +48,9 @@ import
org.rhq.core.domain.resource.group.composite.ResourceGroupComposite;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import
org.rhq.enterprise.gui.coregui.client.components.measurement.CustomConfigMeasurementRangeEditor;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
@@ -296,37 +296,21 @@ public class GroupOperationsPortlet extends LocatableVLayout
implements CustomSe
}
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
-
- refreshTimer = new Timer() {
- public void run() {
- redraw();
- }
- };
-
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
super.onDestroy();
}
+ public boolean isRefreshing() {
+ return false;
+ }
+
private boolean isAutoGroup() {
return ResourceGroupDetailView.AUTO_GROUP_VIEW_PATH.equals(getBaseViewPath());
}
@@ -355,6 +339,7 @@ class GroupOperationsCriteriaHistoryListView extends
GroupOperationHistoryListVi
private ResourceGroupComposite composite;
+ @SuppressWarnings("unchecked")
public GroupOperationsCriteriaHistoryListView(String locatorId,
GroupOperationsCriteriaDataSource dataSource,
String title, Criteria criteria, ResourceGroupComposite composite) {
super(locatorId, composite);
@@ -363,6 +348,7 @@ class GroupOperationsCriteriaHistoryListView extends
GroupOperationHistoryListVi
setShowFooterRefresh(false); //disable footer refresh
}
+ @SuppressWarnings("unchecked")
public void setDatasource(GroupOperationsCriteriaDataSource datasource) {
super.setDataSource(datasource);
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupPkgHistoryPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupPkgHistoryPortlet.java
index 30c21a7..e58b1da 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupPkgHistoryPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/groups/GroupPkgHistoryPortlet.java
@@ -43,8 +43,8 @@ import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.core.domain.util.PageControl;
import org.rhq.core.domain.util.PageList;
import org.rhq.core.domain.util.PageOrdering;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
@@ -54,7 +54,6 @@ import
org.rhq.enterprise.gui.coregui.client.dashboard.portlets.PortletConfigura
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import
org.rhq.enterprise.gui.coregui.client.inventory.common.detail.summary.AbstractActivityView;
import org.rhq.enterprise.gui.coregui.client.util.GwtRelativeDurationConverter;
-import org.rhq.enterprise.gui.coregui.client.util.MeasurementUtility;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableCanvas;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
@@ -260,40 +259,21 @@ public class GroupPkgHistoryPortlet extends LocatableVLayout
implements CustomSe
});
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
-
- refreshTimer = new Timer() {
- public void run() {
- if (!currentlyLoading) {
- loadData();
- redraw();
- }
- }
- };
-
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
- refreshTimer.cancel();
- }
super.onDestroy();
}
+ public boolean isRefreshing() {
+ return this.currentlyLoading;
+ }
+
@Override
public void redraw() {
super.redraw();
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/queue/AutodiscoveryPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/queue/AutodiscoveryPortlet.java
index efa62f7..37d57df 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/queue/AutodiscoveryPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/queue/AutodiscoveryPortlet.java
@@ -31,15 +31,14 @@ import com.smartgwt.client.widgets.form.fields.events.ChangeHandler;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.dashboard.DashboardPortlet;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
import
org.rhq.enterprise.gui.coregui.client.inventory.resource.discovery.AutodiscoveryQueueDataSource;
import
org.rhq.enterprise.gui.coregui.client.inventory.resource.discovery.ResourceAutodiscoveryView;
-import org.rhq.enterprise.gui.coregui.client.util.MeasurementUtility;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHLayout;
@@ -197,37 +196,19 @@ public class AutodiscoveryPortlet extends ResourceAutodiscoveryView
implements C
return dataSource;
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
-
- refreshTimer = new Timer() {
- public void run() {
-
- redraw();
- }
- };
-
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
-
- refreshTimer.cancel();
- }
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
super.onDestroy();
}
+ public boolean isRefreshing() {
+ return false;
+ }
+
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/FavoriteResourcesPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/FavoriteResourcesPortlet.java
index f14d791..556ee6f 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/FavoriteResourcesPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/inventory/resource/FavoriteResourcesPortlet.java
@@ -37,11 +37,11 @@ import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.ResourceSearchView;
-import org.rhq.enterprise.gui.coregui.client.util.MeasurementUtility;
/**
* @author Greg Hinkle
@@ -127,36 +127,19 @@ public class FavoriteResourcesPortlet extends ResourceSearchView
implements Auto
}
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
-
- refreshTimer = new Timer() {
- public void run() {
-
- redraw();
- }
- };
-
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
-
- refreshTimer.cancel();
- }
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
super.onDestroy();
}
+
+ public boolean isRefreshing() {
+ return false;
+ }
+
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/alerts/RecentAlertsPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/alerts/RecentAlertsPortlet.java
index 665898e..fed9070 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/alerts/RecentAlertsPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/alerts/RecentAlertsPortlet.java
@@ -46,11 +46,10 @@ import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
import org.rhq.enterprise.gui.coregui.client.LinkManager;
-import org.rhq.enterprise.gui.coregui.client.Messages;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.alert.AlertHistoryView;
import org.rhq.enterprise.gui.coregui.client.alert.AlertPortletDataSource;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
@@ -566,39 +565,21 @@ public class RecentAlertsPortlet extends AlertHistoryView implements
CustomSetti
}
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
-
- refreshTimer = new Timer() {
- public void run() {
-
- redraw();
- }
- };
-
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
-
- refreshTimer.cancel();
- }
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
super.onDestroy();
}
+ public boolean isRefreshing() {
+ return false;
+ }
+
@Override
protected void setupTableInteractions(boolean hasWriteAccess) {
// The portlet is a "subsystem" view. Meaning the alerts displayed can
be from any accessible group for
@@ -655,7 +636,6 @@ class AlertResourceSelectorRegion extends LocatableVLayout {
this.currentlyAssignedIds = assigned;
}
- private static final Messages MSG = CoreGUI.getMessages();
private PortletAlertSelector selector = null;
private Integer[] currentlyAssignedIds;
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java
index e63c0c7..e570a04 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/imported/RecentlyAddedResourcesPortlet.java
@@ -37,14 +37,13 @@ import com.smartgwt.client.widgets.tree.TreeGrid;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.dashboard.DashboardPortlet;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.components.HeaderLabel;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
-import org.rhq.enterprise.gui.coregui.client.util.MeasurementUtility;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
public class RecentlyAddedResourcesPortlet extends LocatableVLayout implements
CustomSettingsPortlet,
@@ -252,36 +251,18 @@ public class RecentlyAddedResourcesPortlet extends LocatableVLayout
implements C
return dataSource;
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
-
- refreshTimer = new Timer() {
- public void run() {
-
- redraw();
- }
- };
-
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
-
- refreshTimer.cancel();
- }
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
super.onDestroy();
}
+
+ public boolean isRefreshing() {
+ return false;
+ }
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationsPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationsPortlet.java
index 69a36a0..c839109 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationsPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/operations/OperationsPortlet.java
@@ -43,8 +43,8 @@ import
org.rhq.core.domain.configuration.definition.PropertyDefinitionSimple;
import org.rhq.core.domain.configuration.definition.PropertySimpleType;
import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.enterprise.gui.coregui.client.LinkManager;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
@@ -52,7 +52,6 @@ import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
import org.rhq.enterprise.gui.coregui.client.inventory.resource.AncestryUtil;
import org.rhq.enterprise.gui.coregui.client.operation.RecentOperationsDataSource;
import org.rhq.enterprise.gui.coregui.client.operation.ScheduledOperationsDataSource;
-import org.rhq.enterprise.gui.coregui.client.util.MeasurementUtility;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableHLayout;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableLabel;
@@ -513,36 +512,18 @@ public class OperationsPortlet extends LocatableVLayout implements
CustomSetting
return this.scheduledOperationsGrid;
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
-
- refreshTimer = new Timer() {
- public void run() {
-
- redraw();
- }
- };
-
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
-
- refreshTimer.cancel();
- }
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
super.onDestroy();
}
+
+ public boolean isRefreshing() {
+ return false;
+ }
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java
index bd28719..8fcaba0 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/recent/problems/ProblemResourcesPortlet.java
@@ -49,10 +49,10 @@ import
org.rhq.core.domain.configuration.definition.PropertyDefinitionSimple;
import org.rhq.core.domain.configuration.definition.PropertySimpleType;
import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.enterprise.gui.coregui.client.LinkManager;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.components.table.Table;
import org.rhq.enterprise.gui.coregui.client.components.table.TableWidget;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.CustomSettingsPortlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
@@ -340,39 +340,21 @@ public class ProblemResourcesPortlet extends
Table<ProblemResourcesDataSource> i
return timeRange;
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
-
- refreshTimer = new Timer() {
- public void run() {
-
- redraw();
- }
- };
-
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
-
- refreshTimer.cancel();
- }
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
super.onDestroy();
}
+ public boolean isRefreshing() {
+ return false;
+ }
+
}
/**Construct table widget Label to display timerange settings used with latest datasource
query.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/InventorySummaryPortlet.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/InventorySummaryPortlet.java
index 70fbc3e..3466bb6 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/InventorySummaryPortlet.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/dashboard/portlets/summary/InventorySummaryPortlet.java
@@ -38,14 +38,13 @@ import com.smartgwt.client.widgets.form.fields.events.ClickHandler;
import org.rhq.core.domain.dashboard.DashboardPortlet;
import org.rhq.core.domain.resource.InventorySummary;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
-import org.rhq.enterprise.gui.coregui.client.UserSessionManager;
import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortlet;
+import org.rhq.enterprise.gui.coregui.client.dashboard.AutoRefreshPortletUtil;
import org.rhq.enterprise.gui.coregui.client.dashboard.Portlet;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletViewFactory;
import org.rhq.enterprise.gui.coregui.client.dashboard.PortletWindow;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.gwt.ResourceBossGWTServiceAsync;
-import org.rhq.enterprise.gui.coregui.client.util.MeasurementUtility;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableDynamicForm;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
@@ -172,37 +171,18 @@ public class InventorySummaryPortlet extends LocatableVLayout
implements AutoRef
}
}
- @Override
public void startRefreshCycle() {
- //current setting
- final int refreshInterval =
UserSessionManager.getUserPreferences().getPageRefreshInterval();
-
- //cancel any existing timer
- if (refreshTimer != null) {
- refreshTimer.cancel();
- }
-
- if (refreshInterval >= MeasurementUtility.MINUTES) {
-
- refreshTimer = new Timer() {
- public void run() {
-
- redraw();
- }
- };
-
- refreshTimer.scheduleRepeating(refreshInterval);
- }
+ refreshTimer = AutoRefreshPortletUtil.startRefreshCycle(this, this,
refreshTimer);
}
@Override
protected void onDestroy() {
- if (refreshTimer != null) {
-
- refreshTimer.cancel();
- }
+ AutoRefreshPortletUtil.onDestroy(this, refreshTimer);
super.onDestroy();
}
+ public boolean isRefreshing() {
+ return false;
+ }
}