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@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@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@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; + } }