git-svn-id: http://code.alibabatech.com/svn/druid/trunk@252 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
wenshao
2011-06-03 01:40:35 +00:00
parent d924f2d56d
commit 90d4d1508e
2 changed files with 56 additions and 14 deletions
@@ -166,7 +166,7 @@ public class DruidPanel extends JPanel {
NodeInfo dataSourceNodeInfo = new NodeInfo(conn, statInstance, NodeType.DataSource, dataSourceInfo, dataSourceInfo.getName());
DefaultMutableTreeNode dataSourceNode = new DefaultMutableTreeNode(dataSourceNodeInfo, true);
NodeInfo connectionsNodeInfo = new NodeInfo(conn, statInstance, NodeType.Connections, dataSourceInfo, "Connections");
DefaultMutableTreeNode connections = new DefaultMutableTreeNode(connectionsNodeInfo, true);
{
@@ -198,8 +198,8 @@ 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";
// 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);
JMXConnector connector = JMXConnectorFactory.connect(jmxUrl);
@@ -8,6 +8,7 @@ import java.awt.event.MouseEvent;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import javax.management.MBeanServerConnection;
@@ -22,6 +23,7 @@ import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableRowSorter;
public class SQLPanel extends JPanel {
@@ -33,12 +35,13 @@ public class SQLPanel extends JPanel {
private JTable table;
private SQLTableModel tableModel;
private SQLTableRowSorter sorter;
private String[] columnNames = { "ID", "File", "Name", "SQL", "ExecCount",
"ErrorCount", "TotalTime", "LastTime", "MaxTimespan", "LastError",
"TotalTime", "EffectedRows", "FetchRowCount", "Running", "ConcurrentMax",
"EffectedRowCount", "FetchRowCount", "ConcurrentMax", "Running" };
"MaxTimespan", "LastTime", "LastError","ErrorCount", };
public SQLPanel(MBeanServerConnection connection, ObjectInstance objectInstance, DataSourceInfo dataSourceInfo){
super();
@@ -67,17 +70,17 @@ public class SQLPanel extends JPanel {
row[columnIndex++] = rowData.get("Name");
row[columnIndex++] = rowData.get("SQL");
row[columnIndex++] = rowData.get("ExecuteCount");
row[columnIndex++] = rowData.get("ErrorCount");
row[columnIndex++] = rowData.get("TotalTime");
row[columnIndex++] = rowData.get("LastTime");
row[columnIndex++] = rowData.get("MaxTimespan");
row[columnIndex++] = rowData.get("LastError");
row[columnIndex++] = rowData.get("EffectedRowCount");
row[columnIndex++] = rowData.get("FetchRowCount");
row[columnIndex++] = rowData.get("ConcurrentMax");
row[columnIndex++] = rowData.get("RunningCount");
row[columnIndex++] = rowData.get("ConcurrentMax");
row[columnIndex++] = rowData.get("MaxTimespan");
row[columnIndex++] = rowData.get("LastTime");
row[columnIndex++] = rowData.get("LastError");
row[columnIndex++] = rowData.get("ErrorCount");
rowList.add(row);
}
@@ -87,8 +90,10 @@ public class SQLPanel extends JPanel {
TableColumnModel columnModel = new TableColumnModel();
tableModel = new SQLTableModel(rows);
sorter = new SQLTableRowSorter(tableModel);
table = new JTable(tableModel, columnModel);
table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
table.setRowSorter(sorter);
table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
@@ -270,7 +275,7 @@ public class SQLPanel extends JPanel {
}
{
TableColumn column = getColumn(7);
TableColumn column = getColumn(11);
column.setCellRenderer(new DateRenderer());
column.setPreferredWidth(120);
}
@@ -290,7 +295,7 @@ public class SQLPanel extends JPanel {
String sql = (String) value;
String formattedSql = SQLDetailDialog.format(sql);
setText(sql);
setToolTipText("<html><pre>" + formattedSql + "</pre></html>");
setToolTipText("<html><pre>" + formattedSql + "</pre></html>");
}
}
@@ -321,4 +326,41 @@ public class SQLPanel extends JPanel {
setText((id == null) ? "" : id.toString());
}
}
static class SQLTableRowSorter extends TableRowSorter<SQLTableModel> {
public SQLTableRowSorter(SQLTableModel model){
super(model);
}
public Comparator<?> getComparator(int column) {
switch (column) {
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 13:
return new LongComparator();
default:
return super.getComparator(column);
}
}
}
static class LongComparator implements Comparator<Object> {
@Override
public int compare(Object a, Object b) {
long aValue = Long.parseLong(a.toString());
long bValue = Long.parseLong(b.toString());
if (aValue == bValue) {
return 0;
}
return aValue > bValue ? 1 : -1;
}
}
}