KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > ejtools > management > browser > ui > ManagedObjectEventsViewer


1 /*
2  * EJTools, the Enterprise Java Tools
3  *
4  * Distributable under LGPL license.
5  * See terms of license at www.gnu.org.
6  */

7 package org.ejtools.management.browser.ui;
8
9 import java.awt.GridBagConstraints JavaDoc;
10 import java.awt.GridLayout JavaDoc;
11 import java.awt.Insets JavaDoc;
12 import java.awt.event.ActionEvent JavaDoc;
13 import java.awt.event.ActionListener JavaDoc;
14 import java.util.ArrayList JavaDoc;
15
16 import javax.management.MBeanAttributeInfo JavaDoc;
17 import javax.management.MBeanInfo JavaDoc;
18 import javax.swing.JButton JavaDoc;
19 import javax.swing.JLabel JavaDoc;
20 import javax.swing.JList JavaDoc;
21 import javax.swing.JPanel JavaDoc;
22 import javax.swing.SwingConstants JavaDoc;
23
24 import org.apache.log4j.Logger;
25 import org.ejtools.adwt.AwtToolkit;
26 import org.ejtools.management.browser.model.ManagedObject;
27
28 /**
29  * Description of the Class
30  *
31  * @author letiemble
32  * @version $Revision: 1.5 $
33  */

34 public class ManagedObjectEventsViewer extends ManagedObjectViewer
35 {
36    /** Description of the Field */
37    private static Logger logger = Logger.getLogger(ManagedObjectEventsViewer.class);
38
39
40    /**Constructor for the ManagedObjectEventsViewer object */
41    public ManagedObjectEventsViewer()
42    {
43       super();
44    }
45
46
47    /**
48     *Constructor for the ManagedObjectEventsViewer object
49     *
50     * @param bean Description of the Parameter
51     */

52    public ManagedObjectEventsViewer(Object JavaDoc bean)
53    {
54       super(bean);
55    }
56
57
58    /**
59     * @param infos Description of the Parameter
60     * @return Description of the Return Value
61     */

62    public MBeanAttributeInfo JavaDoc[] filter(MBeanAttributeInfo JavaDoc[] infos)
63    {
64       ArrayList JavaDoc filteredInfos = new ArrayList JavaDoc();
65       ArrayList JavaDoc includes = new ArrayList JavaDoc();
66       includes.add(MO_ATTRIBUTE_EVENTTYPES);
67
68       for (int i = 0; i < infos.length; i++)
69       {
70          String JavaDoc name = infos[i].getName();
71          if (includes.contains(name.toLowerCase()))
72          {
73             filteredInfos.add(infos[i]);
74          }
75       }
76
77       return (MBeanAttributeInfo JavaDoc[]) filteredInfos.toArray(new MBeanAttributeInfo JavaDoc[0]);
78    }
79
80
81    /**
82     * Sets the object attribute of the ManagedObjectEventsViewer object
83     *
84     * @param bean The new object value
85     */

86    public void setObject(Object JavaDoc bean)
87    {
88       try
89       {
90          this.panel.removeAll();
91
92          if (bean == null)
93          {
94             this.validate();
95             this.repaint();
96             return;
97          }
98
99          this.object = (ManagedObject) bean;
100          MBeanInfo JavaDoc beaninfo = this.object.getMBeanInfo();
101
102          GridBagConstraints JavaDoc gridbagconstraints = new GridBagConstraints JavaDoc();
103          gridbagconstraints.insets = new Insets JavaDoc(5, 5, 5, 5);
104          gridbagconstraints.anchor = GridBagConstraints.NORTH;
105          gridbagconstraints.weightx = 1.0D;
106          gridbagconstraints.weighty = 0.0D;
107          gridbagconstraints.fill = GridBagConstraints.HORIZONTAL;
108          gridbagconstraints.gridwidth = GridBagConstraints.REMAINDER;
109
110          MBeanAttributeInfo JavaDoc[] infos = this.filter(beaninfo.getAttributes());
111          if (infos.length == 0)
112          {
113             return;
114          }
115
116          Object JavaDoc value = this.object.getAttribute(infos[0].getName());
117          String JavaDoc[] eventTypes = (String JavaDoc[]) value;
118          JList JavaDoc list = new JList JavaDoc(eventTypes);
119
120          gridbagconstraints.weightx = 0.0D;
121          gridbagconstraints.gridwidth = GridBagConstraints.RELATIVE;
122          JLabel JavaDoc label = new JLabel JavaDoc(resources.getString("customizer.tab.events.text.event.types") + " : ", SwingConstants.RIGHT);
123          label.setToolTipText(resources.getString("customizer.tab.events.tooltip.event.types"));
124          label.setForeground(AwtToolkit.DARK_BLUE);
125          this.panel.add(label, gridbagconstraints);
126
127          gridbagconstraints.weightx = 1.0D;
128          gridbagconstraints.gridwidth = GridBagConstraints.REMAINDER;
129          this.panel.add(list, gridbagconstraints);
130
131          JPanel JavaDoc buttonPanel = new JPanel JavaDoc(new GridLayout JavaDoc(1, 2, 1, 1));
132          final JButton JavaDoc button1 = new JButton JavaDoc(resources.getString("customizer.tab.events.button.listen"));
133          final JButton JavaDoc button2 = new JButton JavaDoc(resources.getString("customizer.tab.events.button.unlisten"));
134
135          button1.addActionListener(
136             new ActionListener JavaDoc()
137             {
138                public void actionPerformed(ActionEvent JavaDoc e)
139                {
140                   try
141                   {
142                      ManagedObjectEventsViewer.this.object.registerForNotifications();
143                      if (ManagedObjectEventsViewer.this.object.isRegisteredForNotifications())
144                      {
145                         button1.setEnabled(false);
146                         button2.setEnabled(true);
147                      }
148                   }
149                   catch (Exception JavaDoc ex)
150                   {
151                      logger.error("Error while performing action" + ex);
152                   }
153                }
154             }
155             );
156
157          button2.addActionListener(
158             new ActionListener JavaDoc()
159             {
160                public void actionPerformed(ActionEvent JavaDoc e)
161                {
162                   try
163                   {
164                      ManagedObjectEventsViewer.this.object.unregisterForNotifications();
165                      if (!ManagedObjectEventsViewer.this.object.isRegisteredForNotifications())
166                      {
167                         button1.setEnabled(true);
168                         button2.setEnabled(false);
169                      }
170                   }
171                   catch (Exception JavaDoc ex)
172                   {
173                      logger.error("Error while performing action" + ex);
174                   }
175                }
176             }
177             );
178
179          try
180          {
181             if (ManagedObjectEventsViewer.this.object.isRegisteredForNotifications())
182             {
183                button1.setEnabled(false);
184                button2.setEnabled(true);
185             }
186             else
187             {
188                button1.setEnabled(true);
189                button2.setEnabled(false);
190             }
191          }
192          catch (Exception JavaDoc ue)
193          {
194          }
195
196          buttonPanel.add(button1);
197          buttonPanel.add(button2);
198
199          gridbagconstraints.weighty = 1.0D;
200          this.panel.add(buttonPanel, gridbagconstraints);
201
202          this.validate();
203          this.repaint();
204       }
205       catch (Exception JavaDoc e)
206       {
207          logger.error("Error while setting object" + e);
208       }
209    }
210 }
211
Popular Tags