modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/perspectives/ExtensionPoints.java
| 449 ++++
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/perspectives/MenuItem.java
| 78
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/perspectives/PerspectivesMenuUIBean.java
| 744 +++----
modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-managed-beans/perspectives-beans.xml
| 7
modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menu.xhtml
| 1017 ++++------
5 files changed, 1276 insertions(+), 1019 deletions(-)
New commits:
commit c823eb53d8d4a52546fd628fd32cbee0ddd68321
Merge: d0ad9d3... 2ce39c2...
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Wed Nov 25 15:45:13 2009 -0500
Merge branch 'linux-config' of ssh://spinder@git.fedorahosted.org/git/rhq/rhq
into linux-config
commit d0ad9d3db7ef2e756bf7f4eda10b9f8bfc65ad31
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Wed Nov 25 15:19:39 2009 -0500
Modified menu.xhtml to pull most content dynamically
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/perspectives/ExtensionPoints.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/perspectives/ExtensionPoints.java
new file mode 100644
index 0000000..5670264
--- /dev/null
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/perspectives/ExtensionPoints.java
@@ -0,0 +1,449 @@
+package org.rhq.enterprise.gui.perspectives;
+
+public class ExtensionPoints {
+
+ //constants:begin Extension point map
+ //MENU:ExtensionPoints BEGIN
+ //root menu item container
+ public static final String menu = "menu";
+ //logo
+ public static final String logo = menu + ".logo";
+ public static final String logo_BEFORE = logo + "_BEFORE";
+ public static final String logo_AFTER = logo + "_AFTER";
+ //overview
+ public static final String overview_BEFORE = logo_AFTER;//same spot
+ public static final String overview = menu + ".overview";
+ public static final String subsystemViews = overview + ".subsystemViews";
+ public static final String configurationChanges = subsystemViews +
".configurationChanges";
+ public static final String suspectMetrics = subsystemViews +
".suspectMetrics";
+ public static final String operations = subsystemViews + ".operations";
+ public static final String alerts = subsystemViews + ".alerts";
+ public static final String alertDefinitions = subsystemViews +
".alertDefinitions";
+ public static final String autoDiscoveryQueue = overview +
".autoDiscoveryQueue";
+ public static final String dashboard = overview + ".dashboard";
+ public static final String overview_AFTER = overview + "_AFTER";
+ //resources
+ public static final String resources_BEFORE = overview_AFTER;//same spot
+ public static final String resources = menu + ".resources";
+ public static final String platforms = resources + ".platforms";
+ public static final String servers = resources + ".servers";
+ public static final String services = resources + ".services";
+ public static final String favoriteResources = resources +
".favoriteResources";
+ public static final String recentlyViewedResources = resources +
".recentlyViewedResources";
+ public static final String searchResources = resources + ".search";
+ public static final String resources_AFTER = resources + "_AFTER";
+ //groups
+ public static final String groups_BEFORE = resources_AFTER;//same spot
+ public static final String groups = menu + ".groups";
+ public static final String compatible = groups + ".compatibleGroups";
+ public static final String mixed = groups + ".mixedGroups";
+ public static final String definitions = groups + ".groupDefinitions";
+ public static final String newGroup = groups + ".newGroup";
+ public static final String newGroupDefinition = groups +
".newGroupDefinition";
+ public static final String favoriteGroups = groups + ".favoriteGroups";
+ public static final String recentlyViewedGroups = groups +
".recentlyViewedGroups";
+ public static final String searchGroups = groups + ".search";
+ public static final String groups_AFTER = groups + "_AFTER";
+ //administration
+ public static final String administration_BEFORE = groups_AFTER;//same spot
+ public static final String administration = menu + ".administration";
+ public static final String security = administration + ".security";
+ public static final String users = security + ".users";
+ public static final String roles = security + ".roles";
+ public static final String systemConfiguration = administration +
".systemConfiguration";
+ public static final String settings = systemConfiguration + ".settings";
+ public static final String plugins = systemConfiguration + ".plugins";
+ public static final String templates = systemConfiguration + ".templates";
+ public static final String content = administration + ".content";
+ public static final String contentProviders = content +
".contentProviders";
+ public static final String repositories = content + ".repositories";
+ public static final String highAvailability = administration +
".highAvailability";
+ public static final String haServers = highAvailability + ".servers";
+ public static final String agents = highAvailability + ".agents";
+ public static final String affinityGroups = highAvailability +
".affinityGroups";
+ public static final String partitionEvents = highAvailability +
".partitionEvents";
+ public static final String reports = administration + ".reports";
+ public static final String resourceVersionInventoryReport = reports +
".resourceVersionInventoryReport";
+ public static final String downloads = administration + ".downloads";
+ public static final String license = administration + ".license";
+ public static final String administration_AFTER = administration +
"_AFTER";
+ //debug
+ public static final String debug_BEFORE = administration_AFTER;//same spot
+ public static final String debug = menu + ".debug";
+ public static final String sqlInterface = debug + ".sqlInterface";
+ public static final String jpqlHqlInterface = debug + ".jpqlHqlInterface";
+ public static final String hibernate = debug + ".hibernate";
+ public static final String administrativeControl = debug +
".administrativeControl";
+ public static final String testEmail = debug + ".testEmail";
+ public static final String testAgent = debug + ".testAgent";
+ public static final String debug_AFTER = debug + "_AFTER";
+ //help
+ public static final String help_BEFORE = debug_AFTER;//same spot
+ public static final String help = menu + ".help";
+ public static final String onlineDocumentation = help +
".onlineDocumentation";
+ public static final String openASupportCase = help + ".openASupportCase";
+ public static final String about = help + ".about";
+ public static final String help_AFTER = help + "_AFTER";
+ //refresh
+ public static final String refresh = menu + ".refresh";
+ public static final String refresh_BEFORE = refresh + "_BEFORE";
+ public static final String stop = refresh + ".stop";
+ public static final String refreshEvery1Minute = refresh +
".refreshEvery1Minute";
+ public static final String refreshEvery5Minutes = refresh +
".refreshEvery5Minutes";
+ public static final String refreshEvery10Minutes = refresh +
".refreshEvery10Minutes";
+ public static final String refresh_AFTER = refresh + "_AFTER";
+ //loggedInAs
+ public static final String loggedInAs_BEFORE = refresh_AFTER;//same spot
+ public static final String loggedInAs = menu + ".loggedInAs";
+ public static final String editDetails = loggedInAs + ".editDetails";
+ public static final String changePassword = loggedInAs +
".changePassword";
+ public static final String logout = loggedInAs + ".logout";
+ public static final String loggedInAs_AFTER = loggedInAs + "_AFTER";
+
+ public ExtensionPoints() {
+ }
+
+ public String getMenu() {
+ return menu;
+ }
+
+ public String getLogo() {
+ return logo;
+ }
+
+ public String getLogoBefore() {
+ return logo_BEFORE;
+ }
+
+ public String getLogoAfter() {
+ return logo_AFTER;
+ }
+
+ public String getOverviewBefore() {
+ return overview_BEFORE;
+ }
+
+ public String getOverview() {
+ return overview;
+ }
+
+ public String getSubsystemviews() {
+ return subsystemViews;
+ }
+
+ public String getConfigurationchanges() {
+ return configurationChanges;
+ }
+
+ public String getSuspectmetrics() {
+ return suspectMetrics;
+ }
+
+ public String getOperations() {
+ return operations;
+ }
+
+ public String getAlerts() {
+ return alerts;
+ }
+
+ public String getAlertdefinitions() {
+ return alertDefinitions;
+ }
+
+ public String getAutodiscoveryqueue() {
+ return autoDiscoveryQueue;
+ }
+
+ public String getDashboard() {
+ return dashboard;
+ }
+
+ public String getOverviewAfter() {
+ return overview_AFTER;
+ }
+
+ public String getDebugBefore() {
+ return debug_BEFORE;
+ }
+
+ public String getDebug() {
+ return debug;
+ }
+
+ public String getSqlinterface() {
+ return sqlInterface;
+ }
+
+ public String getJpqlhqlinterface() {
+ return jpqlHqlInterface;
+ }
+
+ public String getHibernate() {
+ return hibernate;
+ }
+
+ public String getAdministrativecontrol() {
+ return administrativeControl;
+ }
+
+ public String getTestemail() {
+ return testEmail;
+ }
+
+ public String getTestagent() {
+ return testAgent;
+ }
+
+ public String getDebugAfter() {
+ return debug_AFTER;
+ }
+
+ public String getResourcesBefore() {
+ return resources_BEFORE;
+ }
+
+ public String getResources() {
+ return resources;
+ }
+
+ public String getPlatforms() {
+ return platforms;
+ }
+
+ public String getServers() {
+ return servers;
+ }
+
+ public String getServices() {
+ return services;
+ }
+
+ public String getFavoriteresources() {
+ return favoriteResources;
+ }
+
+ public String getRecentlyviewedresources() {
+ return recentlyViewedResources;
+ }
+
+ public String getSearchresources() {
+ return searchResources;
+ }
+
+ public String getResourcesAfter() {
+ return resources_AFTER;
+ }
+
+ public String getGroupsBefore() {
+ return groups_BEFORE;
+ }
+
+ public String getGroups() {
+ return groups;
+ }
+
+ public String getCompatible() {
+ return compatible;
+ }
+
+ public String getMixed() {
+ return mixed;
+ }
+
+ public String getDefinitions() {
+ return definitions;
+ }
+
+ public String getNewgroup() {
+ return newGroup;
+ }
+
+ public String getNewgroupdefinition() {
+ return newGroupDefinition;
+ }
+
+ public String getFavoritegroups() {
+ return favoriteGroups;
+ }
+
+ public String getRecentlyviewedgroups() {
+ return recentlyViewedGroups;
+ }
+
+ public String getSearchgroups() {
+ return searchGroups;
+ }
+
+ public String getGroupsAfter() {
+ return groups_AFTER;
+ }
+
+ public String getAdministrationBefore() {
+ return administration_BEFORE;
+ }
+
+ public String getAdministration() {
+ return administration;
+ }
+
+ public String getSecurity() {
+ return security;
+ }
+
+ public String getUsers() {
+ return users;
+ }
+
+ public String getRoles() {
+ return roles;
+ }
+
+ public String getSystemconfiguration() {
+ return systemConfiguration;
+ }
+
+ public String getSettings() {
+ return settings;
+ }
+
+ public String getPlugins() {
+ return plugins;
+ }
+
+ public String getTemplates() {
+ return templates;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public String getContentproviders() {
+ return contentProviders;
+ }
+
+ public String getRepositories() {
+ return repositories;
+ }
+
+ public String getHighavailability() {
+ return highAvailability;
+ }
+
+ public String getHaservers() {
+ return haServers;
+ }
+
+ public String getAgents() {
+ return agents;
+ }
+
+ public String getAffinitygroups() {
+ return affinityGroups;
+ }
+
+ public String getPartitionevents() {
+ return partitionEvents;
+ }
+
+ public String getReports() {
+ return reports;
+ }
+
+ public String getResourceversioninventoryreport() {
+ return resourceVersionInventoryReport;
+ }
+
+ public String getDownloads() {
+ return downloads;
+ }
+
+ public String getLicense() {
+ return license;
+ }
+
+ public String getAdministrationAfter() {
+ return administration_AFTER;
+ }
+
+ public String getHelpBefore() {
+ return help_BEFORE;
+ }
+
+ public String getHelp() {
+ return help;
+ }
+
+ public String getOnlinedocumentation() {
+ return onlineDocumentation;
+ }
+
+ public String getOpenasupportcase() {
+ return openASupportCase;
+ }
+
+ public String getAbout() {
+ return about;
+ }
+
+ public String getHelpAfter() {
+ return help_AFTER;
+ }
+
+ public String getRefreshBefore() {
+ return refresh_BEFORE;
+ }
+
+ public String getRefresh() {
+ return refresh;
+ }
+
+ public String getStop() {
+ return stop;
+ }
+
+ public String getRefreshevery1minute() {
+ return refreshEvery1Minute;
+ }
+
+ public String getRefreshevery5minutes() {
+ return refreshEvery5Minutes;
+ }
+
+ public String getRefreshevery10minutes() {
+ return refreshEvery10Minutes;
+ }
+
+ public String getRefreshAfter() {
+ return refresh_AFTER;
+ }
+
+ public String getLoggedinasBefore() {
+ return loggedInAs_BEFORE;
+ }
+
+ public String getLoggedinas() {
+ return loggedInAs;
+ }
+
+ public String getEditdetails() {
+ return editDetails;
+ }
+
+ public String getChangepassword() {
+ return changePassword;
+ }
+
+ public String getLogout() {
+ return logout;
+ }
+
+ public String getLoggedinasAfter() {
+ return loggedInAs_AFTER;
+ }
+
+ //MENU:ExtensionPoints END
+
+ //constants:end
+}
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/perspectives/MenuItem.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/perspectives/MenuItem.java
index ee7cffe..2ba210e 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/perspectives/MenuItem.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/perspectives/MenuItem.java
@@ -18,32 +18,43 @@
*/
package org.rhq.enterprise.gui.perspectives;
-/** Features for each menu item.
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+/** Features for each menu item. A menu item can be as simple as a logo,
+ * menu separator bar or as complicated as a root menu item with an arbitrary
+ * amount of child menuitems.
*
* @author Simeon Pinder
*
*/
public class MenuItem {
- //constants:begin Extension point map
- public static String menu = "menu";
- public static String menu_BEGIN = "menu.BEGIN";
- public static String logo = "menu.logo";
-
- public static String overview_BEFORE = "menu.overview_BEFORE";
- public static String overview = "menu.overview";
-
- public static String resources_BEFORE = "menu.resources_BEFORE";
- public static String resources = "menu.resources";
-
- //constants:end
-
+ //url to icon image
private String iconUrl = "";
+ //width of icon
private int iconWidth = 0;
+ //height of icon
private int iconHeight = 0;
+ //url to direct user to onclick
private String url = "";
+ //The label to be displayed for this menu item
private String name = "";
+ //whether this menu item is to be enabled/visible
private boolean rendered = true;
+ //whether this menuItem represent a menu separator
+ private boolean isMenuSeparator = false;
+ //includes N child MenuItem instances
+ private List<MenuItem> childMenuItems = new ArrayList<MenuItem>();
+ //Stores a unique reference to the ExtensionPoint key for this item.
+ private String extensionKey = "";
+ //whether this menuItem(relevant to top menu items only) is aligned from far left
+ private boolean alignLeft = true;
+
+ //default no args. To satisfy basic bean functionality.
+ MenuItem() {
+ }
MenuItem(String iconUrl, String url, String name) {
this.iconUrl = iconUrl;
@@ -51,6 +62,13 @@ public class MenuItem {
this.name = name;
}
+ MenuItem(String iconUrl, String url, String name, List<MenuItem> children,
String key, HashMap<String, MenuItem> map) {
+ this(iconUrl, url, name);
+ children.add(this);
+ map.put(key, this);
+ this.extensionKey = key;
+ }
+
public String getIconUrl() {
return iconUrl;
}
@@ -98,4 +116,36 @@ public class MenuItem {
public void setIconWidth(int iconWidth) {
this.iconWidth = iconWidth;
}
+
+ public boolean isMenuSeparator() {
+ return isMenuSeparator;
+ }
+
+ public void setMenuSeparator(boolean isMenuSeparator) {
+ this.isMenuSeparator = isMenuSeparator;
+ }
+
+ public void setChildMenuItems(List<MenuItem> childMenuItems) {
+ this.childMenuItems = childMenuItems;
+ }
+
+ public List<MenuItem> getChildMenuItems() {
+ return childMenuItems;
+ }
+
+ public String getExtensionKey() {
+ return extensionKey;
+ }
+
+ public void setExtensionKey(String extensionKey) {
+ this.extensionKey = extensionKey;
+ }
+
+ public boolean isAlignLeft() {
+ return alignLeft;
+ }
+
+ public void setAlignLeft(boolean alignLeft) {
+ this.alignLeft = alignLeft;
+ }
}
diff --git
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/perspectives/PerspectivesMenuUIBean.java
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/perspectives/PerspectivesMenuUIBean.java
index 66560a0..308ad2b 100644
---
a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/perspectives/PerspectivesMenuUIBean.java
+++
b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/perspectives/PerspectivesMenuUIBean.java
@@ -19,8 +19,10 @@
package org.rhq.enterprise.gui.perspectives;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
+import java.util.Set;
/**
* Bean dynamically provides menu information used by menu.xhtml. This bean should be
viewed
@@ -31,435 +33,293 @@ import java.util.List;
*
*/
public class PerspectivesMenuUIBean {
+
+ //Stores reference to the root menu item
+ private MenuItem CoreMenuBar = null;
+
/* Stores all mapped MenuItem information */
private HashMap<String, MenuItem> menuDefinition = new HashMap<String,
MenuItem>();
- /*===== LOGO TO HOME PAGE =====*/
- private MenuItem logo = new MenuItem("/images/JBossLogo_small.png",
"", "");
- {
- logo.setIconHeight(21);
- logo.setIconWidth(37);
- menuDefinition.put(MenuItem.logo, logo);
- }
+ // provides MenuItem mapping lookup via bean accessor
+ private MenuItem extensionPoint = null;
- /*===== OVERVIEW =====*/
- private MenuItem overview = new MenuItem("", "",
"Overview");
- {
- menuDefinition.put(MenuItem.overview, overview);
- }
- /*===== Overview.BEFORE extension pt. ============= */
- private MenuItem overviewBefore = new MenuItem("", "",
"");
- {
- overviewBefore.setRendered(false);//disable to start
- menuDefinition.put(MenuItem.overview_BEFORE, overviewBefore);
- }
+ {//initialization block
+ //Root of core menu
+ MenuItem menu = new MenuItem();
+ menu.setExtensionKey(ExtensionPoints.menu);
+ CoreMenuBar = menu;
+ menuDefinition.put(ExtensionPoints.menu, menu);
- private List<MenuItem> overviewBeforeItems = new ArrayList<MenuItem>();
+ List<MenuItem> attachPoints = menu.getChildMenuItems();
- /****** Overview > SYSTEM VIEWS ******/
- private MenuItem subsystemViews = new MenuItem("", "",
"Subsystem Views");
- private List<MenuItem> subsystemMenuItems = new ArrayList<MenuItem>();
- {//initialization block
- //SubsystemView menu items
- String[] subsystemCategories = { "Configure",
"Monitor_failed", "Operation", "Flag_blue",
"Flag_grey" };
- String[] subsystemPages = { "configurationUpdate",
"oobHistory", "operationHistory", "alertHistory",
- "alertDefinitions" };
- String[] subsystemNames = { "Configuration Changes", "Suspect
Metrics", "Operations", "Alerts",
- "Alert Definitions" };
- for (int i = 0; i < subsystemPages.length; i++) {
- subsystemMenuItems.add(new MenuItem("/images/icons/" +
subsystemCategories[i] + "_16.png",//icon url
- "/rhq/subsystem/" + subsystemPages[i] + ".xhtml", //
menu item url
- subsystemNames[i])); //menu item name
+ /*===== LOGO TO HOME PAGE =====*/
+ MenuItem logoBefore = new MenuItem("", "", "",
menu.getChildMenuItems(), ExtensionPoints.logo_BEFORE,
+ menuDefinition);
+ logoBefore.setRendered(false);
+ MenuItem logo = new MenuItem("/images/JBossLogo_small.png",
"", "", menu.getChildMenuItems(),
+ ExtensionPoints.logo, menuDefinition);
+ logo.setIconHeight(21);
+ logo.setIconWidth(37);
+ MenuItem logoAfter = new MenuItem("", "", "",
menu.getChildMenuItems(), ExtensionPoints.logo_AFTER,
+ menuDefinition);
+ logoAfter.setRendered(false);
+ /*===== OVERVIEW =====*/
+ MenuItem overview = new MenuItem("", "",
"Overview", menu.getChildMenuItems(), ExtensionPoints.overview,
+ menuDefinition);
+ /*===== Overview.BEFORE extension pt. Ignore same as Logo.after ============= */
+ /*===== OVERVIEW.AFTER =====*/
+ MenuItem overviewAfter = new MenuItem("", "", "",
menu.getChildMenuItems(), ExtensionPoints.overview_AFTER,
+ menuDefinition);
+ overviewAfter.setRendered(false);
+
+ /****** Overview > SYSTEM VIEWS ******/
+ MenuItem subsystemViews = new MenuItem("", "",
"Subsystem Views", overview.getChildMenuItems(),
+ ExtensionPoints.subsystemViews, menuDefinition);
+ List<MenuItem> subsystemMenuItems = new ArrayList<MenuItem>();
+ {
+ //SubsystemView menu items
+ String[] imageNames = { "Configure", "Monitor_failed",
"Operation", "Flag_blue", "Flag_grey" };
+ String[] pageNames = { "configurationUpdate",
"oobHistory", "operationHistory", "alertHistory",
+ "alertDefinitions" };
+ String[] menuNames = { "Configuration Changes", "Suspect
Metrics", "Operations", "Alerts",
+ "Alert Definitions" };
+ for (int i = 0; i < imageNames.length; i++) {
+ String extKey = null;
+ String name = menuNames[i];
+ if (name.indexOf("Configuration") > -1) {
+ extKey = ExtensionPoints.configurationChanges;
+ }
+ if (name.indexOf("Suspect") > -1) {
+ extKey = ExtensionPoints.suspectMetrics;
+ }
+ if (name.indexOf("Operations") > -1) {
+ extKey = ExtensionPoints.operations;
+ }
+ if (name.indexOf("Alerts") > -1) {
+ extKey = ExtensionPoints.alerts;
+ }
+ if (name.indexOf("Alert") > -1) {
+ extKey = ExtensionPoints.alertDefinitions;
+ }
+ MenuItem m = new MenuItem("/images/icons/" + imageNames[i] +
"_16.png",//icon url
+ "/rhq/subsystem/" + pageNames[i] + ".xhtml", //
menu item url
+ menuNames[i], subsystemViews.getChildMenuItems(), extKey,
menuDefinition); //menu item name
+ }
}
- }
- /* ***** Overview > AUTO-DISCOVERY QUEUE ***** */
- private MenuItem autoDiscoveryQueue = new MenuItem("",
"/rhq/discovery/queue.xhtml", "Auto Discovery Queue");;
-
- /* ***** Overview > DASHBOARD ***** */
- private MenuItem dashboard = new MenuItem("", "/Dashboard.do",
"Dashboard");
-
- /* ===== RESOURCES ===== */
- private MenuItem resources = new MenuItem("", "",
"Resources");
-
- /* Resources: Platform */
- private MenuItem resourcesPlatform = null;
- {
- resourcesPlatform = new MenuItem("/images/icons/Platform_up_16.png",
- "/ResourceHub.do?resourceCategory=PLATFORM", "");
- }
- /* Resources: Server */
- private MenuItem resourcesServer = null;
- {
- resourcesServer = new MenuItem("/images/icons/Server_up_16.png",
"/ResourceHub.do?resourceCategory=SERVER", "");
- }
-
- /* Resources: Service */
- private MenuItem resourcesService = null;
- {
- resourcesService = new MenuItem("/images/icons/Service_up_16.png",
"/ResourceHub.do?resourceCategory=SERVICE",
- "");
- }
-
- private MenuItem resourcesFavorite = new
MenuItem("/images/icons/Favorite_16.png", "", "Favorite
Resources");
- private MenuItem resourcesRecentlyViewed = new
MenuItem("/images/icons/History_16.png", "",
- "Recently Viewed Resources");
- //TODO: enable?
- private MenuItem resourcesSearch = new
MenuItem("/images/icons/History_16.png", "", "Search: ");
-
- /* ===== GROUPS ===== */
- private MenuItem groups = new MenuItem("", "",
"Groups");
- private MenuItem groupsCompatible = new
MenuItem("/images/icons/Cluster_up_16.png",
- "/GroupHub.do?groupCategory=COMPATIBLE", "");
- private MenuItem groupsMixed = new
MenuItem("/images/icons/Group_up_16.png",
"/GroupHub.do?groupCategory=MIXED", "");
- private MenuItem groupsDefinitions = new
MenuItem("/images/GroupDefinition_16.png",
- "/rhq/definition/group/list.xhtml", "");
- private MenuItem groupsNewResource = new MenuItem("",
"/resource/group/Inventory.do?mode=new", "");
- private MenuItem groupsNewDefinition = new MenuItem("",
"/rhq/definition/group/new.xhtml", "");
- private MenuItem groupsFavorite = new
MenuItem("/images/icons/Favorite_16.png", "", "Favorite
Groups");
- private MenuItem groupsRecentlyViewed = new
MenuItem("/images/icons/History_16.png", "", "Recently Viewed
Groups");
-
- /* ===== ADMINISTRATION ===== */
- private MenuItem security = new MenuItem("", "",
"Security");
- private MenuItem securityUsers = new MenuItem("",
"/admin/user/UserAdmin.do?mode=list", "Users");
- private MenuItem securityRoles = new MenuItem("",
"/admin/role/RoleAdmin.do?mode=list", "Roles");
- private MenuItem sysconfig = new MenuItem("", "", "System
Configuration");
- private MenuItem sysconfigSettings = new MenuItem("",
"/admin/config/Config.do?mode=edit", "Settings");
- private MenuItem sysconfigPlugins = new MenuItem("",
"/rhq/admin/plugin/plugin-list.xhtml", "Plugins");
- private MenuItem sysconfigTemplates = new MenuItem("",
- "/admin/config/EditDefaults.do?mode=monitor&viewMode=all",
"Templates");
- private MenuItem content = new MenuItem("", "",
"Content");
- private MenuItem contentContentProviders = new MenuItem("",
"/rhq/content/listContentProviders.xhtml",
- "Content Providers");
- private MenuItem contentRepositories = new MenuItem("",
"/rhq/content/listRepos.xhtml", "Repositories");
- private MenuItem ha = new MenuItem("", "", "High
Availability");
- private MenuItem haServers = new MenuItem("",
"/rhq/ha/listServers.xhtml", "Servers");
- private MenuItem haAgents = new MenuItem("",
"/rhq/ha/listAgents.xhtml", "Agents");
- private MenuItem haAffinityGroups = new MenuItem("",
"/rhq/ha/listAffinityGroups.xhtml", "Affinity Groups");
- private MenuItem haPartitionEvents = new MenuItem("",
"/rhq/ha/listPartitionEvents.xhtml", "Partition Events");
- private MenuItem reports = new MenuItem("", "",
"Reports");
- private MenuItem reportsResourceVersion = new MenuItem("",
"/rhq/admin/report/resourceInstallReport.xhtml",
- "Resource Version Inventory Report");
- private MenuItem downloads = new MenuItem("/images/icons/Save_16.png",
"/rhq/admin/downloads.xhtml", "Downloads");
- private MenuItem license = new MenuItem("",
"/admin/license/LicenseAdmin.do?mode=view", "License");
-
- public List<MenuItem> getSubsystemMenuItems() {
- return subsystemMenuItems;
- }
-
- public void setSubsystemMenuItems(List<MenuItem> subsystemMenuItems) {
- this.subsystemMenuItems = subsystemMenuItems;
- }
-
- public MenuItem getAutoDiscoveryQueue() {
- return autoDiscoveryQueue;
- }
-
- public void setAutoDiscoveryQueue(MenuItem autoDiscoveryQueue) {
- this.autoDiscoveryQueue = autoDiscoveryQueue;
- }
-
- public MenuItem getDashboard() {
- return dashboard;
- }
-
- public void setDashboard(MenuItem dashboard) {
- this.dashboard = dashboard;
- }
-
- public MenuItem getResourcesPlatform() {
- return resourcesPlatform;
- }
-
- public void setResourcesPlatform(MenuItem resourcesPlatform) {
- this.resourcesPlatform = resourcesPlatform;
- }
-
- public MenuItem getResourcesServer() {
- return resourcesServer;
- }
-
- public void setResourcesServer(MenuItem resourcesServer) {
- this.resourcesServer = resourcesServer;
- }
-
- public MenuItem getResourcesService() {
- return resourcesService;
- }
-
- public void setResourcesService(MenuItem resourcesService) {
- this.resourcesService = resourcesService;
- }
-
- public MenuItem getGroups() {
- return groups;
- }
-
- public void setGroups(MenuItem groups) {
- this.groups = groups;
- }
-
- public MenuItem getGroupsCompatible() {
- return groupsCompatible;
- }
-
- public void setGroupsCompatible(MenuItem groupsCompatible) {
- this.groupsCompatible = groupsCompatible;
- }
-
- public MenuItem getGroupsMixed() {
- return groupsMixed;
- }
-
- public void setGroupsMixed(MenuItem groupsMixed) {
- this.groupsMixed = groupsMixed;
- }
-
- public MenuItem getGroupsDefinitions() {
- return groupsDefinitions;
- }
-
- public void setGroupsDefinitions(MenuItem groupsDefinitions) {
- this.groupsDefinitions = groupsDefinitions;
- }
-
- public MenuItem getGroupsNewResource() {
- return groupsNewResource;
- }
-
- public void setGroupsNewResource(MenuItem groupsNewResource) {
- this.groupsNewResource = groupsNewResource;
- }
-
- public MenuItem getGroupsNewDefinition() {
- return groupsNewDefinition;
- }
-
- public void setGroupsNewDefinition(MenuItem groupsNewDefinition) {
- this.groupsNewDefinition = groupsNewDefinition;
- }
-
- public MenuItem getLogo() {
- return logo;
- }
-
- public void setLogo(MenuItem logo) {
- this.logo = logo;
- }
-
- public MenuItem getOverview() {
- return overview;
- }
-
- public void setOverview(MenuItem overview) {
- this.overview = overview;
- }
-
- public MenuItem getSubsystemViews() {
- return subsystemViews;
- }
-
- public void setSubsystemViews(MenuItem subsystemViews) {
- this.subsystemViews = subsystemViews;
- }
-
- public MenuItem getResources() {
- return resources;
- }
-
- public void setResources(MenuItem resources) {
- this.resources = resources;
- }
-
- public MenuItem getResourcesFavorite() {
- return resourcesFavorite;
- }
-
- public void setResourcesFavorite(MenuItem resourcesFavorite) {
- this.resourcesFavorite = resourcesFavorite;
- }
-
- public MenuItem getResourcesRecentlyViewed() {
- return resourcesRecentlyViewed;
- }
-
- public void setResourcesRecentlyViewed(MenuItem resourcesRecentlyViewed) {
- this.resourcesRecentlyViewed = resourcesRecentlyViewed;
- }
-
- public MenuItem getGroupsFavorite() {
- return groupsFavorite;
- }
-
- public void setGroupsFavorite(MenuItem groupsFavorite) {
- this.groupsFavorite = groupsFavorite;
- }
-
- public MenuItem getGroupsRecentlyViewed() {
- return groupsRecentlyViewed;
- }
-
- public void setGroupsRecentlyViewed(MenuItem groupsRecentlyViewed) {
- this.groupsRecentlyViewed = groupsRecentlyViewed;
- }
-
- public MenuItem getResourcesSearch() {
- return resourcesSearch;
- }
-
- public void setResourcesSearch(MenuItem resourcesSearch) {
- this.resourcesSearch = resourcesSearch;
- }
-
- public MenuItem getSecurity() {
- return security;
- }
-
- public void setSecurity(MenuItem security) {
- this.security = security;
- }
-
- public MenuItem getSecurityUsers() {
- return securityUsers;
- }
-
- public void setSecurityUsers(MenuItem securityUsers) {
- this.securityUsers = securityUsers;
- }
-
- public MenuItem getSecurityRoles() {
- return securityRoles;
- }
-
- public void setSecurityRoles(MenuItem securityRoles) {
- this.securityRoles = securityRoles;
- }
-
- public MenuItem getSysconfig() {
- return sysconfig;
- }
-
- public void setSysconfig(MenuItem sysconfig) {
- this.sysconfig = sysconfig;
- }
-
- public MenuItem getSysconfigSettings() {
- return sysconfigSettings;
- }
-
- public void setSysconfigSettings(MenuItem sysconfigSettings) {
- this.sysconfigSettings = sysconfigSettings;
- }
-
- public MenuItem getSysconfigPlugins() {
- return sysconfigPlugins;
- }
-
- public void setSysconfigPlugins(MenuItem sysconfigPlugins) {
- this.sysconfigPlugins = sysconfigPlugins;
- }
-
- public MenuItem getSysconfigTemplates() {
- return sysconfigTemplates;
- }
-
- public void setSysconfigTemplates(MenuItem sysconfigTemplates) {
- this.sysconfigTemplates = sysconfigTemplates;
- }
-
- public MenuItem getContent() {
- return content;
- }
-
- public void setContent(MenuItem content) {
- this.content = content;
- }
-
- public MenuItem getContentContentProviders() {
- return contentContentProviders;
- }
-
- public void setContentContentProviders(MenuItem contentContentProviders) {
- this.contentContentProviders = contentContentProviders;
- }
-
- public MenuItem getContentRepositories() {
- return contentRepositories;
- }
-
- public void setContentRepositories(MenuItem contentRepositories) {
- this.contentRepositories = contentRepositories;
- }
-
- public MenuItem getHa() {
- return ha;
- }
-
- public void setHa(MenuItem ha) {
- this.ha = ha;
- }
-
- public MenuItem getHaServers() {
- return haServers;
- }
-
- public void setHaServers(MenuItem haServers) {
- this.haServers = haServers;
- }
-
- public MenuItem getHaAgents() {
- return haAgents;
- }
-
- public void setHaAgents(MenuItem haAgents) {
- this.haAgents = haAgents;
- }
-
- public MenuItem getHaAffinityGroups() {
- return haAffinityGroups;
- }
-
- public void setHaAffinityGroups(MenuItem haAffinityGroups) {
- this.haAffinityGroups = haAffinityGroups;
- }
-
- public MenuItem getHaPartitionEvents() {
- return haPartitionEvents;
- }
-
- public void setHaPartitionEvents(MenuItem haPartitionEvents) {
- this.haPartitionEvents = haPartitionEvents;
- }
-
- public MenuItem getReports() {
- return reports;
- }
-
- public void setReports(MenuItem reports) {
- this.reports = reports;
- }
-
- public MenuItem getReportsResourceVersion() {
- return reportsResourceVersion;
- }
-
- public void setReportsResourceVersion(MenuItem reportsResourceVersion) {
- this.reportsResourceVersion = reportsResourceVersion;
- }
-
- public MenuItem getDownloads() {
- return downloads;
- }
-
- public void setDownloads(MenuItem downloads) {
- this.downloads = downloads;
- }
-
- public MenuItem getLicense() {
- return license;
- }
-
- public void setLicense(MenuItem license) {
- this.license = license;
+ /* ***** Overview > AUTO-DISCOVERY QUEUE ***** */
+ MenuItem autoDiscoveryQueue = new MenuItem("",
"/rhq/discovery/queue.xhtml", "Auto Discovery Queue", overview
+ .getChildMenuItems(), ExtensionPoints.autoDiscoveryQueue, menuDefinition);
+
+ /* ***** Overview > DASHBOARD ***** */
+ MenuItem dashboard = new MenuItem("", "/Dashboard.do",
"Dashboard", overview.getChildMenuItems(),
+ ExtensionPoints.dashboard, menuDefinition);
+
+ /* ===== RESOURCES ===== */
+ MenuItem resources = new MenuItem("", "",
"Resources", menu.getChildMenuItems(), ExtensionPoints.resources,
+ menuDefinition);
+ /*===== RESOURCES.BEFORE extension pt. Ignore same as Overvie.after =============
*/
+ /*===== Resources.AFTER =====*/
+ MenuItem resourcesAfter = new MenuItem("", "", "",
menu.getChildMenuItems(), ExtensionPoints.resources_AFTER,
+ menuDefinition);
+ resourcesAfter.setRendered(false);
+
+ /* Resources: Platform */
+ MenuItem resourcesPlatform = new
MenuItem("/images/icons/Platform_up_16.png",
+ "/ResourceHub.do?resourceCategory=PLATFORM", "",
resources.getChildMenuItems(), ExtensionPoints.platforms,
+ menuDefinition);
+ /* Resources: Server */
+ MenuItem resourcesServer = new
MenuItem("/images/icons/Server_up_16.png",
+ "/ResourceHub.do?resourceCategory=SERVER", "",
resources.getChildMenuItems(), ExtensionPoints.servers,
+ menuDefinition);
+ /* Resources: Service */
+ MenuItem resourcesService = new
MenuItem("/images/icons/Service_up_16.png",
+ "/ResourceHub.do?resourceCategory=SERVICE", "",
resources.getChildMenuItems(), ExtensionPoints.services,
+ menuDefinition);
+ // Menu bar separator
+ MenuItem separator = new MenuItem("", "", "");
+ separator.setMenuSeparator(true);
+ resources.getChildMenuItems().add(separator);
+ /* Resources: Favorites */
+ MenuItem resourcesFavorite = new
MenuItem("/images/icons/Favorite_16.png", "", "Favorite
Resources", resources
+ .getChildMenuItems(), ExtensionPoints.favoriteResources, menuDefinition);
+ /* Resources: Recently Viewed */
+ MenuItem resourcesRecentlyViewed = new
MenuItem("/images/icons/History_16.png", "",
+ "Recently Viewed Resources", resources.getChildMenuItems(),
ExtensionPoints.recentlyViewedResources,
+ menuDefinition);
+ //ADD Menu bar separator
+ resources.getChildMenuItems().add(separator);
+ /* Resources: Search */
+ MenuItem resourcesSearch = new MenuItem("", "", "Search:
", resources.getChildMenuItems(),
+ ExtensionPoints.searchResources, menuDefinition);
+
+ /* ===== GROUPS ===== */
+ MenuItem groups = new MenuItem("", "", "Groups",
menu.getChildMenuItems(), ExtensionPoints.groups,
+ menuDefinition);
+ /*===== Groups.BEFORE extension pt. Ignore same as Overvie.after =============
*/
+ /*===== Groups.AFTER =====*/
+ MenuItem groupsAfter = new MenuItem("", "", "",
menu.getChildMenuItems(), ExtensionPoints.groups_AFTER,
+ menuDefinition);
+ groupsAfter.setRendered(false);
+ /* GROUPS: Compatible */
+ MenuItem groupsCompatible = new
MenuItem("/images/icons/Cluster_up_16.png",
+ "/GroupHub.do?groupCategory=COMPATIBLE", "",
groups.getChildMenuItems(), ExtensionPoints.compatible,
+ menuDefinition);
+ /* GROUPS: Mixed */
+ MenuItem groupsMixed = new MenuItem("/images/icons/Group_up_16.png",
"/GroupHub.do?groupCategory=MIXED", "",
+ groups.getChildMenuItems(), ExtensionPoints.mixed, menuDefinition);
+ /* GROUPS: Group Definitions */
+ MenuItem groupsDefinitions = new
MenuItem("/images/GroupDefinition_16.png",
"/rhq/definition/group/list.xhtml",
+ "", groups.getChildMenuItems(), ExtensionPoints.definitions,
menuDefinition);
+ /* GROUPS: New Group */
+ MenuItem groupsNewResource = new MenuItem("",
"/resource/group/Inventory.do?mode=new", "", groups
+ .getChildMenuItems(), ExtensionPoints.newGroup, menuDefinition);
+ /* GROUPS: New Group Definition */
+ MenuItem groupsNewDefinition = new MenuItem("",
"/rhq/definition/group/new.xhtml", "", groups
+ .getChildMenuItems(), ExtensionPoints.newGroupDefinition, menuDefinition);
+ // Menu bar separator
+ groups.getChildMenuItems().add(separator);
+
+ /* GROUPS: Favorites */
+ MenuItem groupsFavorite = new MenuItem("/images/icons/Favorite_16.png",
"", "Favorite Groups", groups
+ .getChildMenuItems(), ExtensionPoints.favoriteGroups, menuDefinition);
+ /* GROUPS: Recently Viewed */
+ MenuItem groupsRecentlyViewed = new
MenuItem("/images/icons/History_16.png", "", "Recently Viewed
Groups",
+ groups.getChildMenuItems(), ExtensionPoints.recentlyViewedGroups,
menuDefinition);
+ // Menu bar separator
+ groups.getChildMenuItems().add(separator);
+ /* GROUPS: Recently Viewed */
+ MenuItem groupsSearch = new MenuItem("", "",
"Search", groups.getChildMenuItems(),
+ ExtensionPoints.searchGroups, menuDefinition);
+
+ /* ===== ADMINISTRATION ===== */
+ MenuItem administration = new MenuItem("", "",
"Administration", menu.getChildMenuItems(),
+ ExtensionPoints.administration, menuDefinition);
+ /*===== ADMINISTRATION.BEFORE extension pt. Ignore same as Groups.after
============= */
+ /*===== ADMINISTRATION.AFTER =====*/
+ MenuItem administrationAfter = new MenuItem("", "",
"", menu.getChildMenuItems(),
+ ExtensionPoints.administration_AFTER, menuDefinition);
+ administrationAfter.setRendered(false);
+ MenuItem security = new MenuItem("", "",
"Security", administration.getChildMenuItems(),
+ ExtensionPoints.security, menuDefinition);
+ MenuItem securityUsers = new MenuItem("",
"/admin/user/UserAdmin.do?mode=list", "Users", security
+ .getChildMenuItems(), ExtensionPoints.users, menuDefinition);
+ MenuItem securityRoles = new MenuItem("",
"/admin/role/RoleAdmin.do?mode=list", "Roles", security
+ .getChildMenuItems(), ExtensionPoints.roles, menuDefinition);
+ MenuItem sysconfig = new MenuItem("", "", "System
Configuration", administration.getChildMenuItems(),
+ ExtensionPoints.systemConfiguration, menuDefinition);
+ MenuItem sysconfigSettings = new MenuItem("",
"/admin/config/Config.do?mode=edit", "Settings", sysconfig
+ .getChildMenuItems(), ExtensionPoints.settings, menuDefinition);
+ MenuItem sysconfigPlugins = new MenuItem("",
"/rhq/admin/plugin/plugin-list.xhtml", "Plugins", sysconfig
+ .getChildMenuItems(), ExtensionPoints.plugins, menuDefinition);
+ MenuItem sysconfigTemplates = new MenuItem("",
"/admin/config/EditDefaults.do?mode=monitor&viewMode=all",
+ "Templates", sysconfig.getChildMenuItems(),
ExtensionPoints.templates, menuDefinition);
+ MenuItem content = new MenuItem("", "", "Content",
administration.getChildMenuItems(), ExtensionPoints.content,
+ menuDefinition);
+ MenuItem contentContentProviders = new MenuItem("",
"/rhq/content/listContentProviders.xhtml",
+ "Content Providers", content.getChildMenuItems(),
ExtensionPoints.contentProviders, menuDefinition);
+ MenuItem contentRepositories = new MenuItem("",
"/rhq/content/listRepos.xhtml", "Repositories", content
+ .getChildMenuItems(), ExtensionPoints.repositories, menuDefinition);
+ MenuItem ha = new MenuItem("", "", "High
Availability", administration.getChildMenuItems(),
+ ExtensionPoints.highAvailability, menuDefinition);
+ MenuItem haServers = new MenuItem("",
"/rhq/ha/listServers.xhtml", "Servers", ha.getChildMenuItems(),
+ ExtensionPoints.haServers, menuDefinition);
+ MenuItem haAgents = new MenuItem("",
"/rhq/ha/listAgents.xhtml", "Agents", ha.getChildMenuItems(),
+ ExtensionPoints.agents, menuDefinition);
+ MenuItem haAffinityGroups = new MenuItem("",
"/rhq/ha/listAffinityGroups.xhtml", "Affinity Groups", ha
+ .getChildMenuItems(), ExtensionPoints.affinityGroups, menuDefinition);
+ MenuItem haPartitionEvents = new MenuItem("",
"/rhq/ha/listPartitionEvents.xhtml", "Partition Events", ha
+ .getChildMenuItems(), ExtensionPoints.partitionEvents, menuDefinition);
+ MenuItem reports = new MenuItem("", "", "Reports",
administration.getChildMenuItems(), ExtensionPoints.reports,
+ menuDefinition);
+ MenuItem reportsResourceVersion = new MenuItem("",
"/rhq/admin/report/resourceInstallReport.xhtml",
+ "Resource Version Inventory Report", reports.getChildMenuItems(),
+ ExtensionPoints.resourceVersionInventoryReport, menuDefinition);
+ MenuItem downloads = new MenuItem("/images/icons/Save_16.png",
"/rhq/admin/downloads.xhtml", "Downloads",
+ administration.getChildMenuItems(), ExtensionPoints.downloads,
menuDefinition);
+ MenuItem license = new MenuItem("",
"/admin/license/LicenseAdmin.do?mode=view", "License", administration
+ .getChildMenuItems(), ExtensionPoints.license, menuDefinition);
+
+ //* ------------- DEBUG ------------------- *//
+ /*===== DEBUG.BEFORE extension pt. Ignore same as Administration.after
============= */
+ MenuItem debug = new MenuItem("", "", "Debug",
menu.getChildMenuItems(), ExtensionPoints.debug, menuDefinition);
+ MenuItem sqlInterface = new MenuItem("",
"/admin/test/sql.jsp", "SQL Interface", debug.getChildMenuItems(),
+ ExtensionPoints.sqlInterface, menuDefinition);
+ MenuItem jpqlHibernateInterface = new MenuItem("",
"/admin/test/hibernate.jsp", "JPQL/HQL Interface", debug
+ .getChildMenuItems(), ExtensionPoints.jpqlHqlInterface, menuDefinition);
+ MenuItem hibernate = new MenuItem("",
"/admin/test/browser.jsp", "Hibernate Entity Browser", debug
+ .getChildMenuItems(), ExtensionPoints.hibernate, menuDefinition);
+ MenuItem administrativeControl = new MenuItem("",
"/admin/test/control.jsp", "Administrative Control", debug
+ .getChildMenuItems(), ExtensionPoints.administrativeControl,
menuDefinition);
+ MenuItem testEmail = new MenuItem("",
"/admin/test/email.jsp", "Test Email Configuration", debug
+ .getChildMenuItems(), ExtensionPoints.testEmail, menuDefinition);
+ MenuItem testAgent = new MenuItem("",
"/admin/test/agent.jsp", "Test Agent Communications", debug
+ .getChildMenuItems(), ExtensionPoints.testAgent, menuDefinition);
+ /*===== DEBUG.AFTER =====*/
+ MenuItem debugAfter = new MenuItem("", "", "",
menu.getChildMenuItems(), ExtensionPoints.debug_AFTER,
+ menuDefinition);
+ debugAfter.setRendered(false);
+
+ //* ------------- HELP ------------------- *//
+ /*===== HELP.BEFORE extension pt. Ignore same as Administration.after
============= */
+ MenuItem help = new MenuItem("", "", "Help",
attachPoints, ExtensionPoints.help, menuDefinition);
+ /*===== HELP.AFTER =====*/
+ MenuItem helpAfter = new MenuItem("", "", "",
attachPoints, ExtensionPoints.help_AFTER, menuDefinition);
+ helpAfter.setRendered(false);
+ MenuItem onlineDoc = new MenuItem("",
"http://www.redhat.com/docs/en-US/JBoss_ON/", "Online Documentation",
+ help.getChildMenuItems(), ExtensionPoints.help, menuDefinition);
+ MenuItem support = new MenuItem("",
"https://support.redhat.com/jbossnetwork/restricted/addCase.html",
+ "Open a Support Case", help.getChildMenuItems(),
ExtensionPoints.openASupportCase, menuDefinition);
+ // Menu bar separator
+ help.getChildMenuItems().add(separator);
+ MenuItem about = new MenuItem("/images/icons/availability_grey_16.png",
"", "", help.getChildMenuItems(),
+ ExtensionPoints.about, menuDefinition);
+
+ //* ------------- REFRESH ------------------- *//
+ /*===== REFRESH.BEFORE extension pt. ============= */
+ MenuItem refreshBefore = new MenuItem("", "", "",
menu.getChildMenuItems(), ExtensionPoints.refresh_BEFORE,
+ menuDefinition);
+ refreshBefore.setRendered(false);
+ refreshBefore.setAlignLeft(false);
+ MenuItem refresh = new MenuItem("", "", "",
attachPoints, ExtensionPoints.refresh, menuDefinition);
+ refresh.setAlignLeft(false);
+ /*===== HELP.AFTER =====*/
+ MenuItem refreshAfter = new MenuItem("", "", "",
attachPoints, ExtensionPoints.refresh_AFTER, menuDefinition);
+ refreshAfter.setRendered(false);
+ refreshAfter.setAlignLeft(false);
+ MenuItem stop = new MenuItem("", "", "Stop",
refresh.getChildMenuItems(), ExtensionPoints.stop, menuDefinition);
+ MenuItem refresh1 = new MenuItem("", "", "Refresh every
1 minute", refresh.getChildMenuItems(),
+ ExtensionPoints.refreshEvery1Minute, menuDefinition);
+ MenuItem refresh5 = new MenuItem("", "", "Refresh every
5 minutes", refresh.getChildMenuItems(),
+ ExtensionPoints.refreshEvery5Minutes, menuDefinition);
+ MenuItem refresh10 = new MenuItem("", "", "Refresh every
10 minutes", refresh.getChildMenuItems(),
+ ExtensionPoints.refreshEvery10Minutes, menuDefinition);
+
+ //* ------------- IS LOGGED IN ------------------- *//
+ /*===== IS LOGGED IN.BEFORE extension pt. Ignore same as refresh.after
============= */
+ MenuItem loggedIn = new MenuItem("", "", "",
attachPoints, ExtensionPoints.loggedInAs, menuDefinition);
+ loggedIn.setAlignLeft(false);
+ /*===== IS LOGGED IN.AFTER =====*/
+ MenuItem loggedInAfter = new MenuItem("", "", "",
attachPoints, ExtensionPoints.loggedInAs_AFTER,
+ menuDefinition);
+ loggedInAfter.setRendered(false);
+ loggedInAfter.setAlignLeft(false);
+ MenuItem edit = new MenuItem("", "", "Edit
Details", loggedIn.getChildMenuItems(), ExtensionPoints.stop,
+ menuDefinition);
+ MenuItem change = new MenuItem("", "", "Change
Password", loggedIn.getChildMenuItems(),
+ ExtensionPoints.refreshEvery1Minute, menuDefinition);
+ // Menu bar separator
+ loggedIn.getChildMenuItems().add(separator);
+ MenuItem logout = new MenuItem("", "/Logout.do",
"Logout", loggedIn.getChildMenuItems(),
+ ExtensionPoints.refreshEvery5Minutes, menuDefinition);
+
+ }
+
+ public MenuItem getCoreMenuBar() {
+ return CoreMenuBar;
+ }
+
+ public void setCoreMenuBar(MenuItem coreMenuBar) {
+ CoreMenuBar = coreMenuBar;
}
public HashMap<String, MenuItem> getMenuDefinition() {
@@ -470,19 +330,35 @@ public class PerspectivesMenuUIBean {
this.menuDefinition = menuDefinition;
}
- public MenuItem getOverviewBefore() {
- return overviewBefore;
- }
-
- public void setOverviewBefore(MenuItem overviewBefore) {
- this.overviewBefore = overviewBefore;
- }
-
- public List<MenuItem> getOverviewBeforeItems() {
- return overviewBeforeItems;
+ public static void main(String[] args) {
+ PerspectivesMenuUIBean bean = new PerspectivesMenuUIBean();
+ // System.out.println("Bean:" + bean);
+ MenuItem coreMenu = bean.getCoreMenuBar();
+ HashMap<String, MenuItem> definition = bean.getMenuDefinition();
+ //iterate over the coreMenu recursively
+ recurse(coreMenu, "(TOP)");
+ //iterate over the map and display the values
+ Set<String> keys = definition.keySet();
+ ArrayList<String> list = new ArrayList<String>(keys);
+ Collections.sort(list);
+ System.out.println("\n Key listing [" + keys.size() + " item(s)]
\n");
+ for (String key : list) {
+ System.out.println("KEY:" + key + "=" +
definition.get(key));
+ }
}
- public void setOverviewBeforeItems(List<MenuItem> overviewBeforeItems) {
- this.overviewBeforeItems = overviewBeforeItems;
+ private static void recurse(MenuItem menu, String prefix) {
+ if ((menu != null)) {
+ //base case: leaf
+ if (menu.getChildMenuItems().size() == 0) {
+ System.out.println(prefix + "#" + menu.getName() +
":" + menu.getExtensionKey() + ":");
+ } else {
+ System.out.println(prefix + "[DIR-(" +
menu.getChildMenuItems().size() + ")]" + menu.getName() + ":"
+ + menu.getExtensionKey() + ":");
+ for (MenuItem child : menu.getChildMenuItems()) {
+ recurse(child, prefix + "\t");
+ }
+ }
+ }
}
}
diff --git
a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-managed-beans/perspectives-beans.xml
b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-managed-beans/perspectives-beans.xml
index 53c0d31..a8ab990 100644
---
a/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-managed-beans/perspectives-beans.xml
+++
b/modules/enterprise/gui/portal-war/src/main/webapp/WEB-INF/jsf-managed-beans/perspectives-beans.xml
@@ -10,5 +10,10 @@
<managed-bean-class>org.rhq.enterprise.gui.perspectives.PerspectivesMenuUIBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
-
+ <managed-bean>
+ <managed-bean-name>ExtensionPoints</managed-bean-name>
+
<managed-bean-class>org.rhq.enterprise.gui.perspectives.ExtensionPoints</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+
</faces-config>
\ No newline at end of file
diff --git a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menu.xhtml
b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menu.xhtml
index 5a7e438..3beaf09 100644
--- a/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menu.xhtml
+++ b/modules/enterprise/gui/portal-war/src/main/webapp/rhq/common/menu/menu.xhtml
@@ -14,579 +14,456 @@
<f:loadBundle basename="ApplicationResources" var="msg" />
-
- <rich:toolBar styleClass="topMenu">
- <rich:toolBarGroup location="left">
-
- <ui:remove>===== LOGO TO HOME PAGE =====</ui:remove>
-
- <h:outputLink value="/">
- <h:graphicImage value="#{PerspectivesMenuUIBean.logo.iconUrl}"
- width="#{PerspectivesMenuUIBean.logo.iconWidth}"
- height="#{PerspectivesMenuUIBean.logo.iconHeight}"
- rendered="#{PerspectivesMenuUIBean.logo.rendered}" />
- </h:outputLink>
-
- <ui:remove>===== OVERVIEW.BEFORE =====</ui:remove>
- <c:if test="#{PerspectivesMenuUIBean.overviewBefore.rendered}">
- <rich:dropDownMenu>
- <f:facet name="label">
- <h:panelGroup>
- <h:outputText
- value="#{PerspectivesMenuUIBean.overviewBefore.name}"
- rendered="#{PerspectivesMenuUIBean.overviewBefore.rendered}" />
- </h:panelGroup>
+ <rich:toolBar styleClass="topMenu">
+ <rich:toolBarGroup location="left">
+
+ <ui:remove>===== If the component is enabled i.e. rendered==true
=====</ui:remove>
+ <c:if test="#{PerspectivesMenuUIBean.coreMenuBar.rendered}">
+ <ui:remove>===== If CoreMenu UI hasn't been disabled
=====</ui:remove>
+ <ui:remove>===== Iterate through children[Top Menu Items]
=====</ui:remove>
+ <c:forEach var="top"
+ items="#{PerspectivesMenuUIBean.coreMenuBar.childMenuItems}">
+ <c:if test="#{top.rendered and top.alignLeft}">
+ <ui:remove>===== LOGO TO HOME PAGE or other top-level-image menu item
=====</ui:remove>
+ <c:if test="#{ExtensionPoints.logo == top.extensionKey or
'top-level-image' == top.extensionKey}">
+ <h:outputLink value="/">
+ <h:graphicImage value="#{top.iconUrl}"
+ width="#{top.iconWidth}"
+ height="#{top.iconHeight}"
+ rendered="#{top.rendered}" />
+ </h:outputLink>
+ </c:if>
+ <ui:remove>===== DEBUG top-level menu item =====</ui:remove>
+ <c:if test="#{ExtensionPoints.debug == top.extensionKey}">
+ <rich:dropDownMenu rendered="#{GlobalPermissionsUIBean.superuser and
+ GlobalPermissionsUIBean.debugMode}">
+ <f:facet name="label">
+ <h:panelGroup>
+ <h:outputText value="#{top.name}"/>
+ </h:panelGroup>
+ </f:facet>
+ <c:forEach var="child"
+ items="#{top.childMenuItems}">
+ <rich:menuItem submitMode="none"
+ icon="#{child.iconUrl}"
+ width="#{child.iconWidth}"
height="#{child.iconHeight}"
+ onclick="window.open('#{child.url}')"
+ target="blank_">
+ <h:outputText value="#{child.name}"/>
+ </rich:menuItem>
+ </c:forEach>
+ </rich:dropDownMenu>
+ </c:if>
+ <c:if test="#{ExtensionPoints.logo != top.extensionKey and
ExtensionPoints.debug != top.extensionKey}">
+ <rich:dropDownMenu>
+ <f:facet name="label">
+ <h:panelGroup>
+ <c:choose>
+ <ui:remove>= logic for administration =</ui:remove>
+ <c:when test="${ExtensionPoints.administration ==
top.extensionKey}">
+ <h:outputText
value="#{msg['admin.admin.AdministrationTitle']}"/>
+ </c:when>
+ <ui:remove>= logic for help =</ui:remove>
+ <c:when test="${ExtensionPoints.help == top.extensionKey}">
+ <h:outputText value="#{msg['header.help.link']}"/>
+ </c:when>
+ <c:otherwise>
+ <h:outputText value="#{top.name}"/>
+ </c:otherwise>
+ </c:choose>
+ </h:panelGroup>
</f:facet>
- <c:forEach var="item"
- items="#{PerspectivesMenuUIBean.overviewBeforeItems}">
- <rich:menuItem submitMode="none" icon="#{item.iconUrl}"
- width="#{item.iconWidth}" height="#{item.iconHeight}"
- rendered="#{item.rendered}"
- onclick="window.location = '#{item.url}'">
- <h:outputText value="#{item.name}" />
- </rich:menuItem>
+ <ui:remove> Now process the children MenuItems if they exist
</ui:remove>
+
+ <c:forEach var="child"
+ items="#{top.childMenuItems}">
+ <c:if test="#{child.rendered}">
+ <c:choose>
+ <c:when test="${child.childMenuItems.size > 0}">
+ <rich:menuGroup value="#{child.name}">
+ <c:forEach var="grandchild"
+ items="#{child.childMenuItems}">
+ <rich:menuItem submitMode="none"
icon="#{grandchild.iconUrl}"
+ width="#{grandchild.iconWidth}"
height="#{grandchild.iconHeight}"
+ onclick="window.location = '#{grandchild.url}'">
+ <h:outputText value="#{grandchild.name}" />
+ </rich:menuItem>
+ </c:forEach>
+ </rich:menuGroup>
+ </c:when>
+ <c:otherwise>
+ <c:choose>
+ <ui:remove>= logic for platforms =</ui:remove>
+ <c:when test="${ExtensionPoints.platforms ==
child.extensionKey}">
+ <rich:menuItem submitMode="none"
icon="#{child.iconUrl}"
+ width="#{child.iconWidth}"
height="#{child.iconHeight}"
+ onclick="window.location = '#{child.url}'">
+ <h:outputText
value="#{msg['resource.hub.filter.platform']}"/>
+ </rich:menuItem>
+ </c:when>
+ <ui:remove>= logic for servers =</ui:remove>
+ <c:when test="${ExtensionPoints.servers ==
child.extensionKey}">
+ <rich:menuItem submitMode="none"
icon="#{child.iconUrl}"
+ width="#{child.iconWidth}"
height="#{child.iconHeight}"
+ onclick="window.location = '#{child.url}'">
+ <h:outputText
value="#{msg['resource.hub.filter.server']}"/>
+ </rich:menuItem>
+ </c:when>
+ <ui:remove>= logic for services =</ui:remove>
+ <c:when test="${ExtensionPoints.services ==
child.extensionKey}">
+ <rich:menuItem submitMode="none"
icon="#{child.iconUrl}"
+ width="#{child.iconWidth}"
height="#{child.iconHeight}"
+ onclick="window.location = '#{child.url}'">
+ <h:outputText
value="#{msg['resource.hub.filter.service']}"/>
+ </rich:menuItem>
+ </c:when>
+ <c:when test="#{child.menuSeparator}">
+ <rich:menuSeparator/>
+ </c:when>
+ <c:when test="${ExtensionPoints.favoriteresources ==
child.extensionKey}">
+ <rich:menuGroup value="#{child.name}"
icon="#{child.iconUrl}"
+ width="#{child.iconWidth}"
height="#{child.iconHeight}">
+ <c:forEach var="resource"
items="#{UserPreferencesUIBean.resourceFavorites}">
+ <rich:menuItem submitMode="none"
+
icon="/images/icons/#{resource.resourceType.category}_up_16.png"
+ onclick="window.location =
'#{onf:getDefaultResourceTabURL()}?id=#{resource.id}'">
+ <h:outputText value="#{resource.name}"/>
+ </rich:menuItem>
+ </c:forEach>
+ </rich:menuGroup>
+ </c:when>
+ <c:when test="${ExtensionPoints.recentlyviewedresources ==
child.extensionKey}">
+ <ui:remove>***** Resources > Recently Viewed
*****</ui:remove>
+ <rich:menuGroup value="#{child.name}"
icon="#{child.iconUrl}"
+ width="#{child.iconWidth}"
height="#{child.iconHeight}">
+ <c:forEach var="visit"
items="#{UserPreferencesUIBean.recentVisits}">
+ <c:if test="#{visit.kind == 'PLATFORM' or
visit.kind == 'SERVER' or visit.kind == 'SERVICE'}">
+ <rich:menuItem submitMode="none"
+
icon="/images/icons/#{visit.kind.displayName}_up_16.png"
+ onclick="window.location =
'#{onf:getDefaultResourceTabURL()}?id=#{visit.id}'">
+ <h:outputText value="#{visit.name}"/>
+ </rich:menuItem>
+ </c:if>
+ </c:forEach>
+ </rich:menuGroup>
+ </c:when>
+ <c:when test="${ExtensionPoints.searchresources ==
child.extensionKey}">
+ <ui:remove>***** Resources > SEARCH *****</ui:remove>
+ <rich:menuItem submitMode="none" disabled="true"
iconDisabled="/images/icons/Search_16.png">
+ <h:outputText value="Search: " style="color:
black;"/>
+ <h:panelGroup>
+ <h:inputText id="selectedResource" style="width:
250px;" immediate="true"
+ onkeypress="return ignoreEnterKey(event);"
/>
+ <rich:suggestionbox id="resourceSelectBox"
for="selectedResource" tokens=",[]"
+ ajaxSingle="true"
immediate="true"
+
suggestionAction="#{ResourceSelectUIBean.autocomplete}"
+ var="result" data="foo"
fetchValue="#{result.resource.id}"
+ nothingLabel="No matching resources
found"
+ style="background-color: #cccccc;"
+
onselect="document.location.href='#{onf:getDefaultResourceTabURL()}?id=' +
#{rich:element('selectedResource')}.value"
+ usingSuggestObjects="false"
width="700" height="400">
+ <h:column>
+ <f:facet
name="header">Avail</f:facet>
+ <h:graphicImage
+
value="/images/icons/availability_#{result.availability == 'UP' ?
'green' : 'red'}_16.png"/>
+ </h:column>
+ <h:column>
+ <f:facet
name="header">Resource</f:facet>
+ <h:outputText
value="#{result.resource.name}"/>
+ </h:column>
+ <h:column>
+ <f:facet
name="header">Parent</f:facet>
+ <h:outputText
value="#{result.parent.name}"/>
+ </h:column>
+ </rich:suggestionbox>
+ </h:panelGroup>
+ </rich:menuItem>
+ </c:when>
+ <c:when test="${ExtensionPoints.mixed == child.extensionKey or
+ ExtensionPoints.compatible == child.extensionKey or
+ ExtensionPoints.definitions == child.extensionKey}">
+ <ui:remove>***** Groups > COMPATIBLE GROUPS *****</ui:remove>
+ <ui:remove>***** Groups > MIXED GROUPS *****</ui:remove>
+ <ui:remove>***** Groups > GROUP DEFINITIONS
*****</ui:remove>
+ <rich:menuItem submitMode="none"
icon="#{child.iconUrl}"
+ width="#{child.iconWidth}"
height="#{child.iconHeight}"
+ onclick="window.location = '#{child.url}'">
+ <c:choose>
+ <c:when test="#{ExtensionPoints.compatible ==
child.extensionKey}">
+ <h:outputText
value="#{msg['resource.hub.filter.compatibleGroups']}"/>
+ </c:when>
+ <c:when test="#{ExtensionPoints.mixed ==
child.extensionKey}">
+ <h:outputText
value="#{msg['resource.hub.filter.mixedGroups']}"/>
+ </c:when>
+ <c:when test="#{ExtensionPoints.definitions ==
child.extensionKey}">
+ <h:outputText
value="#{msg['resource.hub.filter.groupDefinitions']}"/>
+ </c:when>
+ </c:choose>
+ </rich:menuItem>
+ </c:when>
+ <c:when test="#{ExtensionPoints.newgroup ==
child.extensionKey}">
+ <ui:remove>***** Groups > NEW RESOURCE GROUP
*****</ui:remove>
+ <rich:menuSeparator
rendered="#{GlobalPermissionsUIBean.inventory}"/>
+ <rich:menuItem submitMode="none"
onclick="window.location = '#{child.url}'"
+
rendered="#{GlobalPermissionsUIBean.inventory}">
+ <h:outputText
value="#{msg['resource.hub.NewGroupLink']}"/>
+ </rich:menuItem>
+ </c:when>
+ <c:when test="#{ExtensionPoints.newgroupdefinition ==
child.extensionKey}">
+ <ui:remove>***** Groups > NEW GROUP DEFINITIONS
*****</ui:remove>
+ <rich:menuItem submitMode="none"
onclick="window.location = '#{child.url}'"
+
rendered="#{GlobalPermissionsUIBean.inventory}">
+ <h:outputText
value="#{msg['resource.hub.NewGroupDefinitionLink']}"/>
+ </rich:menuItem>
+ </c:when>
+ <c:when test="#{ExtensionPoints.favoritegroups ==
child.extensionKey}">
+ <ui:remove>***** Groups > FAVORITE GROUPS
*****</ui:remove>
+ <rich:menuGroup value="#{child.name}"
icon="#{child.iconUrl}">
+ <c:forEach var="group"
items="#{UserPreferencesUIBean.groupFavorites}">
+ <rich:menuItem submitMode="none"
+ icon="/images/icons/#{group.groupCategory ==
'MIXED' ? 'Group' : 'Cluster'}_up_16.png"
+ onclick="window.location =
'/rhq/group/inventory/view.xhtml?groupId=#{group.id}'">
+ <h:outputText value="#{group.name}"/>
+ </rich:menuItem>
+ </c:forEach>
+ </rich:menuGroup>
+ </c:when>
+ <c:when test="${ExtensionPoints.recentlyviewedgroups ==
child.extensionKey}">
+ <ui:remove>***** Groups > RECENTLY VIEWED
*****</ui:remove>
+ <rich:menuGroup value="#{child.name}"
icon="#{child.iconUrl}">
+ <c:forEach var="visit"
items="#{UserPreferencesUIBean.recentVisits}">
+ <c:if test="#{visit.kind == 'COMPATIBLE_GROUP' or
visit.kind == 'MIXED_GROUP'}">
+ <rich:menuItem submitMode="none"
+ icon="/images/icons/#{visit.kind ==
'COMPATIBLE_GROUP' ? 'Cluster' : 'Group'}_up_16.png"
+ onclick="window.location =
'/rhq/group/inventory/view.xhtml?groupId=#{visit.id}'">
+ <h:outputText value="#{visit.name}"/>
+ </rich:menuItem>
+ </c:if>
+ </c:forEach>
+ </rich:menuGroup>
+ </c:when>
+ <c:when test="${ExtensionPoints.searchgroups ==
child.extensionKey}">
+ <ui:remove>***** Groups > SEARCH *****</ui:remove>
+ <rich:menuItem submitMode="none" disabled="true"
iconDisabled="/images/icons/Search_16.png">
+ <h:outputText value="Search: " style="color:
black;"/>
+ <h:panelGroup>
+ <h:inputText id="selectedGroup" style="width:
250px;" immediate="true"
+ onkeypress="return ignoreEnterKey(event);"
/>
+ <rich:suggestionbox id="groupSelectBox"
for="selectedGroup" tokens=",[]"
+ ajaxSingle="true"
immediate="true"
+
suggestionAction="#{ResourceGroupSelectUIBean.autocomplete}"
+ var="result" data="foo"
fetchValue="#{result.groupQueryString}"
+ nothingLabel="No matching groups
found"
+ style="background-color: #cccccc;"
+
onselect="document.location.href='/rhq/group/inventory/view.xhtml?' +
#{rich:element('selectedGroup')}.value"
+ usingSuggestObjects="false"
width="700" height="400">
+ <h:column>
+ <f:facet
name="header">Avail</f:facet>
+ <h:graphicImage
value="/images/icons/availability_green_16.png"
rendered="#{result.implicitUp > 0 and result.implicitDown == 0}"/>
+ <h:graphicImage
value="/images/icons/availability_red_16.png" rendered="#{result.implicitUp
== 0 and result.implicitDown > 0}"/>
+ <h:graphicImage
value="/images/icons/availability_yellow_16.png"
rendered="#{result.implicitUp > 0 and result.implicitDown > 0}"/>
+ <h:graphicImage
value="/images/icons/availability_grey_16.png"
rendered="#{result.implicitUp == 0 and result.implicitDown == 0}"/>
+ </h:column>
+ <h:column>
+ <f:facet
name="header">Group</f:facet>
+ <h:outputText
value="#{result.resourceGroup.name}"/>
+ </h:column>
+ <h:column>
+ <f:facet
name="header">Category</f:facet>
+ <h:outputText value="#{result.category.name}"
rendered="#{result.category.name == 'MIXED'}"/>
+ <h:outputText
value="#{result.resourceGroup.resourceType.name}"
rendered="#{result.category.name == 'COMPATIBLE'}"/>
+ </h:column>
+ </rich:suggestionbox>
+ </h:panelGroup>
+ </rich:menuItem>
+ </c:when>
+ <c:when test="#{ExtensionPoints.about ==
child.extensionKey}">
+ <ui:remove>***** Help > ABOUT *****</ui:remove>
+ <rich:menuItem submitMode="none" id="aboutLink"
icon="#{child.iconUrl}"
+ width="#{child.iconWidth}"
height="#{child.iconHeight}">
+ <h:outputText
value="#{msg['header.about.link']}"/>
+ <rich:componentControl for="aboutPanel"
attachTo="aboutLink" operation="show" event="onclick"/>
+ </rich:menuItem>
+ </c:when>
+ <c:otherwise>
+ <rich:menuItem submitMode="none"
icon="#{child.iconUrl}"
+ width="#{child.iconWidth}"
height="#{child.iconHeight}"
+ onclick="window.location = '#{child.url}'">
+ <h:outputText value="#{child.name}" />
+ </rich:menuItem>
+ </c:otherwise>
+ </c:choose>
+ </c:otherwise>
+ </c:choose>
+ </c:if>
</c:forEach>
- </rich:dropDownMenu>
- </c:if>
- <ui:remove>===== OVERVIEW =====</ui:remove>
-
- <rich:dropDownMenu>
- <f:facet name="label">
- <h:panelGroup>
- <h:outputText value="#{PerspectivesMenuUIBean.overview.name}"
- rendered="#{PerspectivesMenuUIBean.overview.rendered}" />
- </h:panelGroup>
- </f:facet>
-
- <ui:remove>***** Overview > SYSTEM VIEWS *****</ui:remove>
- <rich:menuGroup
- value="#{PerspectivesMenuUIBean.subsystemViews.name}">
- <c:forEach var="menu"
- items="#{PerspectivesMenuUIBean.subsystemMenuItems}">
- <rich:menuItem submitMode="none" icon="#{menu.iconUrl}"
- onclick="window.location = '#{menu.url}'">
- <h:outputText value="#{menu.name}" />
- </rich:menuItem>
- </c:forEach>
- </rich:menuGroup>
-
- <ui:remove>***** Overview > AUTO-DISCOVERY QUEUE *****</ui:remove>
- <rich:menuItem submitMode="none"
- onclick="window.location =
'#{PerspectivesMenuUIBean.autoDiscoveryQueue.url}'">
- <h:outputText
- value="#{PerspectivesMenuUIBean.autoDiscoveryQueue.name}" />
- </rich:menuItem>
-
- <ui:remove>***** Overview > DASHBOARD *****</ui:remove>
- <rich:menuItem submitMode="none"
- onclick="window.location =
'#{PerspectivesMenuUIBean.dashboard.url}'">
- <h:outputText value="#{PerspectivesMenuUIBean.dashboard.name}" />
- </rich:menuItem>
- </rich:dropDownMenu>
-
- <ui:remove>===== RESOURCES =====</ui:remove>
-
- <rich:dropDownMenu id="resourcesMenu">
- <f:facet name="label">
- <h:panelGroup>
- <h:outputText value="#{PerspectivesMenuUIBean.resources.name}" />
- </h:panelGroup>
- </f:facet>
-
- <ui:remove>***** Resources > PLATFORMS *****</ui:remove>
- <rich:menuItem submitMode="none"
- icon="#{PerspectivesMenuUIBean.resourcesPlatform.iconUrl}"
- onclick="window.location =
'#{PerspectivesMenuUIBean.resourcesPlatform.url}'">
- <h:outputText value="#{msg['resource.hub.filter.platform']}"
/>
- </rich:menuItem>
-
- <ui:remove>***** Resources > SERVERS *****</ui:remove>
- <rich:menuItem submitMode="none"
- icon="#{PerspectivesMenuUIBean.resourcesServer.iconUrl}"
- onclick="window.location =
'#{PerspectivesMenuUIBean.resourcesServer.url}'">
- <h:outputText value="#{msg['resource.hub.filter.server']}"
/>
- </rich:menuItem>
-
- <ui:remove>***** Resources > SERVICES *****</ui:remove>
- <rich:menuItem submitMode="none"
- icon="#{PerspectivesMenuUIBean.resourcesService.iconUrl}"
- onclick="window.location =
'#{PerspectivesMenuUIBean.resourcesService.url}'">
- <h:outputText value="#{msg['resource.hub.filter.service']}"
/>
- </rich:menuItem>
-
- <ui:remove>***** Resources > FAVORITE RESOURCES *****</ui:remove>
- <rich:menuGroup
- value="#{PerspectivesMenuUIBean.resourcesFavorite.name}"
- icon="#{PerspectivesMenuUIBean.resourcesFavorite.iconUrl}">
- <c:forEach var="resource"
- items="#{UserPreferencesUIBean.resourceFavorites}">
- <rich:menuItem submitMode="none"
- icon="/images/icons/#{resource.resourceType.category}_up_16.png"
- onclick="window.location =
'#{onf:getDefaultResourceTabURL()}?id=#{resource.id}'">
- <h:outputText value="#{resource.name}" />
- </rich:menuItem>
- </c:forEach>
- </rich:menuGroup>
-
- <ui:remove>***** Resources > RECENTLY VIEWED *****</ui:remove>
- <rich:menuGroup
- value="#{PerspectivesMenuUIBean.resourcesRecentlyViewed.name}"
- icon="#{PerspectivesMenuUIBean.resourcesRecentlyViewed.iconUrl}">
- <c:forEach var="visit"
- items="#{UserPreferencesUIBean.recentVisits}">
- <c:if
- test="#{visit.kind == 'PLATFORM' or visit.kind == 'SERVER'
or visit.kind == 'SERVICE'}">
- <rich:menuItem submitMode="none"
- icon="/images/icons/#{visit.kind.displayName}_up_16.png"
- onclick="window.location =
'#{onf:getDefaultResourceTabURL()}?id=#{visit.id}'">
- <h:outputText value="#{visit.name}" />
- </rich:menuItem>
- </c:if>
- </c:forEach>
- </rich:menuGroup>
-
- <rich:menuSeparator />
-
- <ui:remove>***** Resources > SEARCH *****</ui:remove>
- <rich:menuItem submitMode="none" disabled="true"
- iconDisabled="/images/icons/Search_16.png">
- <h:outputText value="Search: " style="color: black;" />
- <h:panelGroup>
- <h:inputText id="selectedResource" style="width: 250px;"
- immediate="true" onkeypress="return ignoreEnterKey(event);"
/>
- <rich:suggestionbox id="resourceSelectBox"
for="selectedResource"
- tokens=",[]" ajaxSingle="true" immediate="true"
- suggestionAction="#{ResourceSelectUIBean.autocomplete}"
- var="result" data="foo"
fetchValue="#{result.resource.id}"
- nothingLabel="No matching resources found"
- style="background-color: #cccccc;"
- onselect="document.location.href='#{onf:getDefaultResourceTabURL()}?id='
+ #{rich:element('selectedResource')}.value"
- usingSuggestObjects="false" width="700"
height="400">
- <h:column>
- <f:facet name="header">Avail</f:facet>
- <h:graphicImage
- value="/images/icons/availability_#{result.availability == 'UP' ?
'green' : 'red'}_16.png" />
- </h:column>
- <h:column>
- <f:facet name="header">Resource</f:facet>
- <h:outputText value="#{result.resource.name}" />
- </h:column>
- <h:column>
- <f:facet name="header">Parent</f:facet>
- <h:outputText value="#{result.parent.name}" />
- </h:column>
- </rich:suggestionbox>
- </h:panelGroup>
- </rich:menuItem>
-
</rich:dropDownMenu>
-
- <ui:remove>===== GROUPS =====</ui:remove>
-
- <rich:dropDownMenu id="groupsMenu">
- <f:facet name="label">
- <h:panelGroup>
- <h:outputText value="#{PerspectivesMenuUIBean.groups.name}"/>
- </h:panelGroup>
- </f:facet>
-
- <ui:remove>***** Groups > COMPATIBLE GROUPS *****</ui:remove>
- <rich:menuItem submitMode="none"
- icon="#{PerspectivesMenuUIBean.groupsCompatible.iconUrl}"
- onclick="window.location =
'#{PerspectivesMenuUIBean.groupsCompatible.url}'">
- <h:outputText
- value="#{msg['resource.hub.filter.compatibleGroups']}" />
- </rich:menuItem>
-
- <ui:remove>***** Groups > MIXED GROUPS *****</ui:remove>
- <rich:menuItem submitMode="none"
- icon="#{PerspectivesMenuUIBean.groupsMixed.iconUrl}"
- onclick="window.location =
'#{PerspectivesMenuUIBean.groupsMixed.url}'">
- <h:outputText
value="#{msg['resource.hub.filter.mixedGroups']}" />
- </rich:menuItem>
-
- <ui:remove>***** Groups > GROUP DEFINITIONS *****</ui:remove>
- <rich:menuItem submitMode="none"
- icon="#{PerspectivesMenuUIBean.groupsDefinitions.iconUrl}"
- onclick="window.location =
'#{PerspectivesMenuUIBean.groupsDefinitions.url}'">
- <h:outputText
- value="#{msg['resource.hub.filter.groupDefinitions']}" />
- </rich:menuItem>
-
- <rich:menuSeparator rendered="#{GlobalPermissionsUIBean.inventory}"
/>
-
- <ui:remove>***** Groups > NEW RESOURCE GROUP *****</ui:remove>
- <rich:menuItem submitMode="none"
- onclick="window.location =
'#{PerspectivesMenuUIBean.groupsNewResource.url}'"
- rendered="#{GlobalPermissionsUIBean.inventory}">
- <h:outputText value="#{msg['resource.hub.NewGroupLink']}"
/>
- </rich:menuItem>
-
- <ui:remove>***** Groups > NEW GROUP DEFINITIONS *****</ui:remove>
- <rich:menuItem submitMode="none"
- onclick="window.location =
'#{PerspectivesMenuUIBean.groupsNewDefinition.url}'"
- rendered="#{GlobalPermissionsUIBean.inventory}">
- <h:outputText
- value="#{msg['resource.hub.NewGroupDefinitionLink']}" />
- </rich:menuItem>
-
- <rich:menuSeparator />
-
- <ui:remove>***** Groups > FAVORITE GROUPS *****</ui:remove>
- <rich:menuGroup
- value="#{PerspectivesMenuUIBean.groupsFavorite.name}"
- icon="#{PerspectivesMenuUIBean.groupsFavorite.iconUrl}">
- <c:forEach var="group"
- items="#{UserPreferencesUIBean.groupFavorites}">
- <rich:menuItem submitMode="none"
- icon="/images/icons/#{group.groupCategory == 'MIXED' ?
'Group' : 'Cluster'}_up_16.png"
- onclick="window.location =
'/rhq/group/inventory/view.xhtml?groupId=#{group.id}'">
- <h:outputText value="#{group.name}" />
- </rich:menuItem>
- </c:forEach>
- </rich:menuGroup>
-
- <ui:remove>***** Groups > RECENTLY VIEWED *****</ui:remove>
- <rich:menuGroup
- value="#{PerspectivesMenuUIBean.groupsRecentlyViewed.name}"
- icon="#{PerspectivesMenuUIBean.groupsRecentlyViewed.iconUrl}">
- <c:forEach var="visit"
- items="#{UserPreferencesUIBean.recentVisits}">
- <c:if
- test="#{visit.kind == 'COMPATIBLE_GROUP' or visit.kind ==
'MIXED_GROUP'}">
- <rich:menuItem submitMode="none"
- icon="/images/icons/#{visit.kind == 'COMPATIBLE_GROUP' ?
'Cluster' : 'Group'}_up_16.png"
- onclick="window.location =
'/rhq/group/inventory/view.xhtml?groupId=#{visit.id}'">
- <h:outputText value="#{visit.name}" />
- </rich:menuItem>
- </c:if>
- </c:forEach>
- </rich:menuGroup>
-
- <rich:menuSeparator />
-
- <ui:remove>***** Groups > SEARCH *****</ui:remove>
- <rich:menuItem submitMode="none" disabled="true"
- iconDisabled="/images/icons/Search_16.png">
- <h:outputText value="Search: " style="color: black;" />
- <h:panelGroup>
- <h:inputText id="selectedGroup" style="width: 250px;"
- immediate="true" onkeypress="return ignoreEnterKey(event);"
/>
- <rich:suggestionbox id="groupSelectBox"
for="selectedGroup"
- tokens=",[]" ajaxSingle="true" immediate="true"
- suggestionAction="#{ResourceGroupSelectUIBean.autocomplete}"
- var="result" data="foo"
fetchValue="#{result.groupQueryString}"
- nothingLabel="No matching groups found"
- style="background-color: #cccccc;"
- onselect="document.location.href='/rhq/group/inventory/view.xhtml?'
+ #{rich:element('selectedGroup')}.value"
- usingSuggestObjects="false" width="700"
height="400">
- <h:column>
- <f:facet name="header">Avail</f:facet>
- <h:graphicImage value="/images/icons/availability_green_16.png"
- rendered="#{result.implicitUp > 0 and result.implicitDown == 0}"
/>
- <h:graphicImage value="/images/icons/availability_red_16.png"
- rendered="#{result.implicitUp == 0 and result.implicitDown > 0}"
/>
- <h:graphicImage
- value="/images/icons/availability_yellow_16.png"
- rendered="#{result.implicitUp > 0 and result.implicitDown > 0}"
/>
- <h:graphicImage value="/images/icons/availability_grey_16.png"
- rendered="#{result.implicitUp == 0 and result.implicitDown == 0}"
/>
- </h:column>
- <h:column>
- <f:facet name="header">Group</f:facet>
- <h:outputText value="#{result.resourceGroup.name}" />
- </h:column>
- <h:column>
- <f:facet name="header">Category</f:facet>
- <h:outputText value="#{result.category.name}"
- rendered="#{result.category.name == 'MIXED'}" />
- <h:outputText value="#{result.resourceGroup.resourceType.name}"
- rendered="#{result.category.name == 'COMPATIBLE'}" />
- </h:column>
- </rich:suggestionbox>
- </h:panelGroup>
- </rich:menuItem>
-
- </rich:dropDownMenu>
-
- <ui:remove>===== ADMINISTRATION =====</ui:remove>
-
- <rich:dropDownMenu>
- <f:facet name="label">
- <h:panelGroup>
- <h:outputText
value="#{msg['admin.admin.AdministrationTitle']}" />
- </h:panelGroup>
- </f:facet>
-
- <ui:remove>***** Administration > SECURITY *****</ui:remove>
- <rich:menuGroup value="Security">
- <rich:menuItem submitMode="none"
- onclick="window.location =
'/admin/user/UserAdmin.do?mode=list'">
- <h:outputText value="Users" />
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="window.location =
'/admin/role/RoleAdmin.do?mode=list'">
- <h:outputText value="Roles" />
- </rich:menuItem>
- </rich:menuGroup>
-
- <ui:remove>***** Administration > SYSTEM CONFIGURATION
*****</ui:remove>
- <rich:menuGroup value="System Configuration"
- rendered="#{GlobalPermissionsUIBean.settings ||
GlobalPermissionsUIBean.inventory}">
- <rich:menuItem submitMode="none"
- onclick="window.location = '/admin/config/Config.do?mode=edit'"
- rendered="#{GlobalPermissionsUIBean.settings}">
- <h:outputText value="Settings" />
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="window.location =
'/rhq/admin/plugin/plugin-list.xhtml'"
- rendered="#{GlobalPermissionsUIBean.settings}">
- <h:outputText value="Plugins" />
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="window.location =
'/admin/config/EditDefaults.do?mode=monitor&viewMode=all'"
- rendered="#{GlobalPermissionsUIBean.inventory}">
- <h:outputText value="Templates" />
- </rich:menuItem>
- </rich:menuGroup>
-
- <ui:remove>***** Administration > CONTENT *****</ui:remove>
- <rich:menuGroup value="Content"
- rendered="#{GlobalPermissionsUIBean.inventory}">
- <rich:menuItem submitMode="none"
- onclick="window.location =
'/rhq/content/listContentProviders.xhtml'">
- <h:outputText value="Content Providers" />
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="window.location = '/rhq/content/listRepos.xhtml'">
- <h:outputText value="Repositories" />
- </rich:menuItem>
- </rich:menuGroup>
-
- <ui:remove>***** Administration > HIGH AVAILABILITY
*****</ui:remove>
- <rich:menuGroup value="High Availability"
- rendered="#{GlobalPermissionsUIBean.inventory}">
- <rich:menuItem submitMode="none"
- onclick="window.location = '/rhq/ha/listServers.xhtml'">
- <h:outputText value="Servers" />
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="window.location = '/rhq/ha/listAgents.xhtml'">
- <h:outputText value="Agents" />
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="window.location =
'/rhq/ha/listAffinityGroups.xhtml'">
- <h:outputText value="Affinity Groups" />
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="window.location =
'/rhq/ha/listPartitionEvents.xhtml'">
- <h:outputText value="Partition Events" />
- </rich:menuItem>
- </rich:menuGroup>
-
-
-
- <rich:menuGroup value="Reports">
- <rich:menuItem submitMode="none"
- onclick="window.location =
'/rhq/admin/report/resourceInstallReport.xhtml'">
- <h:outputText value="Resource Version Inventory Report" />
- </rich:menuItem>
-
- </rich:menuGroup>
-
- <rich:menuItem submitMode="none"
icon="/images/icons/Save_16.png"
- onclick="window.location = '/rhq/admin/downloads.xhtml'">
- <h:outputText value="Downloads" />
- </rich:menuItem>
-
-
- <rich:menuItem submitMode="none"
- onclick="window.location =
'/admin/license/LicenseAdmin.do?mode=view'"
- rendered="#{GlobalPermissionsUIBean.settings}">
- <h:outputText value="License" />
- </rich:menuItem>
- </rich:dropDownMenu>
-
- <ui:remove>===== DEBUG =====</ui:remove>
-
- <rich:dropDownMenu
- rendered="#{GlobalPermissionsUIBean.superuser and
- GlobalPermissionsUIBean.debugMode}">
- <f:facet name="label">
- <h:panelGroup>
- <h:outputText value="Debug" />
- </h:panelGroup>
- </f:facet>
-
- <rich:menuItem submitMode="none"
- onclick="window.open('/admin/test/sql.jsp')"
target="blank_">
- <h:outputText value="SQL Interface" />
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="window.open('/admin/test/hibernate.jsp')"
target="blank_">
- <h:outputText value="JPQL/HQL Interface" />
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="window.open('/admin/test/browser.jsp')"
target="blank_">
- <h:outputText value="Hibernate Entity Browser" />
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="window.open('/admin/test/control.jsp')"
target="blank_">
- <h:outputText value="Administrative Control" />
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="window.open('/admin/test/email.jsp')"
target="blank_">
- <h:outputText value="Test Email Configuration" />
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="window.open('/admin/test/agent.jsp')"
target="blank_">
- <h:outputText value="Test Agent Communications" />
- </rich:menuItem>
- </rich:dropDownMenu>
-
- <ui:remove>===== HELP =====</ui:remove>
-
- <rich:dropDownMenu>
- <f:facet name="label">
- <h:panelGroup>
- <h:outputText value="#{msg['header.help.link']}" />
- </h:panelGroup>
- </f:facet>
-
- <ui:remove>***** Help > DOCUMENTATION *****</ui:remove>
- <rich:menuItem submitMode="none"
-
onclick="window.open('http://www.redhat.com/docs/en-US/JBoss_ON/...
- target="blank_">
- <h:outputText value="Online Documentation" />
- </rich:menuItem>
-
- <ui:remove>***** Help > SUPPORT CASE *****</ui:remove>
- <rich:menuItem submitMode="none"
-
onclick="window.open('https://support.redhat.com/jbossnetwork/re...
- target="blank_">
- <h:outputText value="Open a Support Case" />
- </rich:menuItem>
-
- <rich:menuSeparator />
-
- <ui:remove>***** Help > ABOUT *****</ui:remove>
- <rich:menuItem submitMode="none" id="aboutLink"
- icon="/images/icons/availability_grey_16.png">
- <h:outputText value="#{msg['header.about.link']}" />
- <rich:componentControl for="aboutPanel"
attachTo="aboutLink"
- operation="show" event="onclick" />
- </rich:menuItem>
- </rich:dropDownMenu>
- </rich:toolBarGroup>
-
-
- <rich:toolBarGroup location="right">
-
- <a4j:status id="commonStatus" layout="block"
- startStyle=" filter:alpha(opacity=85); -moz-opacity: 0.85; opacity: 0.85;
vertical-align: middle;">
- <f:facet name="start">
- <img src="/images/ajax-loader.gif" alt=""
- style="vertical-align: middle;" />
- <span style="vertical-align: middle;">Loading...</span>
- </f:facet>
- </a4j:status>
-
-
-
-
-
- <rich:dropDownMenu rendered="#{request.method == 'GET'}">
- <f:facet name="label">
- <h:panelGroup>
- <h:graphicImage value="/images/refreshRunning.gif"
- rendered="#{UserPreferencesUIBean.pageRefresh != 0}" />
- <h:graphicImage value="/images/refreshStopped.gif"
- rendered="#{UserPreferencesUIBean.pageRefresh == 0}" />
- <span id="refreshTimeLeft" style="width:
0px;"><h:outputText
- value="#{UserPreferencesUIBean.pageRefresh}"
- rendered="#{UserPreferencesUIBean.pageRefresh != 0}"
/></span>
-
- </h:panelGroup>
- </f:facet>
-
- <ui:remove>***** Logged in as > EDIT DETAILS *****</ui:remove>
-
-
-
- <rich:menuItem submitMode="none"
- onclick="updatePageRefresh('#{request.getAttribute('javax.servlet.forward.request_uri')}',
0)">
- <h:outputText value="Stop" />
- <f:facet name="icon">
- <h:graphicImage
- value="/images/#{UserPreferencesUIBean.pageRefresh == 0 ?
'check.png' : 'spacer.gif'}"
- width="16" height="16" />
- </f:facet>
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="updatePageRefresh('#{request.getAttribute('javax.servlet.forward.request_uri')}',60)">
- <h:outputText value="Refresh every 1 minute" />
- <f:facet name="icon">
- <h:graphicImage
- value="/images/#{UserPreferencesUIBean.pageRefresh == 60 ?
'check.png' : 'spacer.gif'}"
- width="16" height="16" />
- </f:facet>
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="updatePageRefresh('#{request.getAttribute('javax.servlet.forward.request_uri')}',300)">
- <h:outputText value="Refresh every 5 minutes" />
- <f:facet name="icon">
- <h:graphicImage
- value="/images/#{UserPreferencesUIBean.pageRefresh == 300 ?
'check.png' : 'spacer.gif'}"
- width="16" height="16" />
- </f:facet>
- </rich:menuItem>
- <rich:menuItem submitMode="none"
- onclick="updatePageRefresh('#{request.getAttribute('javax.servlet.forward.request_uri')}',600)">
- <h:outputText value="Refresh every 10 minutes" />
- <f:facet name="icon">
- <h:graphicImage
- value="/images/#{UserPreferencesUIBean.pageRefresh == 600 ?
'check.png' : 'spacer.gif'}"
- width="16" height="16" />
- </f:facet>
- </rich:menuItem>
-
- </rich:dropDownMenu>
-
- <ui:remove>===== LOGGED IN AS =====</ui:remove>
-
-
- <rich:dropDownMenu>
- <f:facet name="label">
- <h:panelGroup>
- <h:outputText
- value="Logged in as #{UserPreferencesUIBean.subject.name}" />
- </h:panelGroup>
- </f:facet>
-
- <ui:remove>***** Logged in as > EDIT DETAILS *****</ui:remove>
- <rich:menuItem submitMode="none"
- onclick="window.location =
'/admin/user/UserAdmin.do?mode=edit&u=#{UserPreferencesUIBean.subject.id}'">
- <h:outputText value="Edit Details" />
- </rich:menuItem>
-
- <ui:remove>***** Logged in as > CHANGE PASSWORD *****</ui:remove>
- <rich:menuItem submitMode="none"
- onclick="window.location =
'/admin/user/UserAdmin.do?mode=editPass&u=#{UserPreferencesUIBean.subject.id}'">
- <h:outputText value="Change Password" />
- </rich:menuItem>
-
- <rich:menuSeparator />
-
- <ui:remove>***** Logged in as > LOGOUT *****</ui:remove>
- <rich:menuItem submitMode="none"
- onclick="window.location = '/Logout.do'">
- <h:outputText value="Logout" />
- </rich:menuItem>
- </rich:dropDownMenu>
-
- </rich:toolBarGroup>
- </rich:toolBar>
-
+ </c:if>
+ </c:if>
+ </c:forEach>
+ </c:if>
+ </rich:toolBarGroup>
+
+ <ui:remove>===== Display CoreMenu right aligned components
=====</ui:remove>
+ <rich:toolBarGroup location="right">
+ <a4j:status id="commonStatus" layout="block"
+ startStyle=" filter:alpha(opacity=85); -moz-opacity: 0.85;
opacity: 0.85; vertical-align: middle;">
+ <f:facet name="start">
+ <img src="/images/ajax-loader.gif" alt=""
style="vertical-align:middle;"/> <span
+ style="vertical-align: middle;">Loading...</span>
+ </f:facet>
+ </a4j:status>
+
+ <c:if test="#{PerspectivesMenuUIBean.coreMenuBar.rendered}">
+ <ui:remove>===== If CoreMenu UI hasn't been disabled
=====</ui:remove>
+ <ui:remove>===== Iterate through children[Top Menu Items - RIGHT ALIGNED]
=====</ui:remove>
+ <c:forEach var="top"
+ items="#{PerspectivesMenuUIBean.coreMenuBar.childMenuItems}">
+ <c:if test="#{top.rendered and top.alignLeft == false}">
+
+ <ui:remove>===== Refresh item =====</ui:remove>
+ <c:if test="#{ExtensionPoints.refresh == top.extensionKey}">
+ <rich:dropDownMenu rendered="#{request.method ==
'GET'}">
+ <f:facet name="label">
+ <h:panelGroup>
+ <h:graphicImage value="/images/refreshRunning.gif"
rendered="#{UserPreferencesUIBean.pageRefresh != 0}"/>
+ <h:graphicImage value="/images/refreshStopped.gif"
rendered="#{UserPreferencesUIBean.pageRefresh == 0}"/>
+ <span id="refreshTimeLeft" style="width:
0px;"><h:outputText value="#{UserPreferencesUIBean.pageRefresh}"
rendered="#{UserPreferencesUIBean.pageRefresh != 0}"/></span>
+ </h:panelGroup>
+ </f:facet>
+ <rich:menuItem submitMode="none"
onclick="updatePageRefresh('#{request.getAttribute('javax.servlet.forward.request_uri')}',
0)">
+ <h:outputText value="Stop"/>
+ <f:facet name="icon">
+ <h:graphicImage
value="/images/#{UserPreferencesUIBean.pageRefresh == 0 ? 'check.png' :
'spacer.gif'}" width="16" height="16"/>
+ </f:facet>
+ </rich:menuItem>
+ <rich:menuItem submitMode="none"
onclick="updatePageRefresh('#{request.getAttribute('javax.servlet.forward.request_uri')}',60)">
+ <h:outputText value="Refresh every 1 minute"/>
+ <f:facet name="icon">
+ <h:graphicImage
value="/images/#{UserPreferencesUIBean.pageRefresh == 60 ? 'check.png' :
'spacer.gif'}" width="16" height="16"/>
+ </f:facet>
+ </rich:menuItem>
+ <rich:menuItem submitMode="none"
onclick="updatePageRefresh('#{request.getAttribute('javax.servlet.forward.request_uri')}',300)">
+ <h:outputText value="Refresh every 5 minutes"/>
+ <f:facet name="icon">
+ <h:graphicImage
value="/images/#{UserPreferencesUIBean.pageRefresh == 300 ? 'check.png' :
'spacer.gif'}" width="16" height="16"/>
+ </f:facet>
+ </rich:menuItem>
+ <rich:menuItem submitMode="none"
onclick="updatePageRefresh('#{request.getAttribute('javax.servlet.forward.request_uri')}',600)">
+ <h:outputText value="Refresh every 10 minutes"/>
+ <f:facet name="icon">
+ <h:graphicImage
value="/images/#{UserPreferencesUIBean.pageRefresh == 600 ? 'check.png' :
'spacer.gif'}" width="16" height="16"/>
+ </f:facet>
+ </rich:menuItem>
+ </rich:dropDownMenu>
+ </c:if>
+ <ui:remove>===== LoggedInAs item =====</ui:remove>
+ <c:if test="#{ExtensionPoints.loggedinas ==
top.extensionKey}">
+ <rich:dropDownMenu>
+ <f:facet name="label">
+ <h:panelGroup>
+ <h:outputText value="Logged in as
#{UserPreferencesUIBean.subject.name}"/>
+ </h:panelGroup>
+ </f:facet>
+ <ui:remove> Now process the children MenuItems if they exist
</ui:remove>
+ <c:forEach var="child"
+ items="#{top.childMenuItems}">
+ <c:if test="#{child.rendered}">
+ <c:choose>
+ <c:when test="${child.childMenuItems.size > 0}">
+ <rich:menuGroup value="#{child.name}">
+ <c:forEach var="grandchild"
+ items="#{child.childMenuItems}">
+ <c:choose>
+ <c:when test="#{grandchild.menuSeparator}">
+ <rich:menuSeparator/>
+ </c:when>
+ <c:otherwise>
+ <rich:menuItem submitMode="none"
icon="#{grandchild.iconUrl}"
+ width="#{grandchild.iconWidth}"
height="#{grandchild.iconHeight}"
+ onclick="window.location = '#{grandchild.url}'">
+ <h:outputText value="#{grandchild.name}" />
+ </rich:menuItem>
+ </c:otherwise>
+ </c:choose>
+ </c:forEach>
+ </rich:menuGroup>
+ </c:when>
+ <c:otherwise>
+ <c:choose>
+ <c:when test="#{child.menuSeparator}">
+ <rich:menuSeparator/>
+ </c:when>
+ <c:otherwise>
+ <rich:menuItem submitMode="none"
icon="#{child.iconUrl}"
+ width="#{child.iconWidth}"
height="#{child.iconHeight}"
+ onclick="window.location = '#{child.url}'">
+ <h:outputText value="#{child.name}" />
+ </rich:menuItem>
+ </c:otherwise>
+ </c:choose>
+ </c:otherwise>
+ </c:choose>
+ </c:if>
+ </c:forEach>
+ </rich:dropDownMenu>
+ </c:if>
+ <c:if test="#{ExtensionPoints.loggedinas != top.extensionKey and
ExtensionPoints.refresh != top.extensionKey}">
+ <rich:dropDownMenu>
+ <f:facet name="label">
+ <h:panelGroup>
+ <h:outputText value="#{top.name}"/>
+ </h:panelGroup>
+ </f:facet>
+ <ui:remove> Now process the children MenuItems if they exist
</ui:remove>
+ <c:forEach var="child"
+ items="#{top.childMenuItems}">
+ <c:if test="#{child.rendered}">
+ <c:choose>
+ <c:when test="${child.childMenuItems.size > 0}">
+ <rich:menuGroup value="#{child.name}">
+ <c:forEach var="grandchild"
+ items="#{child.childMenuItems}">
+ <c:choose>
+ <c:when test="#{grandchild.menuSeparator}">
+ <rich:menuSeparator/>
+ </c:when>
+ <c:otherwise>
+ <rich:menuItem submitMode="none"
icon="#{grandchild.iconUrl}"
+ width="#{grandchild.iconWidth}"
height="#{grandchild.iconHeight}"
+ onclick="window.location = '#{grandchild.url}'">
+ <h:outputText value="#{grandchild.name}" />
+ </rich:menuItem>
+ </c:otherwise>
+ </c:choose>
+ </c:forEach>
+ </rich:menuGroup>
+ </c:when>
+ <c:otherwise>
+ <c:choose>
+ <c:when test="#{child.menuSeparator}">
+ <rich:menuSeparator/>
+ </c:when>
+ <c:otherwise>
+ <rich:menuItem submitMode="none"
icon="#{child.iconUrl}"
+ width="#{child.iconWidth}"
height="#{child.iconHeight}"
+ onclick="window.location = '#{child.url}'">
+ <h:outputText value="#{child.name}" />
+ </rich:menuItem>
+ </c:otherwise>
+ </c:choose>
+ </c:otherwise>
+ </c:choose>
+ </c:if>
+ </c:forEach>
+ </rich:dropDownMenu>
+ </c:if>
+ </c:if>
+ </c:forEach>
+ </c:if>
+ </rich:toolBarGroup>
+ </rich:toolBar>
+
<rich:modalPanel id="aboutPanel" resizeable="false"
width="320"
height="250">
<f:facet name="header">