From 18f9c871468b8cb0e47803f63e428373281f7172 Mon Sep 17 00:00:00 2001 From: wenshao Date: Thu, 2 Jun 2011 01:33:04 +0000 Subject: [PATCH] jconsole git-svn-id: http://code.alibabatech.com/svn/druid/trunk@232 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../alibaba/druid/jconsole/DruidPanel.java | 33 +++++++++++-------- .../com/alibaba/druid/jconsole/NodeInfo.java | 21 +++++++++++- .../com/alibaba/druid/jconsole/NodeType.java | 4 ++- 3 files changed, 42 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/alibaba/druid/jconsole/DruidPanel.java b/src/main/java/com/alibaba/druid/jconsole/DruidPanel.java index 9dbaea1ff1..9421f148d8 100644 --- a/src/main/java/com/alibaba/druid/jconsole/DruidPanel.java +++ b/src/main/java/com/alibaba/druid/jconsole/DruidPanel.java @@ -52,7 +52,7 @@ public class DruidPanel extends JPanel { mainSplit.setBorder(BorderFactory.createEmptyBorder()); rootNode = new DefaultMutableTreeNode("root", true); - dataSourcesNode = new DefaultMutableTreeNode("DataSources", true); + dataSourcesNode = new DefaultMutableTreeNode(new NodeInfo(null, NodeType.DataSources, null, "DataSources"), true); rootNode.add(dataSourcesNode); tree = new JTree(rootNode); @@ -77,16 +77,22 @@ public class DruidPanel extends JPanel { add(mainSplit); - // init(); } private void treeSelect(TreeSelectionEvent e) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.getPath().getLastPathComponent(); - Object userData = node.getUserObject(); - - if (userData instanceof DataSourceInfo) { - DataSourceInfo dataSourceInfo = (DataSourceInfo) userData; + + Object userObject = node.getUserObject(); + NodeInfo nodeInfo = (NodeInfo) userObject; + + if (nodeInfo == null) { + mainSplit.setRightComponent(sheet); + return; + } + + if (nodeInfo.getType() == NodeType.DataSource) { + DataSourceInfo dataSourceInfo = (DataSourceInfo) nodeInfo.getData(); mainSplit.setRightComponent(new DataSourcePanel(dataSourceInfo)); } else { mainSplit.setRightComponent(sheet); @@ -155,16 +161,14 @@ public class DruidPanel extends JPanel { DataSourceInfo dataSourceInfo = new DataSourceInfo(conn, rowData); - DefaultMutableTreeNode dataSourceNode = new DefaultMutableTreeNode(dataSourceInfo.getName(), true); - dataSourceNode.setUserObject(new NodeInfo(conn, NodeType.DataSource)); - - DefaultMutableTreeNode connections = new DefaultMutableTreeNode("Connections", true); + DefaultMutableTreeNode dataSourceNode = new DefaultMutableTreeNode(new NodeInfo(conn, NodeType.DataSource, dataSourceInfo, + dataSourceInfo.getName()), true); + DefaultMutableTreeNode connections = new DefaultMutableTreeNode(new NodeInfo(conn, NodeType.Connections, "Connections", "Connections"), true); { } dataSourceNode.add(connections); - DefaultMutableTreeNode sqlListNode = new DefaultMutableTreeNode("SQL", true); - sqlListNode.setUserObject(new NodeInfo(conn, NodeType.SQL)); + DefaultMutableTreeNode sqlListNode = new DefaultMutableTreeNode(new NodeInfo(conn, NodeType.SQL, dataSourceInfo.getName(), "SQL"), true); dataSourceNode.add(sqlListNode); dataSourcesNode.add(dataSourceNode); @@ -176,12 +180,12 @@ public class DruidPanel extends JPanel { DefaultMutableTreeNode dataSource = new DefaultMutableTreeNode(name, true); - DefaultMutableTreeNode connections = new DefaultMutableTreeNode("Connections", true); + DefaultMutableTreeNode connections = new DefaultMutableTreeNode(new NodeInfo(conn, NodeType.Connections, "Connections", "Connections"), true); { } dataSource.add(connections); - DefaultMutableTreeNode sqlListNode = new DefaultMutableTreeNode("SQL", true); + DefaultMutableTreeNode sqlListNode = new DefaultMutableTreeNode(new NodeInfo(conn, NodeType.SQL, name, "SQL"), true); { } @@ -207,6 +211,7 @@ public class DruidPanel extends JPanel { frame.pack(); frame.setSize(1024, 768); + // final String urlPath = "/jndi/rmi://192.168.1.103:9005/jmxrmi"; final String urlPath = "/jndi/rmi://10.20.138.25:9006/jmxrmi"; JMXServiceURL jmxUrl = new JMXServiceURL("rmi", "", 0, urlPath); diff --git a/src/main/java/com/alibaba/druid/jconsole/NodeInfo.java b/src/main/java/com/alibaba/druid/jconsole/NodeInfo.java index e541a4683e..8969ffc3f8 100644 --- a/src/main/java/com/alibaba/druid/jconsole/NodeInfo.java +++ b/src/main/java/com/alibaba/druid/jconsole/NodeInfo.java @@ -6,10 +6,14 @@ public class NodeInfo { private MBeanServerConnection connection; private NodeType type; + private Object data; + private String name; - public NodeInfo(MBeanServerConnection connection, NodeType type){ + public NodeInfo(MBeanServerConnection connection, NodeType type, Object data, String name){ this.connection = connection; this.type = type; + this.data = data; + this.name = name; } public MBeanServerConnection getConnection() { @@ -20,4 +24,19 @@ public class NodeInfo { return type; } + public Object getData() { + return data; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String toString() { + return name; + } } diff --git a/src/main/java/com/alibaba/druid/jconsole/NodeType.java b/src/main/java/com/alibaba/druid/jconsole/NodeType.java index a247af3125..ddce15b3c1 100644 --- a/src/main/java/com/alibaba/druid/jconsole/NodeType.java +++ b/src/main/java/com/alibaba/druid/jconsole/NodeType.java @@ -1,6 +1,8 @@ package com.alibaba.druid.jconsole; public enum NodeType { + DataSources, DataSource, - SQL + SQL, + Connections }