/* * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package sun.tools.jconsole.inspector; import java.awt.BorderLayout;import java.awt.Color;import java.awt.Component;import java.awt.GridLayout;import java.util.*;import javax.management.*;import javax.swing.*;import javax.swing.border.TitledBorder;import javax.swing.event.*;import javax.swing.table.*;import sun.tools.jconsole.Resources; import static sun.tools.jconsole.Utilities.*; @SuppressWarnings("serial")public class XMBeanInfo extends JPanel { private static final Color lightYellow = new Color(255, 255, 128); private final int NAME_COLUMN = 0; private final int VALUE_COLUMN = 1; private final String[] columnNames = { Resources.getText("Name"), Resources.getText("Value") }; private JTable infoTable = new JTable(); private JTable descTable = new JTable(); private JPanel infoBorderPanel = new JPanel(new BorderLayout()); private JPanel descBorderPanel = new JPanel(new BorderLayout()); private static class ReadOnlyDefaultTableModel extends DefaultTableModel { @Override public void setValueAt(Object value, int row, int col) { } } private static class TableRowDivider { private String tableRowDividerText; public TableRowDivider(String tableRowDividerText) { this.tableRowDividerText = tableRowDividerText; } @Override public String toString() { return tableRowDividerText; } } private static MBeanInfoTableCellRenderer renderer = new MBeanInfoTableCellRenderer(); private static class MBeanInfoTableCellRenderer extends DefaultTableCellRenderer { @Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component comp = super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column); if (value instanceof TableRowDivider) { JLabel label = new JLabel(value.toString()); label.setBackground(ensureContrast(lightYellow, label.getForeground())); label.setOpaque(true); return label; } return comp; } } private static TableCellEditor editor = new MBeanInfoTableCellEditor(new JTextField()); private static class MBeanInfoTableCellEditor extends Utils.ReadOnlyTableCellEditor { public MBeanInfoTableCellEditor(JTextField tf) { super(tf); } @Override public Component getTableCellEditorComponent( JTable table, Object value, boolean isSelected, int row, int column) { Component comp = super.getTableCellEditorComponent( table, value, isSelected, row, column); if (value instanceof TableRowDivider) { JLabel label = new JLabel(value.toString()); label.setBackground(ensureContrast(lightYellow, label.getForeground())); label.setOpaque(true); return label; } return comp; } } public XMBeanInfo() { // Use the grid layout to display the two tables // super(new GridLayout(2, 1)); // MBean*Info table // infoTable.setModel(new ReadOnlyDefaultTableModel()); infoTable.setRowSelectionAllowed(false); infoTable.setColumnSelectionAllowed(false); infoTable.getTableHeader().setReorderingAllowed(false); ((DefaultTableModel) infoTable.getModel()).setColumnIdentifiers(columnNames); infoTable.getColumnModel().getColumn(NAME_COLUMN).setPreferredWidth(140); infoTable.getColumnModel().getColumn(NAME_COLUMN).setMaxWidth(140); infoTable.getColumnModel().getColumn(NAME_COLUMN).setCellRenderer(renderer); infoTable.getColumnModel().getColumn(VALUE_COLUMN).setCellRenderer(renderer); infoTable.getColumnModel().getColumn(NAME_COLUMN).setCellEditor(editor); infoTable.getColumnModel().getColumn(VALUE_COLUMN).setCellEditor(editor); infoTable.addKeyListener(new Utils.CopyKeyAdapter()); infoTable.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS); JScrollPane infoTableScrollPane = new JScrollPane(infoTable); infoBorderPanel.setBorder( BorderFactory.createTitledBorder("MBeanInfoPlaceHolder")); infoBorderPanel.add(infoTableScrollPane); // Descriptor table // descTable.setModel(new ReadOnlyDefaultTableModel()); descTable.setRowSelectionAllowed(false); descTable.setColumnSelectionAllowed(false); descTable.getTableHeader().setReorderingAllowed(false); ((DefaultTableModel) descTable.getModel()).setColumnIdentifiers(columnNames); descTable.getColumnModel().getColumn(NAME_COLUMN).setPreferredWidth(140); descTable.getColumnModel().getColumn(NAME_COLUMN).setMaxWidth(140); descTable.getColumnModel().getColumn(NAME_COLUMN).setCellRenderer(renderer); descTable.getColumnModel().getColumn(VALUE_COLUMN).setCellRenderer(renderer); descTable.getColumnModel().getColumn(NAME_COLUMN).setCellEditor(editor); descTable.getColumnModel().getColumn(VALUE_COLUMN).setCellEditor(editor); descTable.addKeyListener(new Utils.CopyKeyAdapter()); descTable.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS); JScrollPane descTableScrollPane = new JScrollPane(descTable); descBorderPanel.setBorder( BorderFactory.createTitledBorder(Resources.getText("Descriptor"))); descBorderPanel.add(descTableScrollPane); // Add the two tables to the grid // add(infoBorderPanel); add(descBorderPanel); } // Call on EDT public void emptyInfoTable() { DefaultTableModel tableModel = (DefaultTableModel) infoTable.getModel(); while (tableModel.getRowCount() > 0) { tableModel.removeRow(0); } } // Call on EDT public void emptyDescTable() { DefaultTableModel tableModel = (DefaultTableModel) descTable.getModel(); while (tableModel.getRowCount() > 0) { tableModel.removeRow(0); } } // Call on EDT private void addDescriptor(Descriptor desc, String text) { if (desc != null && desc.getFieldNames().length > 0) { DefaultTableModel tableModel = (DefaultTableModel) descTable.getModel(); Object rowData[] = new Object[2]; rowData[0] = new TableRowDivider(text); rowData[1] = new TableRowDivider(""); tableModel.addRow(rowData); for (String fieldName : desc.getFieldNames()) { rowData[0] = fieldName; Object fieldValue = desc.getFieldValue(fieldName); if (fieldValue instanceof boolean[]) { rowData[1] = Arrays.toString((boolean[]) fieldValue); } else if (fieldValue instanceof byte[]) { rowData[1] = Arrays.toString((byte[]) fieldValue); } else if (fieldValue instanceof char[]) { rowData[1] = Arrays.toString((char[]) fieldValue); } else if (fieldValue instanceof double[]) { rowData[1] = Arrays.toString((double[]) fieldValue); } else if (fieldValue instanceof float[]) { rowData[1] = Arrays.toString((float[]) fieldValue); } else if (fieldValue instanceof int[]) { rowData[1] = Arrays.toString((int[]) fieldValue); } else if (fieldValue instanceof long[]) { rowData[1] = Arrays.toString((long[]) fieldValue); } else if (fieldValue instanceof short[]) { rowData[1] = Arrays.toString((short[]) fieldValue); } else if (fieldValue instanceof Object[]) { rowData[1] = Arrays.toString((Object[]) fieldValue); } else { rowData[1] = fieldValue; } tableModel.addRow(rowData); } tableModel.newDataAvailable(new TableModelEvent(tableModel)); } } // Call on EDT public void addMBeanInfo(XMBean mbean, MBeanInfo mbeanInfo) { emptyInfoTable(); emptyDescTable(); ((TitledBorder) infoBorderPanel.getBorder()).setTitle( Resources.getText("MBeanInfo")); String text = Resources.getText("Info") + ":"; DefaultTableModel tableModel = (DefaultTableModel) infoTable.getModel(); Object rowData[] = new Object[2]; rowData[0] = new TableRowDivider(text); rowData[1] = new TableRowDivider(""); tableModel.addRow(rowData); rowData[0] = Resources.getText("ObjectName"); rowData[1] = mbean.getObjectName(); tableModel.addRow(rowData); rowData[0] = Resources.getText("ClassName"); rowData[1] = mbeanInfo.getClassName(); tableModel.addRow(rowData); rowData[0] = Resources.getText("Description"); rowData[1] = mbeanInfo.getDescription(); tableModel.addRow(rowData); addDescriptor(mbeanInfo.getDescriptor(), text); // MBeanConstructorInfo // int i = 0; for (MBeanConstructorInfo mbci : mbeanInfo.getConstructors()) { addMBeanConstructorInfo(mbci, Resources.getText("Constructor") + "-" + i + ":"); // MBeanParameterInfo // int j = 0; for (MBeanParameterInfo mbpi : mbci.getSignature()) { addMBeanParameterInfo(mbpi, Resources.getText("Parameter") + "-" + i + "-" + j + ":"); j++; } i++; } tableModel.newDataAvailable(new TableModelEvent(tableModel)); } // Call on EDT public void addMBeanAttributeInfo(MBeanAttributeInfo mbai) { emptyInfoTable(); emptyDescTable(); ((TitledBorder) infoBorderPanel.getBorder()).setTitle( Resources.getText("MBeanAttributeInfo")); String text = Resources.getText("Attribute") + ":"; DefaultTableModel tableModel = (DefaultTableModel) infoTable.getModel(); Object rowData[] = new Object[2]; rowData[0] = new TableRowDivider(text); rowData[1] = new TableRowDivider(""); tableModel.addRow(rowData); rowData[0] = Resources.getText("Name"); rowData[1] = mbai.getName(); tableModel.addRow(rowData); rowData[0] = Resources.getText("Description"); rowData[1] = mbai.getDescription(); tableModel.addRow(rowData); rowData[0] = Resources.getText("Readable"); rowData[1] = mbai.isReadable(); tableModel.addRow(rowData); rowData[0] = Resources.getText("Writable"); rowData[1] = mbai.isWritable(); tableModel.addRow(rowData); rowData[0] = Resources.getText("Is"); rowData[1] = mbai.isIs(); tableModel.addRow(rowData); rowData[0] = Resources.getText("Type"); rowData[1] = mbai.getType(); tableModel.addRow(rowData); addDescriptor(mbai.getDescriptor(), text); tableModel.newDataAvailable(new TableModelEvent(tableModel)); } // Call on EDT public void addMBeanOperationInfo(MBeanOperationInfo mboi) { emptyInfoTable(); emptyDescTable(); ((TitledBorder) infoBorderPanel.getBorder()).setTitle( Resources.getText("MBeanOperationInfo")); String text = Resources.getText("Operation") + ":"; DefaultTableModel tableModel = (DefaultTableModel) infoTable.getModel(); Object rowData[] = new Object[2]; rowData[0] = new TableRowDivider(text); rowData[1] = new TableRowDivider(""); tableModel.addRow(rowData); rowData[0] = Resources.getText("Name"); rowData[1] = mboi.getName(); tableModel.addRow(rowData); rowData[0] = Resources.getText("Description"); rowData[1] = mboi.getDescription(); tableModel.addRow(rowData); rowData[0] = Resources.getText("Impact"); switch (mboi.getImpact()) { case MBeanOperationInfo.INFO: rowData[1] = Resources.getText("INFO"); break; case MBeanOperationInfo.ACTION: rowData[1] = Resources.getText("ACTION"); break; case MBeanOperationInfo.ACTION_INFO: rowData[1] = Resources.getText("ACTION_INFO"); break; case MBeanOperationInfo.UNKNOWN: rowData[1] = Resources.getText("UNKNOWN"); break; } tableModel.addRow(rowData); rowData[0] = Resources.getText("ReturnType"); rowData[1] = mboi.getReturnType(); tableModel.addRow(rowData); addDescriptor(mboi.getDescriptor(), text); // MBeanParameterInfo // int i = 0; for (MBeanParameterInfo mbpi : mboi.getSignature()) { addMBeanParameterInfo(mbpi, Resources.getText("Parameter") + "-" + i++ + ":"); } tableModel.newDataAvailable(new TableModelEvent(tableModel)); } // Call on EDT public void addMBeanNotificationInfo(MBeanNotificationInfo mbni) { emptyInfoTable(); emptyDescTable(); ((TitledBorder) infoBorderPanel.getBorder()).setTitle( Resources.getText("MBeanNotificationInfo")); String text = Resources.getText("Notification") + ":"; DefaultTableModel tableModel = (DefaultTableModel) infoTable.getModel(); Object rowData[] = new Object[2]; rowData[0] = new TableRowDivider(text); rowData[1] = new TableRowDivider(""); tableModel.addRow(rowData); rowData[0] = Resources.getText("Name"); rowData[1] = mbni.getName(); tableModel.addRow(rowData); rowData[0] = Resources.getText("Description"); rowData[1] = mbni.getDescription(); tableModel.addRow(rowData); rowData[0] = Resources.getText("NotifTypes"); rowData[1] = Arrays.toString(mbni.getNotifTypes()); tableModel.addRow(rowData); addDescriptor(mbni.getDescriptor(), text); tableModel.newDataAvailable(new TableModelEvent(tableModel)); } // Call on EDT private void addMBeanConstructorInfo(MBeanConstructorInfo mbci, String text) { DefaultTableModel tableModel = (DefaultTableModel) infoTable.getModel(); Object rowData[] = new Object[2]; rowData[0] = new TableRowDivider(text); rowData[1] = new TableRowDivider(""); tableModel.addRow(rowData); rowData[0] = Resources.getText("Name"); rowData[1] = mbci.getName(); tableModel.addRow(rowData); rowData[0] = Resources.getText("Description"); rowData[1] = mbci.getDescription(); tableModel.addRow(rowData); addDescriptor(mbci.getDescriptor(), text); tableModel.newDataAvailable(new TableModelEvent(tableModel)); } // Call on EDT private void addMBeanParameterInfo(MBeanParameterInfo mbpi, String text) { DefaultTableModel tableModel = (DefaultTableModel) infoTable.getModel(); Object rowData[] = new Object[2]; rowData[0] = new TableRowDivider(text); rowData[1] = new TableRowDivider(""); tableModel.addRow(rowData); rowData[0] = Resources.getText("Name"); rowData[1] = mbpi.getName(); tableModel.addRow(rowData); rowData[0] = Resources.getText("Description"); rowData[1] = mbpi.getDescription(); tableModel.addRow(rowData); rowData[0] = Resources.getText("Type"); rowData[1] = mbpi.getType(); tableModel.addRow(rowData); addDescriptor(mbpi.getDescriptor(), text); tableModel.newDataAvailable(new TableModelEvent(tableModel)); }}
/*
* Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package sun.tools.jconsole.inspector;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.GridLayout;
import java.util.*;
import javax.management.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.event.*;
import javax.swing.table.*;
import sun.tools.jconsole.Resources;
import static sun.tools.jconsole.Utilities.*;
@SuppressWarnings("serial")
public class XMBeanInfo extends JPanel {
private static final Color lightYellow = new Color(255, 255, 128);
private final int NAME_COLUMN = 0;
private final int VALUE_COLUMN = 1;
private final String[] columnNames = {
Resources.getText("Name"),
Resources.getText("Value")
};
private JTable infoTable = new JTable();
private JTable descTable = new JTable();
private JPanel infoBorderPanel = new JPanel(new BorderLayout());
private JPanel descBorderPanel = new JPanel(new BorderLayout());
private static class ReadOnlyDefaultTableModel extends DefaultTableModel {
@Override
public void setValueAt(Object value, int row, int col) {
}
}
private static class TableRowDivider {
private String tableRowDividerText;
public TableRowDivider(String tableRowDividerText) {
this.tableRowDividerText = tableRowDividerText;
}
@Override
public String toString() {
return tableRowDividerText;
}
}
private static MBeanInfoTableCellRenderer renderer =
new MBeanInfoTableCellRenderer();
private static class MBeanInfoTableCellRenderer
extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(
JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
Component comp = super.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
if (value instanceof TableRowDivider) {
JLabel label = new JLabel(value.toString());
label.setBackground(ensureContrast(lightYellow,
label.getForeground()));
label.setOpaque(true);
return label;
}
return comp;
}
}
private static TableCellEditor editor =
new MBeanInfoTableCellEditor(new JTextField());
private static class MBeanInfoTableCellEditor
extends Utils.ReadOnlyTableCellEditor {
public MBeanInfoTableCellEditor(JTextField tf) {
super(tf);
}
@Override
public Component getTableCellEditorComponent(
JTable table, Object value, boolean isSelected,
int row, int column) {
Component comp = super.getTableCellEditorComponent(
table, value, isSelected, row, column);
if (value instanceof TableRowDivider) {
JLabel label = new JLabel(value.toString());
label.setBackground(ensureContrast(lightYellow,
label.getForeground()));
label.setOpaque(true);
return label;
}
return comp;
}
}
public XMBeanInfo() {
// Use the grid layout to display the two tables
//
super(new GridLayout(2, 1));
// MBean*Info table
//
infoTable.setModel(new ReadOnlyDefaultTableModel());
infoTable.setRowSelectionAllowed(false);
infoTable.setColumnSelectionAllowed(false);
infoTable.getTableHeader().setReorderingAllowed(false);
((DefaultTableModel) infoTable.getModel()).setColumnIdentifiers(columnNames);
infoTable.getColumnModel().getColumn(NAME_COLUMN).setPreferredWidth(140);
infoTable.getColumnModel().getColumn(NAME_COLUMN).setMaxWidth(140);
infoTable.getColumnModel().getColumn(NAME_COLUMN).setCellRenderer(renderer);
infoTable.getColumnModel().getColumn(VALUE_COLUMN).setCellRenderer(renderer);
infoTable.getColumnModel().getColumn(NAME_COLUMN).setCellEditor(editor);
infoTable.getColumnModel().getColumn(VALUE_COLUMN).setCellEditor(editor);
infoTable.addKeyListener(new Utils.CopyKeyAdapter());
infoTable.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
JScrollPane infoTableScrollPane = new JScrollPane(infoTable);
infoBorderPanel.setBorder(
BorderFactory.createTitledBorder("MBeanInfoPlaceHolder"));
infoBorderPanel.add(infoTableScrollPane);
// Descriptor table
//
descTable.setModel(new ReadOnlyDefaultTableModel());
descTable.setRowSelectionAllowed(false);
descTable.setColumnSelectionAllowed(false);
descTable.getTableHeader().setReorderingAllowed(false);
((DefaultTableModel) descTable.getModel()).setColumnIdentifiers(columnNames);
descTable.getColumnModel().getColumn(NAME_COLUMN).setPreferredWidth(140);
descTable.getColumnModel().getColumn(NAME_COLUMN).setMaxWidth(140);
descTable.getColumnModel().getColumn(NAME_COLUMN).setCellRenderer(renderer);
descTable.getColumnModel().getColumn(VALUE_COLUMN).setCellRenderer(renderer);
descTable.getColumnModel().getColumn(NAME_COLUMN).setCellEditor(editor);
descTable.getColumnModel().getColumn(VALUE_COLUMN).setCellEditor(editor);
descTable.addKeyListener(new Utils.CopyKeyAdapter());
descTable.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
JScrollPane descTableScrollPane = new JScrollPane(descTable);
descBorderPanel.setBorder(
BorderFactory.createTitledBorder(Resources.getText("Descriptor")));
descBorderPanel.add(descTableScrollPane);
// Add the two tables to the grid
//
add(infoBorderPanel);
add(descBorderPanel);
}
// Call on EDT
public void emptyInfoTable() {
DefaultTableModel tableModel = (DefaultTableModel) infoTable.getModel();
while (tableModel.getRowCount() > 0) {
tableModel.removeRow(0);
}
}
// Call on EDT
public void emptyDescTable() {
DefaultTableModel tableModel = (DefaultTableModel) descTable.getModel();
while (tableModel.getRowCount() > 0) {
tableModel.removeRow(0);
}
}
// Call on EDT
private void addDescriptor(Descriptor desc, String text) {
if (desc != null && desc.getFieldNames().length > 0) {
DefaultTableModel tableModel = (DefaultTableModel) descTable.getModel();
Object rowData[] = new Object[2];
rowData[0] = new TableRowDivider(text);
rowData[1] = new TableRowDivider("");
tableModel.addRow(rowData);
for (String fieldName : desc.getFieldNames()) {
rowData[0] = fieldName;
Object fieldValue = desc.getFieldValue(fieldName);
if (fieldValue instanceof boolean[]) {
rowData[1] = Arrays.toString((boolean[]) fieldValue);
} else if (fieldValue instanceof byte[]) {
rowData[1] = Arrays.toString((byte[]) fieldValue);
} else if (fieldValue instanceof char[]) {
rowData[1] = Arrays.toString((char[]) fieldValue);
} else if (fieldValue instanceof double[]) {
rowData[1] = Arrays.toString((double[]) fieldValue);
} else if (fieldValue instanceof float[]) {
rowData[1] = Arrays.toString((float[]) fieldValue);
} else if (fieldValue instanceof int[]) {
rowData[1] = Arrays.toString((int[]) fieldValue);
} else if (fieldValue instanceof long[]) {
rowData[1] = Arrays.toString((long[]) fieldValue);
} else if (fieldValue instanceof short[]) {
rowData[1] = Arrays.toString((short[]) fieldValue);
} else if (fieldValue instanceof Object[]) {
rowData[1] = Arrays.toString((Object[]) fieldValue);
} else {
rowData[1] = fieldValue;
}
tableModel.addRow(rowData);
}
tableModel.newDataAvailable(new TableModelEvent(tableModel));
}
}
// Call on EDT
public void addMBeanInfo(XMBean mbean, MBeanInfo mbeanInfo) {
emptyInfoTable();
emptyDescTable();
((TitledBorder) infoBorderPanel.getBorder()).setTitle(
Resources.getText("MBeanInfo"));
String text = Resources.getText("Info") + ":";
DefaultTableModel tableModel = (DefaultTableModel) infoTable.getModel();
Object rowData[] = new Object[2];
rowData[0] = new TableRowDivider(text);
rowData[1] = new TableRowDivider("");
tableModel.addRow(rowData);
rowData[0] = Resources.getText("ObjectName");
rowData[1] = mbean.getObjectName();
tableModel.addRow(rowData);
rowData[0] = Resources.getText("ClassName");
rowData[1] = mbeanInfo.getClassName();
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Description");
rowData[1] = mbeanInfo.getDescription();
tableModel.addRow(rowData);
addDescriptor(mbeanInfo.getDescriptor(), text);
// MBeanConstructorInfo
//
int i = 0;
for (MBeanConstructorInfo mbci : mbeanInfo.getConstructors()) {
addMBeanConstructorInfo(mbci,
Resources.getText("Constructor") + "-" + i + ":");
// MBeanParameterInfo
//
int j = 0;
for (MBeanParameterInfo mbpi : mbci.getSignature()) {
addMBeanParameterInfo(mbpi,
Resources.getText("Parameter") + "-" + i + "-" + j + ":");
j++;
}
i++;
}
tableModel.newDataAvailable(new TableModelEvent(tableModel));
}
// Call on EDT
public void addMBeanAttributeInfo(MBeanAttributeInfo mbai) {
emptyInfoTable();
emptyDescTable();
((TitledBorder) infoBorderPanel.getBorder()).setTitle(
Resources.getText("MBeanAttributeInfo"));
String text = Resources.getText("Attribute") + ":";
DefaultTableModel tableModel = (DefaultTableModel) infoTable.getModel();
Object rowData[] = new Object[2];
rowData[0] = new TableRowDivider(text);
rowData[1] = new TableRowDivider("");
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Name");
rowData[1] = mbai.getName();
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Description");
rowData[1] = mbai.getDescription();
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Readable");
rowData[1] = mbai.isReadable();
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Writable");
rowData[1] = mbai.isWritable();
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Is");
rowData[1] = mbai.isIs();
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Type");
rowData[1] = mbai.getType();
tableModel.addRow(rowData);
addDescriptor(mbai.getDescriptor(), text);
tableModel.newDataAvailable(new TableModelEvent(tableModel));
}
// Call on EDT
public void addMBeanOperationInfo(MBeanOperationInfo mboi) {
emptyInfoTable();
emptyDescTable();
((TitledBorder) infoBorderPanel.getBorder()).setTitle(
Resources.getText("MBeanOperationInfo"));
String text = Resources.getText("Operation") + ":";
DefaultTableModel tableModel = (DefaultTableModel) infoTable.getModel();
Object rowData[] = new Object[2];
rowData[0] = new TableRowDivider(text);
rowData[1] = new TableRowDivider("");
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Name");
rowData[1] = mboi.getName();
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Description");
rowData[1] = mboi.getDescription();
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Impact");
switch (mboi.getImpact()) {
case MBeanOperationInfo.INFO:
rowData[1] = Resources.getText("INFO");
break;
case MBeanOperationInfo.ACTION:
rowData[1] = Resources.getText("ACTION");
break;
case MBeanOperationInfo.ACTION_INFO:
rowData[1] = Resources.getText("ACTION_INFO");
break;
case MBeanOperationInfo.UNKNOWN:
rowData[1] = Resources.getText("UNKNOWN");
break;
}
tableModel.addRow(rowData);
rowData[0] = Resources.getText("ReturnType");
rowData[1] = mboi.getReturnType();
tableModel.addRow(rowData);
addDescriptor(mboi.getDescriptor(), text);
// MBeanParameterInfo
//
int i = 0;
for (MBeanParameterInfo mbpi : mboi.getSignature()) {
addMBeanParameterInfo(mbpi,
Resources.getText("Parameter") + "-" + i++ + ":");
}
tableModel.newDataAvailable(new TableModelEvent(tableModel));
}
// Call on EDT
public void addMBeanNotificationInfo(MBeanNotificationInfo mbni) {
emptyInfoTable();
emptyDescTable();
((TitledBorder) infoBorderPanel.getBorder()).setTitle(
Resources.getText("MBeanNotificationInfo"));
String text = Resources.getText("Notification") + ":";
DefaultTableModel tableModel = (DefaultTableModel) infoTable.getModel();
Object rowData[] = new Object[2];
rowData[0] = new TableRowDivider(text);
rowData[1] = new TableRowDivider("");
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Name");
rowData[1] = mbni.getName();
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Description");
rowData[1] = mbni.getDescription();
tableModel.addRow(rowData);
rowData[0] = Resources.getText("NotifTypes");
rowData[1] = Arrays.toString(mbni.getNotifTypes());
tableModel.addRow(rowData);
addDescriptor(mbni.getDescriptor(), text);
tableModel.newDataAvailable(new TableModelEvent(tableModel));
}
// Call on EDT
private void addMBeanConstructorInfo(MBeanConstructorInfo mbci, String text) {
DefaultTableModel tableModel = (DefaultTableModel) infoTable.getModel();
Object rowData[] = new Object[2];
rowData[0] = new TableRowDivider(text);
rowData[1] = new TableRowDivider("");
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Name");
rowData[1] = mbci.getName();
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Description");
rowData[1] = mbci.getDescription();
tableModel.addRow(rowData);
addDescriptor(mbci.getDescriptor(), text);
tableModel.newDataAvailable(new TableModelEvent(tableModel));
}
// Call on EDT
private void addMBeanParameterInfo(MBeanParameterInfo mbpi, String text) {
DefaultTableModel tableModel = (DefaultTableModel) infoTable.getModel();
Object rowData[] = new Object[2];
rowData[0] = new TableRowDivider(text);
rowData[1] = new TableRowDivider("");
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Name");
rowData[1] = mbpi.getName();
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Description");
rowData[1] = mbpi.getDescription();
tableModel.addRow(rowData);
rowData[0] = Resources.getText("Type");
rowData[1] = mbpi.getType();
tableModel.addRow(rowData);
addDescriptor(mbpi.getDescriptor(), text);
tableModel.newDataAvailable(new TableModelEvent(tableModel));
}
}