[Mc4j-cvs] mc4j/src/org/mc4j/console/dashboard/global GlobalDashboardChildren.java,1.5,1.6 GlobalDas
Brought to you by:
ghinkl
From: Greg H. <gh...@us...> - 2004-04-07 03:12:25
|
Update of /cvsroot/mc4j/mc4j/src/org/mc4j/console/dashboard/global In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16121/src/org/mc4j/console/dashboard/global Modified Files: GlobalDashboardChildren.java GlobalDashboardNode.java GlobalDashboardSetNode.java OpenDashboardAction.java Log Message: Support for the new dashboard matching system. Also support for a dashboard location or path that can be an arbitrary hierarchical layout for global dashboards. Index: OpenDashboardAction.java =================================================================== RCS file: /cvsroot/mc4j/mc4j/src/org/mc4j/console/dashboard/global/OpenDashboardAction.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** OpenDashboardAction.java 19 Feb 2004 19:31:42 -0000 1.5 --- OpenDashboardAction.java 7 Apr 2004 02:59:16 -0000 1.6 *************** *** 47,59 **** final GlobalDashboardNode node = (GlobalDashboardNode) nodes[0]; ! Map context = new HashMap(); context.put(Dashboard.CONTEXT_MBEAN_SERVER, node.getConnectionNode().getMBeanServer()); ! if (node.getDashboard().isIsMultiBean()) { ! context.put(Dashboard.CONTEXT_MBEAN_LIST, node.getMbeanNodeList()); ! } else { ! context.put(Dashboard.CONTEXT_OBJECT_NAME, node.getMBeanNode().getObjectName()); ! context.put(Dashboard.CONTEXT_MBEAN_NODE, node.getMBeanNode()); ! } DashboardFactory factory = new DashboardFactory(); --- 47,56 ---- final GlobalDashboardNode node = (GlobalDashboardNode) nodes[0]; ! ! ! Map context = node.getDashboard().getContextStarter(); context.put(Dashboard.CONTEXT_MBEAN_SERVER, node.getConnectionNode().getMBeanServer()); ! DashboardFactory factory = new DashboardFactory(); *************** *** 63,66 **** --- 60,64 ---- SwingUtilities.invokeLater(new Runnable() { public void run() { + tc.setActivatedNodes(new Node[] { node }); tc.setDisplayName(node.getDashboard().getName()); tc.open(); Index: GlobalDashboardSetNode.java =================================================================== RCS file: /cvsroot/mc4j/mc4j/src/org/mc4j/console/dashboard/global/GlobalDashboardSetNode.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** GlobalDashboardSetNode.java 7 Feb 2004 16:10:41 -0000 1.2 --- GlobalDashboardSetNode.java 7 Apr 2004 02:59:16 -0000 1.3 *************** *** 21,24 **** --- 21,25 ---- import org.openide.nodes.AbstractNode; + import org.openide.nodes.Children; import org.openide.util.HelpCtx; import org.openide.util.actions.NodeAction; *************** *** 26,30 **** import org.mc4j.console.Refreshable; ! import org.mc4j.console.bean.DashboardManager; import org.mc4j.console.bean.RefreshAction; import org.mc4j.console.connection.ConnectionNode; --- 27,31 ---- import org.mc4j.console.Refreshable; ! import org.mc4j.console.dashboard.DashboardManager; import org.mc4j.console.bean.RefreshAction; import org.mc4j.console.connection.ConnectionNode; *************** *** 61,67 **** } public void refresh() { ! DashboardManager.getInstance().initialize(); ((GlobalDashboardChildren)getChildren()).loadChildren(); } --- 62,78 ---- } + public GlobalDashboardSetNode(ConnectionNode parentConnection, String name) { + super(new Children.Array()); + this.parentConnection = parentConnection; + setIconBase("org/mc4j/console/dashboard/global/GlobalDashboardSetIcon"); + + setName(name); + setDisplayName(name); + + } + public void refresh() { ! org.mc4j.console.dashboard.DashboardManager.getInstance().initialize(); ((GlobalDashboardChildren)getChildren()).loadChildren(); } Index: GlobalDashboardChildren.java =================================================================== RCS file: /cvsroot/mc4j/mc4j/src/org/mc4j/console/dashboard/global/GlobalDashboardChildren.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** GlobalDashboardChildren.java 7 Feb 2004 16:10:41 -0000 1.5 --- GlobalDashboardChildren.java 7 Apr 2004 02:59:16 -0000 1.6 *************** *** 26,29 **** --- 26,30 ---- import java.util.List; import java.util.Set; + import java.util.StringTokenizer; import org.openide.nodes.AbstractNode; *************** *** 31,38 **** import org.openide.nodes.Node; ! import org.mc4j.console.bean.DashboardManager; import org.mc4j.console.bean.MBeanNode; import org.mc4j.console.connection.ConnectionNode; import org.mc4j.console.dashboard.Dashboard; /** --- 32,41 ---- import org.openide.nodes.Node; ! import org.mc4j.console.dashboard.DashboardManager; import org.mc4j.console.bean.MBeanNode; import org.mc4j.console.connection.ConnectionNode; import org.mc4j.console.dashboard.Dashboard; + import org.mc4j.console.dashboard.DashboardLoader; + import org.mc4j.console.dashboard.match.MatchExecutor; /** *************** *** 97,129 **** Set dashboards = DashboardManager.getInstance().getDashboards(); - List mbeanNodes = this.connectionNode.getMBeanList(); for (Iterator iterator = dashboards.iterator(); iterator.hasNext();) { Dashboard dashboard = (Dashboard) iterator.next(); ! Node globalDashboardNode = null; ! if (dashboard.isGlobal()) { ! if (dashboard.isIsMultiBean()) { ! List list = new ArrayList(); ! for (int i = 0; i < mbeanNodes.size(); i++) { ! MBeanNode mBeanNode = (MBeanNode) mbeanNodes.get(i); ! if (dashboard.matches(mBeanNode.getObjectName())) { ! list.add(mBeanNode); ! } ! } ! if (!list.isEmpty()) ! globalDashboardNode = new GlobalDashboardNode(dashboard, this.connectionNode, list); ! } else { ! for (int i = 0; i < mbeanNodes.size(); i++) { ! MBeanNode mBeanNode = (MBeanNode) mbeanNodes.get(i); ! if (dashboard.matches(mBeanNode.getObjectName())) { ! globalDashboardNode = new GlobalDashboardNode(dashboard, this.connectionNode, mBeanNode); ! } ! } } ! if (globalDashboardNode != null) ! add(new Node[] { globalDashboardNode } ); } } --- 100,122 ---- Set dashboards = DashboardManager.getInstance().getDashboards(); for (Iterator iterator = dashboards.iterator(); iterator.hasNext();) { Dashboard dashboard = (Dashboard) iterator.next(); ! GlobalDashboardNode globalDashboardNode = null; ! List matches = MatchExecutor.getInstance().matchGlobalDashboards(dashboard, connectionNode); ! if (matches != null) { ! for (int i = 0; i < matches.size(); i++) { ! Dashboard matchedDashboard = (Dashboard) matches.get(i); ! globalDashboardNode = ! new GlobalDashboardNode(matchedDashboard,connectionNode); } ! } ! ! ! if (globalDashboardNode != null) { ! insertIntoTree(globalDashboardNode); } } *************** *** 133,135 **** --- 126,165 ---- } + + protected void insertIntoTree(GlobalDashboardNode dashboardNode) { + + + // e.g. location="/JVM" + String location = dashboardNode.getDashboard().getDashboardMatch().getLocation(); + + if (location == null) { + add(new Node[] { dashboardNode }); + } else { + StringTokenizer tok = new StringTokenizer(location, "/"); + GlobalDashboardSetNode base = (GlobalDashboardSetNode) getNode(); + while (tok.hasMoreTokens()) { + String path = tok.nextToken(); + GlobalDashboardSetNode pathNode = findChild(base, path); + if (pathNode == null) { + pathNode = new GlobalDashboardSetNode(connectionNode, path); + base.getChildren().add(new Node[] { pathNode }); + } + base = pathNode; + } + base.getChildren().add(new Node[] { dashboardNode }); + + } + } + + protected GlobalDashboardSetNode findChild(Node parent, String name) { + Node[] children = parent.getChildren().getNodes(); + for (int i = 0; i < children.length; i++) { + Node child = children[i]; + if (name.equals(child.getName()) && child instanceof GlobalDashboardSetNode) { + return (GlobalDashboardSetNode) child; + } + } + return null; + } + } Index: GlobalDashboardNode.java =================================================================== RCS file: /cvsroot/mc4j/mc4j/src/org/mc4j/console/dashboard/global/GlobalDashboardNode.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** GlobalDashboardNode.java 7 Feb 2004 16:10:41 -0000 1.3 --- GlobalDashboardNode.java 7 Apr 2004 02:59:16 -0000 1.4 *************** *** 28,31 **** --- 28,33 ---- import org.openide.util.HelpCtx; import org.openide.util.actions.SystemAction; + import org.openide.cookies.PrintCookie; + import org.openide.windows.IOProvider; import org.mc4j.console.bean.MBeanNode; *************** *** 50,53 **** --- 52,71 ---- private Dashboard dashboard; + public GlobalDashboardNode(Dashboard dashboard, ConnectionNode connectionNode) { + super(Children.LEAF); + + this.dashboard = dashboard; + this.connectionNode = connectionNode; + + setIconBase("org/mc4j/console/dashboard/global/GlobalDashboardIcon"); + + setName(dashboard.getName()); + + setDisplayName(dashboard.getName()); + + setShortDescription(dashboard.getDescription()); + + + } public GlobalDashboardNode(Dashboard dashboard, ConnectionNode connectionNode, MBeanNode mbeanNode) { *************** *** 65,68 **** --- 83,92 ---- setShortDescription("Dashboard on " + mbeanNode.getObjectName().getCanonicalName()); + + getCookieSet().add(new PrintCookie() { + public void print() { + IOProvider.getDefault().getStdOut().println("I'd like to print something"); + } + }); } |