modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadCrumb.java
| 106 ----------
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/Breadcrumb.java
| 17 +
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadcrumbTrailPane.java
| 106 ++++++++++
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
| 4
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
| 91 ++------
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/report/InventorySummaryReportView.java
| 35 ---
modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/downloads-body.xhtml
| 101 +++++++++
modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/report/resourceInstallReport-body.xhtml
| 2
8 files changed, 244 insertions(+), 218 deletions(-)
New commits:
commit 12b9f3e85501ef0657e83e2528447c223f0e9606
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Mar 2 11:25:37 2010 -0500
rename BreadCrumb class to BreadcrumbTrailRenderer; start using FullHTMLPane in
AdministrationView; add IFRAME-based Administratio/Settings/Downloads view; fix links on
Administration/Reports/InventorySummary view
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadCrumb.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadCrumb.java
deleted file mode 100644
index c57c352..0000000
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadCrumb.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * RHQ Management Platform
- * Copyright (C) 2005-2010 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;
-
-import com.google.gwt.user.client.Window;
-import com.smartgwt.client.types.Overflow;
-import com.smartgwt.client.widgets.HTMLPane;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * GWT widget for the breadcrumb trail, which is displayed at the top of each page.
- *
- * @author Greg Hinkle
- * @author Ian Springer
- */
-public class BreadCrumb extends HTMLPane {
-
- private List<Breadcrumb> breadcrumbs = new ArrayList<Breadcrumb>();
-
- public BreadCrumb() {
- setHeight(28);
- setBackgroundColor("#E6E3E3");
- setPadding(5);
- setOverflow(Overflow.CLIP_V);
- }
-
- public List<Breadcrumb> getBreadcrumbs() {
- return this.breadcrumbs;
- }
-
- public void setBreadcrumbs(List<Breadcrumb> breadcrumbs) {
- this.breadcrumbs = breadcrumbs;
- }
-
- public void refresh() {
- try {
- boolean first = true;
- StringBuilder path = new StringBuilder();
- StringBuilder content = new StringBuilder();
- content.append("<div class=\"BreadCrumb\">");
- for (int i = 0, trailSize = this.breadcrumbs.size(); i < trailSize; i++)
{
- if (!first) {
- path.append("/");
- content.append(" > ");
- } else {
- first = false;
- }
-
- Breadcrumb breadcrumb = breadcrumbs.get(i);
- path.append(breadcrumb.getName());
-
- if ((i == (trailSize - 1) || !breadcrumb.isHyperlink())) {
- // last item in trail is the current page and so should not be a
link
- content.append(breadcrumb.getDisplayName());
- } else {
- content.append("<a href=\"#");
- // NOTE: We have to call toString() below, because GWT chokes if you
try to append a StringBuilder.
- content.append(path.toString());
- content.append("\">");
- content.append(breadcrumb.getDisplayName());
- content.append("</a>");
- }
- content.append("\n");
- }
- content.append("</div>");
-
- setContents(content.toString());
- } catch (Throwable t) {
- System.err.println("Failed to refresh bread crumb HTML - cause: " +
t);
- }
-
- String title = "RHQ";
- if (!breadcrumbs.isEmpty()) {
- title += ": " + this.breadcrumbs.get(this.breadcrumbs.size() - 1);
- }
- Window.setTitle(title);
-
- redraw();
- }
-
- @Override
- public String toString() {
- StringBuilder result = new StringBuilder("BreadCrumb[");
- result.append(this.breadcrumbs);
- result.append("]");
- return result.toString();
- }
-}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadcrumbTrailPane.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadcrumbTrailPane.java
new file mode 100644
index 0000000..c522ce2
--- /dev/null
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/BreadcrumbTrailPane.java
@@ -0,0 +1,106 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2010 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;
+
+import com.google.gwt.user.client.Window;
+import com.smartgwt.client.types.Overflow;
+import com.smartgwt.client.widgets.HTMLPane;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * GWT widget for the breadcrumb trail, which is displayed at the top of each page.
+ *
+ * @author Greg Hinkle
+ * @author Ian Springer
+ */
+public class BreadcrumbTrailPane extends HTMLPane {
+
+ private List<Breadcrumb> breadcrumbs = new ArrayList<Breadcrumb>();
+
+ public BreadcrumbTrailPane() {
+ setHeight(28);
+ setBackgroundColor("#E6E3E3");
+ setPadding(5);
+ setOverflow(Overflow.CLIP_V);
+ }
+
+ public List<Breadcrumb> getBreadcrumbs() {
+ return this.breadcrumbs;
+ }
+
+ public void setBreadcrumbs(List<Breadcrumb> breadcrumbs) {
+ this.breadcrumbs = breadcrumbs;
+ }
+
+ public void refresh() {
+ try {
+ boolean first = true;
+ StringBuilder path = new StringBuilder();
+ StringBuilder content = new StringBuilder();
+ content.append("<div class=\"BreadCrumb\">");
+ for (int i = 0, trailSize = this.breadcrumbs.size(); i < trailSize; i++)
{
+ if (!first) {
+ path.append("/");
+ content.append(" > ");
+ } else {
+ first = false;
+ }
+
+ Breadcrumb breadcrumb = breadcrumbs.get(i);
+ path.append(breadcrumb.getName());
+
+ if ((i == (trailSize - 1) || !breadcrumb.isHyperlink())) {
+ // last item in trail is the current page and so should not be a
link
+ content.append(breadcrumb.getDisplayName());
+ } else {
+ content.append("<a href=\"#");
+ // NOTE: We have to call toString() below, because GWT chokes if you
try to append a StringBuilder.
+ content.append(path.toString());
+ content.append("\">");
+ content.append(breadcrumb.getDisplayName());
+ content.append("</a>");
+ }
+ content.append("\n");
+ }
+ content.append("</div>");
+
+ setContents(content.toString());
+ } catch (Throwable t) {
+ System.err.println("Failed to refresh bread crumb HTML - cause: " +
t);
+ }
+
+ String title = "RHQ";
+ if (!breadcrumbs.isEmpty()) {
+ title += ": " + this.breadcrumbs.get(this.breadcrumbs.size() - 1);
+ }
+ Window.setTitle(title);
+
+ redraw();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder result = new StringBuilder("BreadCrumb[");
+ result.append(this.breadcrumbs);
+ result.append("]");
+ return result.toString();
+ }
+}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
index 24dbe6e..67881a4 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/CoreGUI.java
@@ -49,7 +49,7 @@ public class CoreGUI implements EntryPoint {
private static ErrorHandler errorHandler = new ErrorHandler();
- private static BreadCrumb breadCrumb;
+ private static BreadcrumbTrailPane breadCrumb;
private static Canvas content;
@@ -146,7 +146,7 @@ public class CoreGUI implements EntryPoint {
rootCanvas.addMember(menuBarView);
- breadCrumb = new BreadCrumb();
+ breadCrumb = new BreadcrumbTrailPane();
rootCanvas.addMember(breadCrumb);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
index e8804bd..18673f1 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/AdministrationView.java
@@ -24,11 +24,9 @@ import org.rhq.enterprise.gui.coregui.client.View;
import org.rhq.enterprise.gui.coregui.client.ViewId;
import org.rhq.enterprise.gui.coregui.client.ViewRenderer;
import org.rhq.enterprise.gui.coregui.client.CoreGUI;
-import org.rhq.enterprise.gui.coregui.client.Presenter;
-import org.rhq.enterprise.gui.coregui.client.admin.report.InventorySummaryReportView;
import org.rhq.enterprise.gui.coregui.client.admin.roles.RolesView;
import org.rhq.enterprise.gui.coregui.client.admin.users.UsersView;
-import org.rhq.enterprise.gui.coregui.client.places.Place;
+import org.rhq.enterprise.gui.coregui.client.components.FullHTMLPane;
import com.smartgwt.client.types.ContentsType;
import com.smartgwt.client.types.VisibilityMode;
@@ -45,14 +43,19 @@ import com.smartgwt.client.widgets.tree.TreeGrid;
import com.smartgwt.client.widgets.tree.TreeNode;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
/**
*
* @author Greg Hinkle
*/
-public class AdministrationView extends HLayout implements Presenter, ViewRenderer {
+public class AdministrationView extends HLayout implements ViewRenderer {
+ public static final String VIEW_PATH = "Administration";
+
+ public static final String SUBVIEW_PATH_REPORTS = VIEW_PATH + ViewId.PATH_SEPARATOR +
"Reports";
+ public static final String SUBVIEW_PATH_REPORTS_INVENTORY_SUMMARY =
SUBVIEW_PATH_REPORTS + ViewId.PATH_SEPARATOR + "InventorySummary";
+
+ private static final String IFRAME_URL_INVENTORY_SUMMARY_REPORT =
"/rhq/admin/report/resourceInstallReport-body.xhtml";
private SectionStack sectionStack;
@@ -256,10 +259,11 @@ public class AdministrationView extends HLayout implements
Presenter, ViewRender
Tree tree = new Tree();
final TreeNode manageSettings = new TreeNode("System Settings");
final TreeNode manageTemplates = new TreeNode("Templates");
+ final TreeNode manageDownloads = new TreeNode("Downloads");
final TreeNode manageLicense = new TreeNode("License");
tree.setRoot(new TreeNode("System Configuration",
- manageSettings, manageTemplates, manageLicense));
+ manageSettings, manageTemplates, manageDownloads, manageLicense));
systemConfigTreeGrid.setData(tree);
@@ -267,19 +271,21 @@ public class AdministrationView extends HLayout implements
Presenter, ViewRender
systemConfigTreeGrid.addSelectionChangedHandler(new SelectionChangedHandler() {
public void onSelectionChanged(SelectionEvent selectionEvent) {
if (selectionEvent.getState()) {
- HTMLPane pane = new HTMLPane();
- pane.setContentsType(ContentsType.PAGE);
- pane.setWidth100();
- pane.setHeight100();
-
- String url = null;
+ String url;
if (selectionEvent.getRecord() == manageSettings) {
url = "/admin/config/Config.do?mode=edit";
} else if (selectionEvent.getRecord() == manageTemplates) {
url =
"/admin/config/EditDefaults.do?mode=monitor&viewMode=all";
+ } else if (selectionEvent.getRecord() == manageDownloads) {
+ url = "/rhq/admin/downloads-body.xhtml";
+ } else if (selectionEvent.getRecord() == manageLicense) {
+ url = "/admin/license/LicenseAdmin.do?mode=view";
+ } else {
+ throw new IllegalStateException("Unknown record selected:
" + selectionEvent.getRecord());
}
+ url += "&nomenu=true";
- pane.setContentsURL(url + "&nomenu=true");
+ FullHTMLPane pane = new FullHTMLPane(url);
setContent(pane);
for (TreeGrid treeGrid : treeGrids) {
if (treeGrid != systemConfigTreeGrid) {
@@ -315,9 +321,7 @@ public class AdministrationView extends HLayout implements Presenter,
ViewRender
reportsTreeGrid.addSelectionChangedHandler(new SelectionChangedHandler() {
public void onSelectionChanged(SelectionEvent selectionEvent) {
if (selectionEvent.getState()) {
- HTMLPane pane = new InventorySummaryReportView();
- setContent(pane);
- CoreGUI.goTo(InventorySummaryReportView.PATH);
+ CoreGUI.goTo(SUBVIEW_PATH_REPORTS_INVENTORY_SUMMARY);
for (TreeGrid treeGrid : treeGrids) {
if (treeGrid != reportsTreeGrid) {
treeGrid.deselectAllRecords();
@@ -332,7 +336,6 @@ public class AdministrationView extends HLayout implements Presenter,
ViewRender
return section;
}
-
public void setContent(Canvas newContent) {
if (contentCanvas.getChildren().length > 0)
@@ -343,54 +346,6 @@ public class AdministrationView extends HLayout implements Presenter,
ViewRender
}
-
- public boolean fireDisplay(Place base, List<Place> subLocations) {
- try {
- if (base.equals(getPlace())) {
- if (!subLocations.isEmpty()) {
- Place child = subLocations.get(0);
- String childId = child.getId();
- if (childId.equals("Reports")) {
- if (subLocations.size() >= 2) {
- Place grandchild = subLocations.get(1);
- String grandchildId = grandchild.getId();
- if (grandchildId.equals("InventorySummary")) {
- HTMLPane pane = new InventorySummaryReportView();
- setContent(pane);
- return true;
- }
- }
- }
- }
- }
- } catch (Exception e) {
- System.err.println(e);
- }
- return false;
- }
-
- public Place getPlace() {
- return new Place("Administration", "Administration");
- }
-
- public List<Breadcrumb> render(List<String> breadcrumbNames) {
- if (breadcrumbNames == null || breadcrumbNames.size() < 2) {
- return Collections.emptyList();
- }
- List<Breadcrumb> renderedBreadcrumbs = new
ArrayList<Breadcrumb>(breadcrumbNames.size());
- String firstBreadcrumbName = breadcrumbNames.get(0);
- if (firstBreadcrumbName.equals("Reports")) {
- String secondBreadcrumbName = breadcrumbNames.get(1);
- if (secondBreadcrumbName.equals("InventorySummary")) {
- HTMLPane pane = new InventorySummaryReportView();
- setContent(pane);
- renderedBreadcrumbs.add(new Breadcrumb("Reports"));
- renderedBreadcrumbs.add(new Breadcrumb("InventorySummary"));
- }
- }
- return renderedBreadcrumbs;
- }
-
public View renderView(ViewId viewId, View parentView, boolean lastNode) throws
UnknownViewException {
String parentPath = parentView.getId().getPath();
if (parentPath.equals("Administration")) {
@@ -403,9 +358,9 @@ public class AdministrationView extends HLayout implements Presenter,
ViewRender
return new View(viewId, new Breadcrumb(viewId.getName(), false));
}
} else if (parentPath.equals("Administration/Reports")) {
- InventorySummaryReportView canvas = new InventorySummaryReportView();
- setContent(canvas);
- return new View(viewId, canvas);
+ FullHTMLPane pane = new FullHTMLPane(IFRAME_URL_INVENTORY_SUMMARY_REPORT);
+ setContent(pane);
+ return new View(viewId, pane);
}
throw new UnknownViewException();
}
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/report/InventorySummaryReportView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/report/InventorySummaryReportView.java
deleted file mode 100644
index 1faeba5..0000000
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/report/InventorySummaryReportView.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.rhq.enterprise.gui.coregui.client.admin.report;
-
-import com.smartgwt.client.types.ContentsType;
-import com.smartgwt.client.widgets.HTMLPane;
-import org.rhq.enterprise.gui.coregui.client.BreadCrumb;
-import org.rhq.enterprise.gui.coregui.client.CoreGUI;
-import org.rhq.enterprise.gui.coregui.client.Presenter;
-import org.rhq.enterprise.gui.coregui.client.places.Place;
-
-import java.util.List;
-
-/**
- * @author Ian Springer
- */
-public class InventorySummaryReportView extends HTMLPane implements Presenter {
- public static final String PATH =
"Administration/Reports/InventorySummary";
- public static final Place PLACE = new
Place(PATH.substring(PATH.lastIndexOf('/') + 1), null);
- private static final String URL =
"/rhq/admin/report/resourceInstallReport-body.xhtml";
-
- public InventorySummaryReportView() {
- super();
- setContentsType(ContentsType.PAGE);
- setWidth100();
- setHeight100();
- setContentsURL(URL);
- }
-
- public boolean fireDisplay(Place base, List<Place> subLocations) {
- return false;
- }
-
- public Place getPlace() {
- return PLACE;
- }
-}
diff --git
a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/downloads-body.xhtml
b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/downloads-body.xhtml
new file mode 100644
index 0000000..ce33488
--- /dev/null
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/downloads-body.xhtml
@@ -0,0 +1,101 @@
+<?xml version="1.0"?>
+
+<ui:composition
+ template="/rhq/layout/main.xhtml"
+
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:f="http://java.sun.com/jsf/core"
+
xmlns:h="http://java.sun.com/jsf/html"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:c="http://java.sun.com/jstl/core"
+
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
+
xmlns:a4j="http://richfaces.org/a4j"
+
xmlns:rich="http://richfaces.org/rich"
+
xmlns:rhq="http://rhq-project.org/rhq"
+
xmlns:onc="http://jboss.org/on/component">
+
+ <ui:param name="disableMenu" value="true"/>
+ <ui:param name="disableBreadcrumbs" value="true"/>
+
+ <ui:define name="body">
+
+ <rich:panel>
+ <f:facet name="header">
+ <h:outputText value="Downloads"/>
+ </f:facet>
+
+ <h:panelGrid columns="1" width="100%">
+
+ <h:outputLink value="/agentupdate/download">
+ <h:graphicImage value="/images/icons/Save_32.png"/>
+ <h:outputText value="Download Agent Installer"/>
+ </h:outputLink>
+
+ <h:panelGroup>
+ <span class="DisplayLabel">Agent Version:
</span>
+ <h:outputText
value="#{DownloadsUIBean.agentVersionProperties['rhq-agent.latest.version']}"/><br/>
+ <span class="DisplayLabel">Agent Build:
</span>
+ <h:outputText
value="#{DownloadsUIBean.agentVersionProperties['rhq-agent.latest.build-number']}"/><br/>
+ <span class="DisplayLabel">Agent MD5: </span>
+ <h:outputText
value="#{DownloadsUIBean.agentVersionProperties['rhq-agent.latest.md5']}"/>
+ </h:panelGroup>
+
+
+ <h3>Agent Install</h3>
+
+ <p>
+ <b>java -jar <agent-download.jar>
--install[=<new agent dir>]</b><br/>
+ When specified, this will install a new agent
+ without attempting to update any existing
+ agent. If you do not specify the directory,
+ the default is:.
+ Note the directory will be the parent of the
+ new agent home installation directory.
+ This is mutually exclusive of --update
+ </p>
+
+
+ <h3>Agent Update</h3>
+
+ <p>
+ <b>java -jar <agent-download.jar>
--update[=<old agent home>]</b><br/>
+ When specified, this will update an existing
+ agent. If you do not specify the directory
+ where the existing agent is, the default is:
+ rhq-agent
+ This is mutually exclusive of --install
+ </p>
+
+
+ <h3>Connector Downloads</h3>
+ <ui:repeat var="download"
value="#{DownloadsUIBean.connectorDownloadFiles}">
+ <h:outputLink
value="/downloads/connectors/#{download.name}">
+ <h:outputText value="#{download.name}"/>
+ </h:outputLink>
+ <br/>
+ </ui:repeat>
+
+ </h:panelGrid>
+ </rich:panel>
+
+ <rich:panel>
+ <f:facet name="header">
+ <h:outputText value="Command Line Client Download"/>
+ </f:facet>
+
+ <h:panelGrid columns="1" width="100%">
+
+ <h:outputLink value="/client/download">
+ <h:graphicImage value="/images/icons/Save_32.png"/>
+ <h:outputText value="Download Client Installer"/>
+ </h:outputLink>
+
+ <h:panelGroup>
+ <span class="DisplayLabel">Client Version:
</span> <h:outputText
value="#{DownloadsUIBean.clientVersionProperties['rhq-server.version']}"/><br/>
+ <span class="DisplayLabel">Client Build:
</span> <h:outputText
value="#{DownloadsUIBean.clientVersionProperties['rhq-server.build-number']}"/>
+ </h:panelGroup>
+
+ </h:panelGrid>
+ </rich:panel>
+
+ </ui:define>
+</ui:composition>
diff --git
a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/report/resourceInstallReport-body.xhtml
b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/report/resourceInstallReport-body.xhtml
index 65ce5ee..81ac667 100644
---
a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/report/resourceInstallReport-body.xhtml
+++
b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/admin/report/resourceInstallReport-body.xhtml
@@ -48,7 +48,7 @@
<f:facet name="header">
Type
</f:facet>
- <h:outputLink value="#Resources"
target="_top">
+ <h:outputLink
value="/coregui/CoreGUI.html#Resources" target="_top">
<h:outputText
value="#{installReport.typeName}"/>
</h:outputLink>
</rich:column>
commit cadfa16f30d8bad35db39e03a24baae9ef09914f
Author: Ian P. Springer <ips(a)jetengine.(none)>
Date: Tue Mar 2 08:14:08 2010 -0500
small improvement to getDefaultDisplayName()
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/Breadcrumb.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/Breadcrumb.java
index 4d61b96..3abac57 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/Breadcrumb.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/Breadcrumb.java
@@ -98,12 +98,17 @@ public class Breadcrumb {
StringBuilder displayName = new StringBuilder();
boolean first = true;
for (int i = 0; i < this.name.length(); i++) {
- char c = this.name.charAt(i);
- if (Character.isUpperCase(c) && !first) {
- displayName.append(" ");
- }
- first = false;
- displayName.append(c);
+ char currentChar = this.name.charAt(i);
+ if (!first) {
+ if (Character.isUpperCase(currentChar)) {
+ if ((i + 1) == this.name.length() ||
Character.isLowerCase(this.name.charAt(i + 1))) {
+ displayName.append(" ");
+ }
+ }
+ } else {
+ first = false;
+ }
+ displayName.append(currentChar);
}
return displayName.toString();
}