KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > panoptes > view > swing > editors > QueryEditor


1 /*
2  * Created on Sep 2, 2003
3  *
4  */

5 package net.sf.panoptes.view.swing.editors;
6
7 import java.awt.Frame JavaDoc;
8 import java.awt.HeadlessException JavaDoc;
9 import java.awt.event.ActionEvent JavaDoc;
10 import java.awt.event.ActionListener JavaDoc;
11 import java.awt.event.FocusEvent JavaDoc;
12 import java.awt.event.FocusListener JavaDoc;
13 import java.util.Iterator JavaDoc;
14
15 import javax.management.MalformedObjectNameException JavaDoc;
16 import javax.management.ObjectName JavaDoc;
17 import javax.swing.JButton JavaDoc;
18 import javax.swing.JCheckBox JavaDoc;
19 import javax.swing.JFrame JavaDoc;
20 import javax.swing.JPanel JavaDoc;
21 import javax.swing.JScrollPane JavaDoc;
22 import javax.swing.JTable JavaDoc;
23 import javax.swing.JTextField JavaDoc;
24 import javax.swing.UIManager JavaDoc;
25 import javax.swing.table.DefaultTableModel JavaDoc;
26
27 import net.sf.panoptes.component.jmx.model.MBeanQuery;
28 import net.sf.panoptes.swing.DefaultFormBuilder;
29 import net.sf.panoptes.swing.dialogs.BannerDialog;
30 import net.sf.panoptes.swing.panels.OKCancelButtonPanel;
31 import net.sf.panoptes.view.swing.tables.DefaultNodeTableCellRenderer;
32
33 import com.jgoodies.forms.layout.FormLayout;
34
35 /**
36  *
37  *
38  * @author Dag Liodden
39  * @version 0.1
40  */

41 public class QueryEditor extends BannerDialog {
42
43     private JTextField JavaDoc name = new JTextField JavaDoc();
44     private JTextField JavaDoc description = new JTextField JavaDoc();
45     private JTextField JavaDoc objectName = new JTextField JavaDoc("*:*");
46     private JTextField JavaDoc queryExp = new JTextField JavaDoc();
47     private JCheckBox JavaDoc aliasCheck = new JCheckBox JavaDoc();
48     private JTextField JavaDoc alias = new JTextField JavaDoc();
49     private JTable JavaDoc testTable;
50     private DefaultTableModel JavaDoc testTableModel;
51     private MBeanQuery query;
52     
53     public QueryEditor(Frame JavaDoc owner, MBeanQuery queryNode) throws HeadlessException JavaDoc {
54         super(
55             owner,
56             "Create MBean Query",
57             "Create",
58             "Create a query for retrieving Management Beans",
59             "icons/banners/query_wiz.gif",
60             false,
61             true);
62         
63         this.query = queryNode;
64         if (queryNode != null) {
65             name.setText(queryNode.getConfigDescriptor().getName());
66             description.setText(queryNode.getConfigDescriptor().getDescription());
67             objectName.setText(queryNode.getObjectName().toString());
68         }
69         
70         createTable();
71         setMainPanel(createMainPanel());
72         setButtonPanel(new OKCancelButtonPanel().getPanel());
73     }
74     
75     private void createTable() {
76         testTableModel = new DefaultTableModel JavaDoc();
77         testTableModel.addColumn("ObjectName");
78         testTable = new JTable JavaDoc(testTableModel);
79         testTable.getColumnModel().getColumn(0).setCellRenderer(new DefaultNodeTableCellRenderer());
80     }
81
82     private JPanel JavaDoc createMainPanel() {
83         FormLayout layout = new FormLayout("right:max(40dlu;pref), 3dlu, 170dlu:grow, 7dlu", "");
84         DefaultFormBuilder builder = new DefaultFormBuilder(layout);
85         builder.setDefaultDialogBorder();
86
87         builder.append("Name:", name);
88         builder.append("Description:", description);
89         builder.append("ObjectName:", objectName);
90         objectName.addFocusListener(new FocusListener JavaDoc() {
91             public void focusGained(FocusEvent JavaDoc e) {
92                 setFeedBack("");
93             }
94
95             public void focusLost(FocusEvent JavaDoc e) {
96                 try {
97                     new ObjectName JavaDoc(objectName.getText());
98                     setFeedBack("");
99                 } catch (MalformedObjectNameException JavaDoc ex) {
100                     setFeedBack("Invalid query: " + ex.getMessage());
101                 }
102             }
103         });
104
105         builder.append("QueryExp:", queryExp);
106         queryExp.setEnabled(false);
107         builder.append("Give this query an alias?", aliasCheck);
108         builder.append("Alias name:", alias);
109
110         JButton JavaDoc btnTest = new JButton JavaDoc("Test");
111         btnTest.addActionListener(new ActionListener JavaDoc() {
112             public void actionPerformed(ActionEvent JavaDoc e) {
113                 testQuery();
114             }
115         });
116         builder.append(btnTest);
117         builder.nextLine();
118         builder.appendSeparator("Test results:");
119         builder.appendRow("90dlu:grow");
120         builder.append(new JScrollPane JavaDoc(testTable), 3);
121         return builder.getPanel();
122     }
123
124     private void testQuery() {
125         try {
126             query.setQuery(new ObjectName JavaDoc(objectName.getText()), null);
127         } catch (MalformedObjectNameException JavaDoc e) {
128             setFeedBack("Cannot test since objectname is invalid");
129             return;
130         }
131         while (testTableModel.getColumnCount() > 1) testTableModel.removeRow(0);
132         query.refresh();
133         for (Iterator JavaDoc i = query.getChildren().iterator(); i.hasNext();) {
134             testTableModel.addRow(new Object JavaDoc[] { i.next() });
135         }
136         testTable.doLayout();
137     }
138
139     public static void main(String JavaDoc[] args) {
140         try {
141             UIManager.setLookAndFeel("com.jgoodies.plaf.plastic.PlasticXPLookAndFeel");
142         } catch (Exception JavaDoc e) {
143             e.printStackTrace();
144         }
145
146         QueryEditor e = new QueryEditor(new JFrame JavaDoc("Test"), null);
147         e.pack();
148         e.show();
149     }
150
151 }
152
Popular Tags