modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/tree/BundleTreeDataSource.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTab.java | 33 ++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTabSet.java | 45 +++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTab.java | 26 +-
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java | 16 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTab.java | 13 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTabSet.java | 14 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/ViewName.java | 6
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/common/detail/AbstractTwoLevelTabSetView.java | 18 -
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java | 109 +++++----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/resource/detail/ResourceDetailView.java | 120 +++++-----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/LocatableTabSet.java | 2
modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties | 6
13 files changed, 272 insertions(+), 138 deletions(-)
New commits:
commit 521531d4002b1bc7217a864ad6190af7ca84f728
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Nov 19 21:27:41 2010 -0500
I18N Work: Tabs
- tabbed views had/have a problem similar to the issue we had with our
view ids. In short, Tab provides only a title, which we were using both
for display and for viewpaths. I added NamedTab to allow us to keep
localized strings out of our urls, and to provide separation between
internal name and external title. NamedTab uses the same ViewName class
introduced for the ViewId issue. Also, there is an analogous NamedTabSet.
Names are now used for all non-display needs that were using title.
(as an aside, I don't care for ViewName but couldn't think of anything
better. Maybe NamedView, NamedItem, NamedTitle... if you have a pref we can
change it).
I applied the change to the Resource and ResourceGroup detail views. But
note that NamedTabSets may need to be applied where we are currently
using LocatableTabSets. It depends on whether the titles are being used
in any bookmarkable way. Needing potential change:
- SingleAlertDefinitionView
- BundleView
- BundleVersionView
- ConfigurationEditor
- DashboardsView
- fixed use of wrong prop in BundleTreeDataSource
- added a few more missing props
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/tree/BundleTreeDataSource.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/tree/BundleTreeDataSource.java
index 7cdb894..e105374 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/tree/BundleTreeDataSource.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/bundle/tree/BundleTreeDataSource.java
@@ -188,7 +188,7 @@ public class BundleTreeDataSource extends RPCDataSource {
TreeNode deploymentsNode = new TreeNode(MSG.view_bundle_destinations());
deploymentsNode.setID(bundle.getId() + "_destinations");
deploymentsNode.setParentID(String.valueOf(bundle.getId()));
- deploymentsNode.setName(MSG.view_bundle_versions());
+ deploymentsNode.setName(MSG.view_bundle_destinations());
records.add(deploymentsNode);
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTab.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTab.java
new file mode 100644
index 0000000..848d760
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTab.java
@@ -0,0 +1,33 @@
+package org.rhq.enterprise.gui.coregui.client.components.tab;
+
+import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTab;
+
+/**
+ * A Wrapper for org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTab allowing for a Tab that separates
+ * internal naming and external title.
+ *
+ * @author Jay Shaughnessy
+ */
+public class NamedTab extends LocatableTab {
+
+ private ViewName viewName;
+
+ public NamedTab(String locatorId, ViewName viewName, String icon) {
+ super(locatorId, viewName.getTitle(), icon);
+ this.viewName = viewName;
+ }
+
+ public ViewName getViewName() {
+ return viewName;
+ }
+
+ public String getName() {
+ return viewName.getName();
+ }
+
+ public String getTitle() {
+ return viewName.getTitle();
+ }
+
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTabSet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTabSet.java
new file mode 100644
index 0000000..e7d4a98
--- /dev/null
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/NamedTabSet.java
@@ -0,0 +1,45 @@
+package org.rhq.enterprise.gui.coregui.client.components.tab;
+
+import com.smartgwt.client.widgets.tab.Tab;
+
+import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTabSet;
+
+/**
+ * A Wrapper for org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTabSet allowing for a Set of NamedTabs.
+ *
+ * @author Jay Shaughnessy
+ */
+public class NamedTabSet extends LocatableTabSet {
+
+ public NamedTabSet(String locatorId) {
+ super(locatorId);
+ }
+
+ public void setTabs(NamedTab... tabs) {
+ super.setTabs(tabs);
+ }
+
+ public NamedTab[] getTabs() {
+ Tab[] tabs = super.getTabs();
+ NamedTab[] namedTabs = new NamedTab[tabs.length];
+ for (int i = 0, tabsLength = tabs.length; i < tabsLength; i++) {
+ Tab tab = tabs[i];
+ if (!(tab instanceof NamedTab)) {
+ throw new IllegalStateException("NamedTabSet contains a Tab that is not a NamedTab.");
+ }
+ namedTabs[i] = (NamedTab) tab;
+ }
+ return namedTabs;
+ }
+
+ public NamedTab getTabByName(String name) {
+ NamedTab[] tabs = getTabs();
+ for (NamedTab tab : tabs) {
+ if (tab.getName().equals(name)) {
+ return tab;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTab.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTab.java
index e149772..b6296d7 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTab.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTab.java
@@ -21,6 +21,7 @@ package org.rhq.enterprise.gui.coregui.client.components.tab;
import com.smartgwt.client.widgets.Canvas;
+import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
import org.rhq.enterprise.gui.coregui.client.util.selenium.Locatable;
import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableButton;
@@ -31,13 +32,13 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableButton;
*/
public class SubTab implements Locatable {
private String locatorId;
- private String title;
+ private ViewName viewName;
private Canvas canvas;
private LocatableButton button;
- public SubTab(String locatorId, String title, Canvas canvas) {
+ public SubTab(String locatorId, ViewName viewName, Canvas canvas) {
this.locatorId = locatorId;
- this.title = title;
+ this.viewName = viewName;
this.canvas = canvas;
this.button = null;
}
@@ -46,10 +47,6 @@ public class SubTab implements Locatable {
return locatorId;
}
- public String getTitle() {
- return title;
- }
-
public Canvas getCanvas() {
return canvas;
}
@@ -66,6 +63,18 @@ public class SubTab implements Locatable {
this.button = button;
}
+ public ViewName getViewName() {
+ return viewName;
+ }
+
+ public String getName() {
+ return viewName.getName();
+ }
+
+ public String getTitle() {
+ return viewName.getTitle();
+ }
+
@Override
public String extendLocatorId(String extension) {
return this.locatorId + "_" + extension;
@@ -73,6 +82,7 @@ public class SubTab implements Locatable {
@Override
public String toString() {
- return "SubTab[title=" + this.title + ", locatorId=" + this.locatorId + "]";
+ return "SubTab[title=" + this.viewName.getTitle() + ", name=" + this.viewName.getName() + ", locatorId="
+ + this.locatorId + "]";
}
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java
index 135dcee..4797641 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/SubTabLayout.java
@@ -42,9 +42,9 @@ import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableVLayout;
*/
public class SubTabLayout extends LocatableVLayout {
- /** maps subTab locator IDs to SubTabs */
+ /** maps subTab locator IDs to SubTabs. Unlike names, locatorIDs are qualified by the Tab and therefore unique. */
private Map<String, SubTab> subTabs = new LinkedHashMap<String, SubTab>();
- /** locator IDs of subTabs that are disabled */
+ /** locator IDs of subTabs that are disabled. Unlike names, locator IDs are qualified by the Tab and therefore unique. */
private Set<String> disabledSubTabs = new HashSet<String>();
private SubTab currentlyDisplayed;
@@ -221,10 +221,10 @@ public class SubTabLayout extends LocatableVLayout {
return foundTab;
}
- public SubTab getSubTabByTitle(String title) {
+ public SubTab getSubTabByName(String name) {
for (String subTabLocatorId : this.subTabs.keySet()) {
SubTab subTab = this.subTabs.get(subTabLocatorId);
- if (subTab.getTitle().equals(title)) {
+ if (subTab.getName().equals(name)) {
return subTab;
}
}
@@ -242,14 +242,14 @@ public class SubTabLayout extends LocatableVLayout {
return null;
}
- public boolean selectSubTabByTitle(String title) {
- SubTab subTab = getSubTabByTitle(title);
+ public boolean selectSubTabByName(String name) {
+ SubTab subTab = getSubTabByName(name);
if (subTab == null) {
return false;
} else {
if (this.disabledSubTabs.contains(subTab.getLocatorId())) {
// Nice try - user tried to select a disabled tab, probably by going directly to a bookmark URL.
- CoreGUI.getErrorHandler().handleError(MSG.view_subTab_error_disabled(title));
+ CoreGUI.getErrorHandler().handleError(MSG.view_subTab_error_disabled(subTab.getTitle()));
return false;
}
this.currentlySelected = subTab.getLocatorId();
@@ -280,7 +280,7 @@ public class SubTabLayout extends LocatableVLayout {
}
public void fireSubTabSelection() {
- TwoLevelTabSelectedEvent event = new TwoLevelTabSelectedEvent("?", getCurrentSubTab().getTitle(), -1,
+ TwoLevelTabSelectedEvent event = new TwoLevelTabSelectedEvent("?", getCurrentSubTab().getName(), -1,
getCurrentCanvas());
hm.fireEvent(event);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTab.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTab.java
index 4468d93..fa62e45 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTab.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/tab/TwoLevelTab.java
@@ -20,16 +20,17 @@ package org.rhq.enterprise.gui.coregui.client.components.tab;
import com.smartgwt.client.widgets.Canvas;
-import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTab;
+import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
/**
* @author Greg Hinkle
+ * @author Jay Shaughnessy
*/
-public class TwoLevelTab extends LocatableTab {
+public class TwoLevelTab extends NamedTab {
private SubTabLayout layout;
- public TwoLevelTab(String locatorId, String title, String icon) {
- super(locatorId, title, icon);
+ public TwoLevelTab(String locatorId, ViewName viewName, String icon) {
+ super(locatorId, viewName, icon);
layout = new SubTabLayout(locatorId);
}
@@ -56,8 +57,8 @@ public class TwoLevelTab extends LocatableTab {
}
}
- public SubTab getSubTabByTitle(String title) {
- return this.layout.getSubTabByTitle(title);
+ public SubTab getSubTabByName(String name) {
+ return this.layout.getSubTabByName(name);
}
public SubTab getSubTabByLocatorId(String locatorId) {
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 d8e29b2..e256299 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
@@ -24,14 +24,12 @@ import com.smartgwt.client.widgets.tab.Tab;
import com.smartgwt.client.widgets.tab.events.TabSelectedEvent;
import com.smartgwt.client.widgets.tab.events.TabSelectedHandler;
-import org.rhq.enterprise.gui.coregui.client.util.selenium.LocatableTabSet;
-
/**
* A tab set where each {@link TwoLevelTab tab} has one or more {@link SubTab subtab}s.
*
* @author Greg Hinkle
*/
-public class TwoLevelTabSet extends LocatableTabSet implements TabSelectedHandler, TwoLevelTabSelectedHandler {
+public class TwoLevelTabSet extends NamedTabSet implements TabSelectedHandler, TwoLevelTabSelectedHandler {
public TwoLevelTabSet(String locatorId) {
super(locatorId);
@@ -73,8 +71,8 @@ public class TwoLevelTabSet extends LocatableTabSet implements TabSelectedHandle
TwoLevelTab tab = (TwoLevelTab) getSelectedTab();
SubTab currentSubTab = tab.getLayout().getCurrentSubTab();
if (null != currentSubTab) {
- TwoLevelTabSelectedEvent event = new TwoLevelTabSelectedEvent(tab.getTitle(), tab.getLayout()
- .getCurrentSubTab().getTitle(), tabSelectedEvent.getTabNum(), tab.getLayout().getCurrentCanvas());
+ TwoLevelTabSelectedEvent event = new TwoLevelTabSelectedEvent(tab.getName(), tab.getLayout()
+ .getCurrentSubTab().getName(), tabSelectedEvent.getTabNum(), tab.getLayout().getCurrentCanvas());
m.fireEvent(event);
}
}
@@ -82,7 +80,7 @@ public class TwoLevelTabSet extends LocatableTabSet implements TabSelectedHandle
public void onTabSelected(TwoLevelTabSelectedEvent tabSelectedEvent) {
tabSelectedEvent.setTabNum(getSelectedTabNumber());
Tab tab = getSelectedTab();
- tabSelectedEvent.setId(tab.getTitle());
+ tabSelectedEvent.setId(this.getTabByTitle(tab.getTitle()).getName());
m.fireEvent(tabSelectedEvent);
}
@@ -96,6 +94,10 @@ public class TwoLevelTabSet extends LocatableTabSet implements TabSelectedHandle
return null;
}
+ public TwoLevelTab getTabByName(String name) {
+ return (TwoLevelTab) super.getTabByName(name);
+ }
+
public TwoLevelTab getTabByTitle(String title) {
return (TwoLevelTab) super.getTabByTitle(title);
}
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/ViewName.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/ViewName.java
index ebececd..e174c63 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/ViewName.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/view/ViewName.java
@@ -2,6 +2,12 @@ package org.rhq.enterprise.gui.coregui.client.components.view;
import org.rhq.core.domain.util.StringUtils;
+/**
+ * A simple class that ties a private name to a displayed title. The title may very well change with locale but
+ * the name will stay constant. It's useful any time a viewable item does not itself provide for a name.
+ *
+ * @author Jay Shaughnessy
+ */
public class ViewName {
private String name;
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 a494a6b..f07f7dc 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
@@ -175,27 +175,27 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends Layout> extends Lo
/**
* Select the tab/subtab with the specified titles (e.g. "Monitoring", "Graphs").
*
- * @param tabTitle the title of the tab to select - if null, the default tab (the leftmost non-disabled one) will be selected
- * @param subtabTitle the title of the subtab to select - if null, the default subtab (the leftmost non-disabled one) will be selected
+ * @param tabName the title of the tab to select - if null, the default tab (the leftmost non-disabled one) will be selected
+ * @param subtabName the title of the subtab to select - if null, the default subtab (the leftmost non-disabled one) will be selected
* @param viewPath the view path, which may have additional view items to be rendered
*/
- public void selectTab(String tabTitle, String subtabTitle, ViewPath viewPath) {
+ public void selectTab(String tabName, String subtabName, ViewPath viewPath) {
try {
- TwoLevelTab tab = (tabTitle != null) ? this.tabSet.getTabByTitle(tabTitle) : this.tabSet.getDefaultTab();
+ TwoLevelTab tab = (tabName != null) ? this.tabSet.getTabByName(tabName) : this.tabSet.getDefaultTab();
if (tab == null || tab.getDisabled()) {
- CoreGUI.getErrorHandler().handleError("Invalid tab name: " + tabTitle);
+ CoreGUI.getErrorHandler().handleError(MSG.view_tabs_invalidTab(tabName));
// TODO: Should we fire a history event here to redirect to a valid bookmark?
tab = this.tabSet.getDefaultTab();
if (tab == null) {
throw new IllegalStateException("No default tab is defined.");
}
- subtabTitle = null;
+ subtabName = null;
}
// Do *not* select the tab and trigger the tab selected event until the subtab has been selected first.
- SubTab subtab = (subtabTitle != null) ? tab.getSubTabByTitle(subtabTitle) : tab.getDefaultSubTab();
+ SubTab subtab = (subtabName != null) ? tab.getSubTabByName(subtabName) : tab.getDefaultSubTab();
if (subtab == null || tab.getLayout().isSubTabDisabled(subtab)) {
- CoreGUI.getErrorHandler().handleError("Invalid subtab name: " + subtabTitle);
+ CoreGUI.getErrorHandler().handleError(MSG.view_tabs_invalidSubTab(subtabName));
// TODO: Should we fire a history event here to redirect to a valid bookmark?
subtab = tab.getLayout().getDefaultSubTab();
}
@@ -214,7 +214,7 @@ public abstract class AbstractTwoLevelTabSetView<T, U extends Layout> extends Lo
this.tabSet.markForRedraw();
} catch (Exception e) {
- com.allen_sauer.gwt.log.client.Log.info("Failed to select tab " + tabTitle + "/" + subtabTitle + ": " + e);
+ com.allen_sauer.gwt.log.client.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/groups/detail/ResourceGroupDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
index 7c82422..9897828 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/inventory/groups/detail/ResourceGroupDetailView.java
@@ -47,6 +47,7 @@ import org.rhq.enterprise.gui.coregui.client.components.FullHTMLPane;
import org.rhq.enterprise.gui.coregui.client.components.tab.SubTab;
import org.rhq.enterprise.gui.coregui.client.components.tab.TwoLevelTab;
import org.rhq.enterprise.gui.coregui.client.components.tab.TwoLevelTabSelectedEvent;
+import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.inventory.common.detail.AbstractTwoLevelTabSetView;
import org.rhq.enterprise.gui.coregui.client.inventory.common.event.EventCompositeHistoryView;
@@ -101,8 +102,8 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
private SubTab configHistory;
private SubTab eventHistory;
- private String currentTab;
- private String currentSubTab;
+ private String currentTabName;
+ private String currentSubTabName;
public ResourceGroupDetailView(String locatorId, String baseViewPath) {
super(locatorId, baseViewPath);
@@ -118,14 +119,14 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
public void onTabSelected(TwoLevelTabSelectedEvent tabSelectedEvent) {
// if moving from membership subtab then re-load the detail view as the membership and
// group type may have changed.
- if ((null != this.groupId) && this.inventoryTab.getTitle().equals(currentTab)
- && this.inventoryMembership.getTitle().equals(currentSubTab)) {
+ if ((null != this.groupId) && this.inventoryTab.getName().equals(currentTabName)
+ && this.inventoryMembership.getName().equals(currentSubTabName)) {
String tabPath = "/" + tabSelectedEvent.getId() + "/" + tabSelectedEvent.getSubTabId();
String path = this.getBaseViewPath() + "/" + getSelectedItemId() + tabPath;
- this.currentTab = null;
- this.currentSubTab = null;
+ this.currentTabName = null;
+ this.currentSubTabName = null;
this.groupId = null;
CoreGUI.goToView(path);
@@ -143,62 +144,76 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
protected List<TwoLevelTab> createTabs() {
List<TwoLevelTab> tabs = new ArrayList<TwoLevelTab>();
- summaryTab = new TwoLevelTab(getTabSet().extendLocatorId("Summary"), MSG.view_tabs_common_summary(),
- "/images/icons/Service_up_16.png");
- summaryOverview = new SubTab(summaryTab.extendLocatorId("Overview"), MSG.view_tabs_common_overview(), null);
- summaryTimeline = new SubTab(summaryTab.extendLocatorId("Timeline"), MSG.view_tabs_common_timeline(), null);
+ summaryTab = new TwoLevelTab(getTabSet().extendLocatorId("Summary"), new ViewName("Summary", MSG
+ .view_tabs_common_summary()), "/images/icons/Service_up_16.png");
+ summaryOverview = new SubTab(summaryTab.extendLocatorId("Overview"), new ViewName("Overview", MSG
+ .view_tabs_common_overview()), null);
+ summaryTimeline = new SubTab(summaryTab.extendLocatorId("Timeline"), new ViewName("Timeline", MSG
+ .view_tabs_common_timeline()), null);
summaryTab.registerSubTabs(summaryOverview, summaryTimeline);
tabs.add(summaryTab);
- monitoringTab = new TwoLevelTab(getTabSet().extendLocatorId("Monitoring"), MSG.view_tabs_common_monitoring(),
- "/images/icons/Monitor_grey_16.png");
- monitorGraphs = new SubTab(monitoringTab.extendLocatorId("Graphs"), MSG.view_tabs_common_graphs(), null);
- monitorTables = new SubTab(monitoringTab.extendLocatorId("Tables"), MSG.view_tabs_common_tables(), null);
- monitorTraits = new SubTab(monitoringTab.extendLocatorId("Traits"), MSG.view_tabs_common_traits(), null);
-
- monitorSched = new SubTab(monitoringTab.extendLocatorId("Schedules"), MSG.view_tabs_common_schedules(), null);
- monitorCallTime = new SubTab(monitoringTab.extendLocatorId("CallTime"), MSG.view_tabs_common_calltime(), null);
+ monitoringTab = new TwoLevelTab(getTabSet().extendLocatorId("Monitoring"), new ViewName("Monitoring", MSG
+ .view_tabs_common_monitoring()), "/images/icons/Monitor_grey_16.png");
+ monitorGraphs = new SubTab(monitoringTab.extendLocatorId("Graphs"), new ViewName("Graphs", MSG
+ .view_tabs_common_graphs()), null);
+ monitorTables = new SubTab(monitoringTab.extendLocatorId("Tables"), new ViewName("Tables", MSG
+ .view_tabs_common_tables()), null);
+ monitorTraits = new SubTab(monitoringTab.extendLocatorId("Traits"), new ViewName("Traits", MSG
+ .view_tabs_common_traits()), null);
+
+ monitorSched = new SubTab(monitoringTab.extendLocatorId("Schedules"), new ViewName("Schedules", MSG
+ .view_tabs_common_schedules()), null);
+ monitorCallTime = new SubTab(monitoringTab.extendLocatorId("CallTime"), new ViewName("CallTime", MSG
+ .view_tabs_common_calltime()), null);
monitoringTab.registerSubTabs(monitorGraphs, monitorTables, monitorTraits, monitorSched, monitorCallTime);
tabs.add(monitoringTab);
- inventoryTab = new TwoLevelTab(getTabSet().extendLocatorId("Inventory"), MSG.view_tabs_common_inventory(),
- "/images/icons/Inventory_grey_16.png");
- inventoryMembers = new SubTab(inventoryTab.extendLocatorId("Members"), MSG.view_tabs_common_members(), null);
- inventoryConn = new SubTab(inventoryTab.extendLocatorId("ConnectionSettings"), MSG
- .view_tabs_common_connectionSettings(), null);
- inventoryConnHistory = new SubTab(inventoryTab.extendLocatorId("ConnectionSettingsHistory"), MSG
- .view_tabs_common_connectionSettingsHistory(), null);
- inventoryMembership = new SubTab(inventoryTab.extendLocatorId("Membership"), "Membership", null); // TODO this will merge with Members
+ inventoryTab = new TwoLevelTab(getTabSet().extendLocatorId("Inventory"), new ViewName("Inventory", MSG
+ .view_tabs_common_inventory()), "/images/icons/Inventory_grey_16.png");
+ inventoryMembers = new SubTab(inventoryTab.extendLocatorId("Members"), new ViewName("Members", MSG
+ .view_tabs_common_members()), null);
+ inventoryConn = new SubTab(inventoryTab.extendLocatorId("ConnectionSettings"), new ViewName(
+ "ConnectionSettings", MSG.view_tabs_common_connectionSettings()), null);
+ inventoryConnHistory = new SubTab(inventoryTab.extendLocatorId("ConnectionSettingsHistory"), new ViewName(
+ "ConnectionSettingsHistory", MSG.view_tabs_common_connectionSettingsHistory()), null);
+ inventoryMembership = new SubTab(inventoryTab.extendLocatorId("Membership"), new ViewName("Membership", MSG
+ .view_tabs_common_membership()), null); // TODO this will merge with Members
inventoryTab.registerSubTabs(this.inventoryMembers, this.inventoryConn, this.inventoryConnHistory,
this.inventoryMembership);
tabs.add(inventoryTab);
- operationsTab = new TwoLevelTab(getTabSet().extendLocatorId("Operations"), MSG.view_tabs_common_operations(),
- "/images/icons/Operation_grey_16.png");
- this.opHistory = new SubTab(operationsTab.extendLocatorId("History"), MSG.view_tabs_common_history(), null);
- this.opSched = new SubTab(operationsTab.extendLocatorId("Scheduled"), MSG.view_tabs_common_scheduled(), null);
+ operationsTab = new TwoLevelTab(getTabSet().extendLocatorId("Operations"), new ViewName("Operations", MSG
+ .view_tabs_common_operations()), "/images/icons/Operation_grey_16.png");
+ this.opHistory = new SubTab(operationsTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
+ this.opSched = new SubTab(operationsTab.extendLocatorId("Scheduled"), new ViewName("Scheduled", MSG
+ .view_tabs_common_scheduled()), null);
operationsTab.registerSubTabs(this.opHistory, this.opSched);
tabs.add(operationsTab);
- alertsTab = new TwoLevelTab(getTabSet().extendLocatorId("Alerts"), MSG.view_tabs_common_alerts(),
- "/images/icons/Alert_grey_16.png");
- this.alertHistory = new SubTab(alertsTab.extendLocatorId("History"), MSG.view_tabs_common_history(), null);
- this.alertDef = new SubTab(alertsTab.extendLocatorId("Definitions"), MSG.view_tabs_common_definitions(), null);
+ alertsTab = new TwoLevelTab(getTabSet().extendLocatorId("Alerts"), new ViewName("Alerts", MSG
+ .view_tabs_common_alerts()), "/images/icons/Alert_grey_16.png");
+ this.alertHistory = new SubTab(alertsTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
+ this.alertDef = new SubTab(alertsTab.extendLocatorId("Definitions"), new ViewName("Definitions", MSG
+ .view_tabs_common_definitions()), null);
alertsTab.registerSubTabs(alertHistory, alertDef);
tabs.add(alertsTab);
- configurationTab = new TwoLevelTab(getTabSet().extendLocatorId("Configuration"), MSG
- .view_tabs_common_configuration(), "/images/icons/Configure_grey_16.png");
- this.configCurrent = new SubTab(configurationTab.extendLocatorId("Current"), MSG.view_tabs_common_current(),
- null);
- this.configHistory = new SubTab(configurationTab.extendLocatorId("History"), MSG.view_tabs_common_history(),
- null);
+ configurationTab = new TwoLevelTab(getTabSet().extendLocatorId("Configuration"), new ViewName("Configuration",
+ MSG.view_tabs_common_configuration()), "/images/icons/Configure_grey_16.png");
+ this.configCurrent = new SubTab(configurationTab.extendLocatorId("Current"), new ViewName("Current", MSG
+ .view_tabs_common_current()), null);
+ this.configHistory = new SubTab(configurationTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
configurationTab.registerSubTabs(this.configCurrent, this.configHistory);
tabs.add(configurationTab);
- eventsTab = new TwoLevelTab(getTabSet().extendLocatorId("Events"), MSG.view_tabs_common_events(),
- "/images/icons/Events_grey_16.png");
- this.eventHistory = new SubTab(eventsTab.extendLocatorId("History"), MSG.view_tabs_common_history(), null);
+ eventsTab = new TwoLevelTab(getTabSet().extendLocatorId("Events"), new ViewName("Events", MSG
+ .view_tabs_common_events()), "/images/icons/Events_grey_16.png");
+ this.eventHistory = new SubTab(eventsTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
eventsTab.registerSubTabs(eventHistory);
tabs.add(eventsTab);
@@ -394,9 +409,9 @@ public class ResourceGroupDetailView extends AbstractTwoLevelTabSetView<Resource
}
@Override
- public void selectTab(String tabTitle, String subtabTitle, ViewPath viewPath) {
- currentTab = tabTitle;
- currentSubTab = subtabTitle;
- super.selectTab(tabTitle, subtabTitle, viewPath);
+ public void selectTab(String tabName, String subtabName, ViewPath viewPath) {
+ currentTabName = tabName;
+ currentSubTabName = subtabName;
+ super.selectTab(tabName, subtabName, viewPath);
}
}
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 6064964..190dda3 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
@@ -46,6 +46,7 @@ import org.rhq.enterprise.gui.coregui.client.alert.definitions.ResourceAlertDefi
import org.rhq.enterprise.gui.coregui.client.components.FullHTMLPane;
import org.rhq.enterprise.gui.coregui.client.components.tab.SubTab;
import org.rhq.enterprise.gui.coregui.client.components.tab.TwoLevelTab;
+import org.rhq.enterprise.gui.coregui.client.components.view.ViewName;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
import org.rhq.enterprise.gui.coregui.client.inventory.InventoryView;
import org.rhq.enterprise.gui.coregui.client.inventory.common.detail.AbstractTwoLevelTabSetView;
@@ -121,80 +122,97 @@ public class ResourceDetailView extends AbstractTwoLevelTabSetView<ResourceCompo
protected List<TwoLevelTab> createTabs() {
List<TwoLevelTab> tabs = new ArrayList<TwoLevelTab>();
- summaryTab = new TwoLevelTab(getTabSet().extendLocatorId("Summary"), MSG.view_tabs_common_summary(),
- "/images/icons/Service_up_16.png");
- summaryOverview = new SubTab(summaryTab.extendLocatorId("Overview"), MSG.view_tabs_common_overview(), null);
- summaryDashboard = new SubTab(summaryTab.extendLocatorId("Dashboard"), MSG.view_tabs_common_dashboard(), null);
- summaryTimeline = new SubTab(summaryTab.extendLocatorId("Timeline"), MSG.view_tabs_common_timeline(), null);
+ summaryTab = new TwoLevelTab(getTabSet().extendLocatorId("Summary"), new ViewName("Summary", MSG
+ .view_tabs_common_summary()), "/images/icons/Service_up_16.png");
+ summaryOverview = new SubTab(summaryTab.extendLocatorId("Overview"), new ViewName("Overview", MSG
+ .view_tabs_common_overview()), null);
+ summaryDashboard = new SubTab(summaryTab.extendLocatorId("Dashboard"), new ViewName("Dashboard", MSG
+ .view_tabs_common_dashboard()), null);
+ summaryTimeline = new SubTab(summaryTab.extendLocatorId("Timeline"), new ViewName("Timeline", MSG
+ .view_tabs_common_timeline()), null);
summaryTab.registerSubTabs(summaryOverview, summaryDashboard, summaryTimeline);
tabs.add(summaryTab);
- monitoringTab = new TwoLevelTab(getTabSet().extendLocatorId("Monitoring"), MSG.view_tabs_common_monitoring(),
- "/images/icons/Monitor_grey_16.png");
- monitorGraphs = new SubTab(monitoringTab.extendLocatorId("Graphs"), MSG.view_tabs_common_graphs(), null);
- monitorTables = new SubTab(monitoringTab.extendLocatorId("Tables"), MSG.view_tabs_common_tables(), null);
- monitorTraits = new SubTab(monitoringTab.extendLocatorId("Traits"), MSG.view_tabs_common_traits(), null);
- monitorAvail = new SubTab(monitoringTab.extendLocatorId("Availability"), MSG.view_tabs_common_availability(),
- null);
- monitorSched = new SubTab(monitoringTab.extendLocatorId("Schedules"), MSG.view_tabs_common_schedules(), null);
- monitorCallTime = new SubTab(monitoringTab.extendLocatorId("CallTime"), MSG.view_tabs_common_calltime(), null);
+ monitoringTab = new TwoLevelTab(getTabSet().extendLocatorId("Monitoring"), new ViewName("Monitoring", MSG
+ .view_tabs_common_monitoring()), "/images/icons/Monitor_grey_16.png");
+ monitorGraphs = new SubTab(monitoringTab.extendLocatorId("Graphs"), new ViewName("Graphs", MSG
+ .view_tabs_common_graphs()), null);
+ monitorTables = new SubTab(monitoringTab.extendLocatorId("Tables"), new ViewName("Tables", MSG
+ .view_tabs_common_tables()), null);
+ monitorTraits = new SubTab(monitoringTab.extendLocatorId("Traits"), new ViewName("Traits", MSG
+ .view_tabs_common_traits()), null);
+ monitorAvail = new SubTab(monitoringTab.extendLocatorId("Availability"), new ViewName("Availability", MSG
+ .view_tabs_common_availability()), null);
+ monitorSched = new SubTab(monitoringTab.extendLocatorId("Schedules"), new ViewName("Schedules", MSG
+ .view_tabs_common_schedules()), null);
+ monitorCallTime = new SubTab(monitoringTab.extendLocatorId("CallTime"), new ViewName("CallTime", MSG
+ .view_tabs_common_calltime()), null);
monitoringTab.registerSubTabs(monitorGraphs, monitorTables, monitorTraits, monitorAvail, monitorSched,
monitorCallTime);
tabs.add(monitoringTab);
- inventoryTab = new TwoLevelTab(getTabSet().extendLocatorId("Inventory"), MSG.view_tabs_common_inventory(),
- "/images/icons/Inventory_grey_16.png");
- inventoryChildren = new SubTab(inventoryTab.extendLocatorId("Children"),
- MSG.view_tabs_common_child_resources(), null);
- inventoryChildHistory = new SubTab(inventoryTab.extendLocatorId("ChildHist"), MSG
- .view_tabs_common_child_history(), null);
- inventoryConn = new SubTab(inventoryTab.extendLocatorId("ConnectionSettings"), MSG
- .view_tabs_common_connectionSettings(), null);
- inventoryConnHistory = new SubTab(inventoryTab.extendLocatorId("ConnSetHist"), MSG
- .view_tabs_common_connectionSettingsHistory(), null);
- inventoryGroups = new SubTab(inventoryTab.extendLocatorId("Groups"), MSG.view_tabs_common_groups(), null);
- inventoryGroupMembership = new SubTab(inventoryTab.extendLocatorId("GroupMembership"), MSG
- .view_tabs_common_group_membership(), null);
+ inventoryTab = new TwoLevelTab(getTabSet().extendLocatorId("Inventory"), new ViewName("Inventory", MSG
+ .view_tabs_common_inventory()), "/images/icons/Inventory_grey_16.png");
+ inventoryChildren = new SubTab(inventoryTab.extendLocatorId("Children"), new ViewName("Children", MSG
+ .view_tabs_common_child_resources()), null);
+ inventoryChildHistory = new SubTab(inventoryTab.extendLocatorId("ChildHist"), new ViewName("ChildHistory", MSG
+ .view_tabs_common_child_history()), null);
+ inventoryConn = new SubTab(inventoryTab.extendLocatorId("ConnectionSettings"), new ViewName(
+ "ConnectionSettings", MSG.view_tabs_common_connectionSettings()), null);
+ inventoryConnHistory = new SubTab(inventoryTab.extendLocatorId("ConnSetHist"), new ViewName(
+ "ConnectionSettingsHistory", MSG.view_tabs_common_connectionSettingsHistory()), null);
+ inventoryGroups = new SubTab(inventoryTab.extendLocatorId("Groups"), new ViewName("Groups", MSG
+ .view_tabs_common_groups()), null);
+ inventoryGroupMembership = new SubTab(inventoryTab.extendLocatorId("GroupMembership"), new ViewName(
+ "GroupMembership", MSG.view_tabs_common_group_membership()), null);
inventoryTab.registerSubTabs(this.inventoryChildren, this.inventoryChildHistory, this.inventoryConn,
this.inventoryConnHistory, this.inventoryGroups, this.inventoryGroupMembership);
tabs.add(inventoryTab);
- operationsTab = new TwoLevelTab(getTabSet().extendLocatorId("Operations"), MSG.view_tabs_common_operations(),
- "/images/icons/Operation_grey_16.png");
- this.opHistory = new SubTab(operationsTab.extendLocatorId("History"), MSG.view_tabs_common_history(), null);
- this.opSched = new SubTab(operationsTab.extendLocatorId("Scheduled"), MSG.view_tabs_common_scheduled(), null);
+ operationsTab = new TwoLevelTab(getTabSet().extendLocatorId("Operations"), new ViewName("Operations", MSG
+ .view_tabs_common_operations()), "/images/icons/Operation_grey_16.png");
+ this.opHistory = new SubTab(operationsTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
+ this.opSched = new SubTab(operationsTab.extendLocatorId("Scheduled"), new ViewName("Scheduled", MSG
+ .view_tabs_common_scheduled()), null);
operationsTab.registerSubTabs(this.opHistory, this.opSched);
tabs.add(operationsTab);
- alertsTab = new TwoLevelTab(getTabSet().extendLocatorId("Alerts"), MSG.view_tabs_common_alerts(),
- "/images/icons/Alert_grey_16.png");
- this.alertHistory = new SubTab(alertsTab.extendLocatorId("History"), MSG.view_tabs_common_history(), null);
- this.alertDef = new SubTab(alertsTab.extendLocatorId("Definitions"), MSG.view_tabs_common_definitions(), null);
+ alertsTab = new TwoLevelTab(getTabSet().extendLocatorId("Alerts"), new ViewName("Alerts", MSG
+ .view_tabs_common_alerts()), "/images/icons/Alert_grey_16.png");
+ this.alertHistory = new SubTab(alertsTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
+ this.alertDef = new SubTab(alertsTab.extendLocatorId("Definitions"), new ViewName("Definitions", MSG
+ .view_tabs_common_definitions()), null);
alertsTab.registerSubTabs(alertHistory, alertDef);
tabs.add(alertsTab);
- configurationTab = new TwoLevelTab(getTabSet().extendLocatorId("Configuration"), MSG
- .view_tabs_common_configuration(), "/images/icons/Configure_grey_16.png");
- this.configCurrent = new SubTab(configurationTab.extendLocatorId("Current"), MSG.view_tabs_common_current(),
- null);
- this.configHistory = new SubTab(configurationTab.extendLocatorId("History"), MSG.view_tabs_common_history(),
- null);
+ configurationTab = new TwoLevelTab(getTabSet().extendLocatorId("Configuration"), new ViewName("Configuration",
+ MSG.view_tabs_common_configuration()), "/images/icons/Configure_grey_16.png");
+ this.configCurrent = new SubTab(configurationTab.extendLocatorId("Current"), new ViewName("Current", MSG
+ .view_tabs_common_current()), null);
+ this.configHistory = new SubTab(configurationTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
configurationTab.registerSubTabs(this.configCurrent, this.configHistory);
tabs.add(configurationTab);
- eventsTab = new TwoLevelTab(getTabSet().extendLocatorId("Events"), MSG.view_tabs_common_events(),
- "/images/icons/Events_grey_16.png");
- this.eventHistory = new SubTab(eventsTab.extendLocatorId("History"), MSG.view_tabs_common_history(), null);
+ eventsTab = new TwoLevelTab(getTabSet().extendLocatorId("Events"), new ViewName("Events", MSG
+ .view_tabs_common_events()), "/images/icons/Events_grey_16.png");
+ this.eventHistory = new SubTab(eventsTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
eventsTab.registerSubTabs(eventHistory);
tabs.add(eventsTab);
- contentTab = new TwoLevelTab(getTabSet().extendLocatorId("Content"), MSG.view_tabs_common_content(),
- "/images/icons/Content_grey_16.png");
- this.contentDeployed = new SubTab(contentTab.extendLocatorId("Deployed"), MSG.view_tabs_common_deployed(), null);
- this.contentNew = new SubTab(contentTab.extendLocatorId("New"), MSG.view_tabs_common_new(), null);
- this.contentSubscrip = new SubTab(contentTab.extendLocatorId("Subscriptions"), MSG
- .view_tabs_common_subscriptions(), null);
- this.contentHistory = new SubTab(contentTab.extendLocatorId("History"), MSG.view_tabs_common_history(), null);
+ contentTab = new TwoLevelTab(getTabSet().extendLocatorId("Content"), new ViewName("Content", MSG
+ .view_tabs_common_content()), "/images/icons/Content_grey_16.png");
+ this.contentDeployed = new SubTab(contentTab.extendLocatorId("Deployed"), new ViewName("Deployed", MSG
+ .view_tabs_common_deployed()), null);
+ this.contentNew = new SubTab(contentTab.extendLocatorId("New"),
+ new ViewName("New", MSG.view_tabs_common_new()), null);
+ this.contentSubscrip = new SubTab(contentTab.extendLocatorId("Subscriptions"), new ViewName("Subscriptions",
+ MSG.view_tabs_common_subscriptions()), null);
+ this.contentHistory = new SubTab(contentTab.extendLocatorId("History"), new ViewName("History", MSG
+ .view_tabs_common_history()), null);
contentTab.registerSubTabs(contentDeployed, contentNew, contentSubscrip, contentHistory);
tabs.add(contentTab);
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/LocatableTabSet.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/LocatableTabSet.java
index 0dda6bf..fee5e59 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/LocatableTabSet.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/util/selenium/LocatableTabSet.java
@@ -46,7 +46,7 @@ public class LocatableTabSet extends TabSet {
super.setTabs(tabs);
}
- public LocatableTab[] getTabs() {
+ public LocatableTab[] getTabs() {
Tab[] tabs = super.getTabs();
LocatableTab[] locatableTabs = new LocatableTab[tabs.length];
for (int i = 0, tabsLength = tabs.length; i < tabsLength; i++) {
diff --git a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
index 5d5ca3f..1dc9f3a 100644
--- a/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
+++ b/modules/enterprise/gui/coregui/src/main/resources/org/rhq/enterprise/gui/coregui/client/Messages.properties
@@ -1004,6 +1004,10 @@ view_type_resourceTypes=Resource Types~
view_type_parentId=Parent ID~
view_type_typeTreeLoadFailure=Failed to load resource type tree data~
+# Tabs
+view_tabs_invalidSubTab = Invalid subtab: {0}~
+view_tabs_invalidTab = Invalid tab: {0}~
+
#=================== Dashboard =====================
view_dashboard_favorites_error1=Failed to load favorite Resources.~
view_dashboardManager_error=Failed to save dashboard to server~
@@ -1190,6 +1194,7 @@ view_tabs_common_inventory=Inventory~
view_tabs_common_groups=Groups~
view_tabs_common_group_membership=Group Membership~
view_tabs_common_members=Members~
+view_tabs_common_membership=Membership~
view_tabs_common_child_resources=Child Resources~
view_tabs_common_child_history=Child History~
view_tabs_common_connectionSettings=Connection Settings~
@@ -1457,7 +1462,6 @@ view_login_registerUser = Register User~
view_login_welcome = Welcome~
view_login_welcomeMsg = Welcome to JBoss ON! <br/><br/> Enter/update the following fields to complete your registration process.<br/> Once you click "OK" you will be logged in.<br/><br/>~
-
# Menu Bar
#--------------
view_menuBar_help = Help~