Source Code Cross Referenced for RegisterMBeanPanel.java in  » IDE-Netbeans » jmx » org » netbeans » modules » jmx » actions » dialog » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » IDE Netbeans » jmx » org.netbeans.modules.jmx.actions.dialog 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


001:        /*
002:         * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003:         *
004:         * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005:         *
006:         * The contents of this file are subject to the terms of either the GNU
007:         * General Public License Version 2 only ("GPL") or the Common
008:         * Development and Distribution License("CDDL") (collectively, the
009:         * "License"). You may not use this file except in compliance with the
010:         * License. You can obtain a copy of the License at
011:         * http://www.netbeans.org/cddl-gplv2.html
012:         * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013:         * specific language governing permissions and limitations under the
014:         * License.  When distributing the software, include this License Header
015:         * Notice in each file and include the License file at
016:         * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
017:         * particular file as subject to the "Classpath" exception as provided
018:         * by Sun in the GPL Version 2 section of the License file that
019:         * accompanied this code. If applicable, add the following below the
020:         * License Header, with the fields enclosed by brackets [] replaced by
021:         * your own identifying information:
022:         * "Portions Copyrighted [year] [name of copyright owner]"
023:         *
024:         * Contributor(s):
025:         *
026:         * The Original Software is NetBeans. The Initial Developer of the Original
027:         * Software is Sun Microsystems, Inc. Portions Copyright 2004-2005 Sun
028:         * Microsystems, Inc. All Rights Reserved.
029:         *
030:         * If you wish your version of this file to be governed by only the CDDL
031:         * or only the GPL Version 2, indicate your decision by adding
032:         * "[Contributor] elects to include this software in this distribution
033:         * under the [CDDL or GPL Version 2] license." If you do not indicate a
034:         * single choice of license, a recipient has the option to distribute
035:         * your version of this file under either the CDDL, the GPL Version 2 or
036:         * to extend the choice of license to its licensees as provided above.
037:         * However, if you add GPL Version 2 code and therefore, elected the GPL
038:         * Version 2 license, then the option applies only if the new code is
039:         * made subject to such option by the copyright holder.
040:         */
041:
042:        package org.netbeans.modules.jmx.actions.dialog;
043:
044:        import java.awt.event.ActionListener;
045:        import java.awt.event.ItemEvent;
046:        import java.awt.event.ItemListener;
047:        import java.io.IOException;
048:        import java.util.Map;
049:        import java.util.ResourceBundle;
050:        import javax.lang.model.element.ExecutableElement;
051:        import javax.swing.JButton;
052:        import javax.swing.event.DocumentEvent;
053:        import javax.swing.event.DocumentListener;
054:        import javax.swing.text.BadLocationException;
055:        import javax.swing.text.Document;
056:        import org.netbeans.api.java.source.JavaSource;
057:        import org.netbeans.modules.jmx.WizardConstants;
058:        import org.netbeans.modules.jmx.WizardHelpers;
059:        import org.netbeans.modules.jmx.ClassButton;
060:        import org.netbeans.modules.jmx.MBeanClassButton;
061:        import org.openide.DialogDescriptor;
062:        import org.openide.DialogDisplayer;
063:        import org.openide.awt.Mnemonics;
064:        import org.openide.filesystems.FileObject;
065:        import org.openide.loaders.DataObject;
066:        import org.openide.nodes.Node;
067:        import org.openide.util.HelpCtx;
068:        import org.openide.util.NbBundle;
069:        import org.netbeans.api.project.SourceGroup;
070:        import org.netbeans.api.project.Project;
071:        import org.netbeans.modules.jmx.JavaModelHelper;
072:
073:        /**
074:         * Panel which is used to ask which MBean to instantiate and register.
075:         * @author  tl156378
076:         */
077:        public class RegisterMBeanPanel extends javax.swing.JPanel implements 
078:                ItemListener, DocumentListener {
079:
080:            /** class to add registration of MBean */
081:            private JavaSource agentClass;
082:            private JavaSource mbeanClass = null;
083:            private Project project = null;
084:
085:            private ResourceBundle bundle;
086:
087:            private JButton btnOK;
088:            private boolean isMBean = false;
089:            private boolean isExistingClass = false;
090:            private boolean isValid = false;
091:            private DataObject dob;
092:            private Map<String, ExecutableElement> constructorsMap;
093:
094:            /**
095:             * Returns the current Java class.
096:             * @return <CODE>JavaClass</CODE> current specified Java class
097:             */
098:            public JavaSource getAgentJavaSource() {
099:                return agentClass;
100:            }
101:
102:            /**
103:             * Returns the current user defined MBean class.
104:             * @return <CODE>JavaClass</CODE> specified MBean class
105:             */
106:            public JavaSource getMBeanJavaSource() {
107:                return mbeanClass;
108:            }
109:
110:            /**
111:             * Returns if the current user defined MBean class is StandardMBean class.
112:             * @return <CODE>boolean</CODE> true only if StandardMBean class is selected
113:             */
114:            public boolean standardMBeanSelected() {
115:                return standardMBeanRadioButton.isSelected();
116:            }
117:
118:            /**
119:             * Returns the current user defined MBean objectName.
120:             * @return <CODE>String</CODE> specified ObjectName
121:             */
122:            public String getMBeanObjectName() {
123:                return objectNameTextField.getText();
124:            }
125:
126:            /**
127:             * Returns the current user defined class name.
128:             * @return <CODE>String</CODE> specified class name
129:             */
130:            public String getClassName() {
131:                if (standardMBeanRadioButton.isSelected())
132:                    return classNameTextField.getText();
133:                else
134:                    return mbeanClassTextField.getText();
135:            }
136:
137:            /**
138:             * Returns the current user defined class name.
139:             * @return <CODE>String</CODE> specified interface name
140:             */
141:            public String getInterfaceName() {
142:                if (standardMBeanRadioButton.isSelected()) {
143:                    String interfaceName = (String) interfaceComboBox
144:                            .getSelectedItem();
145:                    if (bundle.getString("LBL_GeneratedInterface").equals(
146:                            interfaceName)) // NOI18N
147:                        return null;
148:                    else
149:                        return interfaceName;
150:                } else
151:                    return null;
152:            }
153:
154:            /**
155:             * Returns the current user defined constructor signature.
156:             * @return <CODE>String</CODE> signature of choosed constructor
157:             */
158:            public String getConstructor() {
159:                String construct = (String) constructorComboBox
160:                        .getSelectedItem();
161:                if (bundle.getString("LBL_StandardMBeanDefaultConstructor")
162:                        .equals(construct)
163:                        || bundle.getString("LBL_ConstructorNotGenerated")
164:                                .equals(construct)) // NOI18N
165:                    return null;
166:                else
167:                    return construct;
168:            }
169:
170:            /**
171:             * Returns the current user defined constructor signature.
172:             * @return <CODE>String</CODE> signature of choosed constructor
173:             */
174:            public ExecutableElement getExecutableConstructor() {
175:                String construct = (String) constructorComboBox
176:                        .getSelectedItem();
177:                if (bundle.getString("LBL_StandardMBeanDefaultConstructor")
178:                        .equals(construct)
179:                        || bundle.getString("LBL_ConstructorNotGenerated")
180:                                .equals(construct)) // NOI18N
181:                    return null;
182:                else
183:                    return constructorsMap.get(construct);
184:            }
185:
186:            /**
187:             * Creates new form RegisterMBeanPanel.
188:             * @param  node  node selected when the Register Mbean action was invoked
189:             */
190:            public RegisterMBeanPanel(Node node) {
191:                bundle = NbBundle.getBundle(RegisterMBeanPanel.class);
192:
193:                initComponents();
194:
195:                dob = (DataObject) node.getCookie(DataObject.class);
196:                FileObject fo = null;
197:                if (dob != null)
198:                    fo = dob.getPrimaryFile();
199:                project = WizardHelpers.getProject(fo);
200:
201:                agentClass = JavaModelHelper.getSource(fo);
202:
203:                // init tags
204:                userMBeanRadioButton.setSelected(true);
205:
206:                // init labels
207:                chooseLabel.setText(bundle
208:                        .getString("LBL_RegistMbean_ChooseOptions")); // NOI18N
209:                Mnemonics.setLocalizedText(userMBeanRadioButton, bundle
210:                        .getString("LBL_RegisterUserMBean")); // NOI18N
211:                Mnemonics.setLocalizedText(standardMBeanRadioButton, bundle
212:                        .getString("LBL_RegisterStandardMBean")); // NOI18N
213:                Mnemonics.setLocalizedText(mbeanClassLabel, bundle
214:                        .getString("LBL_MBean_Class")); // NOI18N
215:                Mnemonics.setLocalizedText(classNameLabel, bundle
216:                        .getString("LBL_Class")); // NOI18N
217:                Mnemonics.setLocalizedText(isMXBean, bundle
218:                        .getString("LBL_IsMXBean")); // NOI18N
219:                Mnemonics.setLocalizedText(objectNameLabel, bundle
220:                        .getString("LBL_ObjectName")); // NOI18N
221:                addedInfosLabel.setText(bundle
222:                        .getString("LBL_RegistMbean_AddedInfos")); // NOI18N
223:                Mnemonics.setLocalizedText(constructorLabel, bundle
224:                        .getString("LBL_Constructor")); // NOI18N
225:                Mnemonics.setLocalizedText(interfaceLabel, bundle
226:                        .getString("LBL_Interface")); // NOI18N
227:
228:                //for accesibility
229:                userMBeanRadioButton.getAccessibleContext().setAccessibleName(
230:                        bundle.getString("ACCESS_REGISTER_USER_MBEAN")); // NOI18N
231:                userMBeanRadioButton
232:                        .getAccessibleContext()
233:                        .setAccessibleDescription(
234:                                bundle
235:                                        .getString("ACCESS_REGISTER_USER_MBEAN_DESCRIPTION")); // NOI18N
236:                mbeanClassTextField.getAccessibleContext().setAccessibleName(
237:                        bundle.getString("ACCESS_REGISTER_MBEAN_CLASS")); // NOI18N
238:                mbeanClassTextField
239:                        .getAccessibleContext()
240:                        .setAccessibleDescription(
241:                                bundle
242:                                        .getString("ACCESS_REGISTER_MBEAN_CLASS_DESCRIPTION")); // NOI18N
243:                mbeanBrowseButton
244:                        .getAccessibleContext()
245:                        .setAccessibleName(
246:                                bundle
247:                                        .getString("ACCESS_REGISTER_MBEAN_BROWSE_MBEANCLASS")); // NOI18N
248:                mbeanBrowseButton
249:                        .getAccessibleContext()
250:                        .setAccessibleDescription(
251:                                bundle
252:                                        .getString("ACCESS_REGISTER_MBEAN_BROWSE_MBEANCLASS_DESCRIPTION")); // NOI18N
253:                objectNameTextField.getAccessibleContext().setAccessibleName(
254:                        bundle.getString("ACCESS_REGISTER_OBJECTNAME")); // NOI18N
255:                objectNameTextField
256:                        .getAccessibleContext()
257:                        .setAccessibleDescription(
258:                                bundle
259:                                        .getString("ACCESS_REGISTER_OBJECTNAME_DESCRIPTION")); // NOI18N
260:                constructorComboBox.getAccessibleContext().setAccessibleName(
261:                        bundle.getString("ACCESS_REGISTER_CONSTRUCTOR")); // NOI18N
262:                constructorComboBox
263:                        .getAccessibleContext()
264:                        .setAccessibleDescription(
265:                                bundle
266:                                        .getString("ACCESS_REGISTER_CONSTRUCTOR_DESCRIPTION")); // NOI18N
267:                standardMBeanRadioButton
268:                        .getAccessibleContext()
269:                        .setAccessibleName(
270:                                bundle
271:                                        .getString("ACCESS_REGISTER_STANDARD_MBEAN")); // NOI18N
272:                standardMBeanRadioButton
273:                        .getAccessibleContext()
274:                        .setAccessibleDescription(
275:                                bundle
276:                                        .getString("ACCESS_REGISTER_STANDARD_MBEAN_DESCRIPTION")); // NOI18N
277:                classNameTextField.getAccessibleContext().setAccessibleName(
278:                        bundle.getString("ACCESS_REGISTER_STDMBEAN_CLASSNAME")); // NOI18N
279:                classNameTextField
280:                        .getAccessibleContext()
281:                        .setAccessibleDescription(
282:                                bundle
283:                                        .getString("ACCESS_REGISTER_STDMBEAN_CLASSNAME_DESCRIPTION")); // NOI18N
284:                browseButton
285:                        .getAccessibleContext()
286:                        .setAccessibleName(
287:                                bundle
288:                                        .getString("ACCESS_REGISTER_STDMBEAN_BROWSE_CLASSNAME")); // NOI18N
289:                browseButton
290:                        .getAccessibleContext()
291:                        .setAccessibleDescription(
292:                                bundle
293:                                        .getString("ACCESS_REGISTER_STDMBEAN_BROWSE_CLASSNAME_DESCRIPTION")); // NOI18N
294:                interfaceComboBox.getAccessibleContext().setAccessibleName(
295:                        bundle.getString("ACCESS_REGISTER_STDMBEAN_INTERFACE")); // NOI18N
296:                interfaceComboBox
297:                        .getAccessibleContext()
298:                        .setAccessibleDescription(
299:                                bundle
300:                                        .getString("ACCESS_REGISTER_STDMBEAN_INTERFACE_DESCRIPTION")); // NOI18N
301:                isMXBean.getAccessibleContext().setAccessibleName(
302:                        bundle.getString("ACCESS_IS_MXBEAN")); // NOI18N
303:                isMXBean.getAccessibleContext().setAccessibleDescription(
304:                        bundle.getString("ACCESS_IS_MXBEAN_DESCRIPTION")); // NOI18N
305:
306:                getAccessibleContext().setAccessibleDescription(
307:                        bundle.getString("ACCESS_PANEL"));// NOI18N
308:            }
309:
310:            private boolean isAcceptable() {
311:                return ((standardMBeanSelected() && isExistingClass && isValid) || (!standardMBeanSelected()
312:                        && isMBean && isValid));
313:            }
314:
315:            public boolean isMXBean() {
316:                return isMXBean.isSelected();
317:            }
318:
319:            public DataObject getDataObject() {
320:                return dob;
321:            }
322:
323:            /**
324:             * Displays a configuration dialog and updates Register MBean options
325:             * according to the user's settings.
326:             */
327:            public boolean configure() throws IOException {
328:
329:                // create and display the dialog:
330:                String title = bundle
331:                        .getString("LBL_RegisterMBeanAction.Title"); // NOI18N
332:                btnOK = new JButton(bundle.getString("LBL_OK")); //NOI18N
333:                btnOK.setEnabled(isAcceptable());
334:                btnOK.getAccessibleContext().setAccessibleDescription(
335:                        bundle.getString("ACCESS_OK_DESCRIPTION")); // NOI18N
336:
337:                //set listeners
338:                mbeanClassTextField.getDocument().addDocumentListener(this );
339:                classNameTextField.getDocument().addDocumentListener(
340:                        new DocumentListener() {
341:                            public void insertUpdate(DocumentEvent e) {
342:                                Document doc = e.getDocument();
343:                                try {
344:                                    String newClassName = doc.getText(0, doc
345:                                            .getLength());
346:                                    updateState(null);
347:                                } catch (BadLocationException excep) {
348:                                }
349:                            }
350:
351:                            public void removeUpdate(DocumentEvent e) {
352:                                Document doc = e.getDocument();
353:                                try {
354:                                    String newClassName = doc.getText(0, doc
355:                                            .getLength());
356:                                    updateState(null);
357:                                } catch (BadLocationException excep) {
358:                                }
359:                            }
360:
361:                            public void changedUpdate(DocumentEvent e) {
362:                                Document doc = e.getDocument();
363:                                try {
364:                                    String newClassName = doc.getText(0, doc
365:                                            .getLength());
366:                                    updateState(null);
367:                                } catch (BadLocationException excep) {
368:                                }
369:                            }
370:                        });
371:
372:                //init state
373:                updateComponentsState();
374:                updateState((String) mbeanClassTextField.getText());
375:                SourceGroup[] srcGroups = WizardHelpers
376:                        .getSourceGroups(project);
377:                ClassButton classBut = new ClassButton(browseButton,
378:                        classNameTextField, srcGroups);
379:                MBeanClassButton mbeanClassBut = new MBeanClassButton(
380:                        mbeanBrowseButton, mbeanClassTextField, srcGroups);
381:
382:                Object returned = DialogDisplayer.getDefault().notify(
383:                        new DialogDescriptor(this , title,
384:                                true, //modal
385:                                new Object[] { btnOK,
386:                                        DialogDescriptor.CANCEL_OPTION },
387:                                btnOK, //initial value
388:                                DialogDescriptor.DEFAULT_ALIGN, new HelpCtx(
389:                                        "jmx_agent_instantiate"), // NOI18N
390:                                (ActionListener) null));
391:
392:                if (returned == btnOK) {
393:                    return true;
394:                }
395:                return false;
396:            }
397:
398:            private void updateState(String currentMBeanClass) {
399:                try {
400:                    updateComponentsState();
401:                    if (standardMBeanSelected()) {
402:                        String className = classNameTextField.getText();
403:                        updateIntfAndConst(className);
404:                    } else
405:                        updateConstructors(currentMBeanClass);
406:                } catch (IOException ex) {
407:                    //ex.printStackTrace();
408:                    //System.out.println(ex);
409:                }
410:            }
411:
412:            private void updateComponentsState() {
413:                boolean standardMBean = standardMBeanSelected();
414:                // update state of user MBean use case
415:                mbeanClassLabel.setEnabled(!standardMBean);
416:                mbeanClassTextField.setEnabled(!standardMBean);
417:                mbeanBrowseButton.setEnabled(!standardMBean);
418:                // update state of StandardMBean use case
419:                classNameLabel.setEnabled(standardMBean);
420:                classNameTextField.setEnabled(standardMBean);
421:                isMXBean.setEnabled(standardMBean);
422:                browseButton.setEnabled(standardMBean);
423:                interfaceLabel.setEnabled(standardMBean);
424:                interfaceComboBox.setEnabled(standardMBean);
425:            }
426:
427:            private void updateIntfAndConst(String className)
428:                    throws IOException {
429:                isValid = true;
430:                stateLabel.setText(""); // NOI18N
431:
432:                JavaSource clazz = JavaModelHelper.findClassInProject(project,
433:                        className);
434:                //clear combobox list of interfaces and constructors
435:                interfaceComboBox.removeAllItems();
436:                constructorComboBox.removeAllItems();
437:                isExistingClass = (clazz != null);
438:                objectNameLabel.setEnabled(isExistingClass);
439:                objectNameTextField.setEnabled(isExistingClass);
440:                interfaceLabel.setEnabled(isExistingClass);
441:                interfaceComboBox.setEnabled(isExistingClass);
442:                constructorLabel.setEnabled(isExistingClass);
443:                constructorComboBox.setEnabled(isExistingClass);
444:                if (isExistingClass) {
445:                    objectNameTextField.setText(WizardHelpers
446:                            .reversePackageName(WizardHelpers
447:                                    .getPackageName(className))
448:                            + ":type=" + WizardHelpers.getClassName(className)); // NOI18N
449:
450:                    boolean isMBean = false;
451:
452:                    isMBean = JavaModelHelper.testMBeanCompliance(clazz);
453:
454:                    if (isMBean)
455:                        interfaceComboBox.addItem(bundle
456:                                .getString("LBL_GeneratedInterface")); // NOI18N
457:                    String[] interfaces = JavaModelHelper
458:                            .getInterfaceNames(clazz);
459:                    boolean hasIntf = (interfaces.length > 0);
460:                    if (hasIntf) {
461:                        for (int i = 0; i < interfaces.length; i++) {
462:                            String intf = interfaces[i];
463:                            int indexOfType = intf.lastIndexOf('<');
464:                            if (indexOfType != -1)
465:                                intf = intf.substring(0, indexOfType);
466:                            interfaceComboBox.addItem(intf);
467:                        }
468:                    }
469:
470:                    //select first item
471:                    if (isMBean)
472:                        interfaceComboBox.setSelectedItem(bundle
473:                                .getString("LBL_GeneratedInterface")); // NOI18N
474:                    else if (hasIntf)
475:                        interfaceComboBox.setSelectedIndex(0);
476:                    else {
477:                        isValid = false;
478:                        interfaceComboBox.setEnabled(false);
479:                        constructorComboBox.setEnabled(false);
480:                        stateLabel.setText(bundle
481:                                .getString("LBL_ClassWithNoInterface")); // NOI18N
482:                    }
483:
484:                    //discovery of class constructors
485:                    // WARNING THE Constructor is the JMI one, not from Reflect
486:                    constructorsMap = JavaModelHelper.getConstructors(clazz);
487:
488:                    Object[] constructors = getConstructors(constructorsMap);
489:
490:                    if (constructors.length > 0) {
491:                        constructorComboBox
492:                                .addItem(bundle
493:                                        .getString("LBL_StandardMBeanDefaultConstructor")); // NOI18N
494:                        for (int i = 0; i < constructors.length; i++) {
495:                            constructorComboBox.addItem(constructors[i]);
496:                        }
497:                        //select first row
498:                        constructorComboBox
499:                                .setSelectedItem(bundle
500:                                        .getString("LBL_StandardMBeanDefaultConstructor")); // NOI18N
501:                    } else {
502:                        constructorComboBox
503:                                .addItem(bundle
504:                                        .getString("LBL_StandardMBeanDefaultConstructor")); // NOI18N
505:                        if (JavaModelHelper.hasOnlyDefaultConstruct(clazz))
506:                            constructorComboBox.addItem(JavaModelHelper
507:                                    .getSimpleName(clazz)
508:                                    + "()"); // NOI18N
509:                        //select first row
510:                        constructorComboBox
511:                                .setSelectedItem(bundle
512:                                        .getString("LBL_StandardMBeanDefaultConstructor")); // NOI18N
513:                    }
514:                } else {
515:                    if (className.equals("")) // NOI18N
516:                        stateLabel.setText(""); // NOI18N
517:                    else
518:                        stateLabel.setText(bundle
519:                                .getString("LBL_ClassNotExist")); // NOI18N
520:                }
521:                btnOK.setEnabled(isAcceptable());
522:            }
523:
524:            private Object[] getConstructors(Map<String, ExecutableElement> m) {
525:                return m.keySet().toArray();
526:            }
527:
528:            private void updateConstructors(String currentMBeanClass)
529:                    throws IOException {
530:                //clear the comboBox list of MBean constructors
531:                constructorComboBox.removeAllItems();
532:                isValid = true;
533:                //clear information message
534:                stateLabel.setText(""); // NOI18N
535:
536:                mbeanClass = JavaModelHelper.findClassInProject(project,
537:                        currentMBeanClass);
538:                isMBean = false;
539:                if (mbeanClass != null) {
540:                    isMBean = JavaModelHelper.testMBeanCompliance(mbeanClass);
541:                }
542:
543:                objectNameLabel.setEnabled(isMBean);
544:                objectNameTextField.setEnabled(isMBean);
545:                constructorLabel.setEnabled(isMBean);
546:                constructorComboBox.setEnabled(isMBean);
547:                if (isMBean) {
548:                    String className = JavaModelHelper
549:                            .getSimpleName(mbeanClass);
550:                    String packageName = JavaModelHelper.getPackage(mbeanClass);
551:                    objectNameTextField.setText(packageName + ":type="
552:                            + className);// NOI18N
553:                    // NOI18N
554:                    constructorsMap = JavaModelHelper
555:                            .getConstructors(mbeanClass);
556:                    Object[] constructors = getConstructors(constructorsMap);
557:                    if (constructors.length > 0) {
558:                        constructorComboBox.setEnabled(true);
559:                        for (int i = 0; i < constructors.length; i++) {
560:                            constructorComboBox.addItem(constructors[i]);
561:                        }
562:                        constructorComboBox.addItem(bundle
563:                                .getString("LBL_ConstructorNotGenerated")); // NOI18N
564:                        //select first row
565:                        constructorComboBox.setSelectedItem(0); // NOI18N
566:                    } else if (JavaModelHelper
567:                            .hasOnlyDefaultConstruct(mbeanClass)) {
568:                        constructorComboBox.addItem(className + "()"); // NOI18N
569:                        constructorComboBox.setSelectedItem(0); // NOI18N
570:                    } else {
571:                        isValid = false;
572:                        constructorComboBox.setEnabled(false);
573:                        stateLabel.setText(bundle
574:                                .getString("LBL_ClassWithNoConstructor")); // NOI18N
575:                    }
576:                }
577:                if ((!isMBean) && (!currentMBeanClass.equals(""))) { // NOI18N
578:                    isValid = false;
579:                    stateLabel.setText(bundle.getString("LBL_NotMBeanClass")); // NOI18N
580:                }
581:                btnOK.setEnabled(isAcceptable());
582:            }
583:
584:            /** This method is called from within the constructor to
585:             * initialize the form.
586:             * WARNING: Do NOT modify this code. The content of this method is
587:             * always regenerated by the Form Editor.
588:             */
589:            // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
590:            private void initComponents() {
591:                java.awt.GridBagConstraints gridBagConstraints;
592:
593:                mbeanGroup = new javax.swing.ButtonGroup();
594:                northPanel = new javax.swing.JPanel();
595:                objectNameLabel = new javax.swing.JLabel();
596:                objectNameTextField = new javax.swing.JTextField();
597:                stateLabel = new javax.swing.JLabel();
598:                classNameTextField = new javax.swing.JTextField();
599:                classNameLabel = new javax.swing.JLabel();
600:                mbeanClassLabel = new javax.swing.JLabel();
601:                userMBeanRadioButton = new javax.swing.JRadioButton();
602:                standardMBeanRadioButton = new javax.swing.JRadioButton();
603:                interfaceLabel = new javax.swing.JLabel();
604:                interfaceComboBox = new javax.swing.JComboBox();
605:                constructorLabel = new javax.swing.JLabel();
606:                constructorComboBox = new javax.swing.JComboBox();
607:                browseButton = new javax.swing.JButton();
608:                mbeanClassTextField = new javax.swing.JTextField();
609:                mbeanBrowseButton = new javax.swing.JButton();
610:                chooseLabel = new javax.swing.JLabel();
611:                addedInfosLabel = new javax.swing.JLabel();
612:                isMXBean = new javax.swing.JCheckBox();
613:
614:                setLayout(new java.awt.BorderLayout());
615:
616:                northPanel.setLayout(new java.awt.GridBagLayout());
617:
618:                objectNameLabel.setLabelFor(objectNameTextField);
619:                gridBagConstraints = new java.awt.GridBagConstraints();
620:                gridBagConstraints.gridx = 0;
621:                gridBagConstraints.gridy = 8;
622:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
623:                gridBagConstraints.insets = new java.awt.Insets(5, 12, 0, 11);
624:                northPanel.add(objectNameLabel, gridBagConstraints);
625:
626:                objectNameTextField.setName("objectNameTextField"); // NOI18N
627:                gridBagConstraints = new java.awt.GridBagConstraints();
628:                gridBagConstraints.gridx = 1;
629:                gridBagConstraints.gridy = 8;
630:                gridBagConstraints.gridwidth = 2;
631:                gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
632:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
633:                gridBagConstraints.weightx = 1.0;
634:                gridBagConstraints.insets = new java.awt.Insets(5, 0, 0, 0);
635:                northPanel.add(objectNameTextField, gridBagConstraints);
636:
637:                stateLabel.setForeground(new java.awt.Color(0, 0, 128));
638:                stateLabel.setMinimumSize(new java.awt.Dimension(0, 20));
639:                stateLabel.setName("stateLabel"); // NOI18N
640:                stateLabel.setPreferredSize(new java.awt.Dimension(150, 20));
641:                gridBagConstraints = new java.awt.GridBagConstraints();
642:                gridBagConstraints.gridx = 2;
643:                gridBagConstraints.gridy = 10;
644:                gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
645:                gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
646:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
647:                gridBagConstraints.weightx = 1.0;
648:                gridBagConstraints.insets = new java.awt.Insets(11, 12, 0, 12);
649:                northPanel.add(stateLabel, gridBagConstraints);
650:
651:                classNameTextField.setName("classNameTextField"); // NOI18N
652:                gridBagConstraints = new java.awt.GridBagConstraints();
653:                gridBagConstraints.gridx = 2;
654:                gridBagConstraints.gridy = 4;
655:                gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
656:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
657:                gridBagConstraints.weightx = 1.0;
658:                gridBagConstraints.insets = new java.awt.Insets(5, 0, 0, 0);
659:                northPanel.add(classNameTextField, gridBagConstraints);
660:
661:                classNameLabel.setLabelFor(classNameTextField);
662:                gridBagConstraints = new java.awt.GridBagConstraints();
663:                gridBagConstraints.gridx = 0;
664:                gridBagConstraints.gridy = 4;
665:                gridBagConstraints.gridwidth = 2;
666:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
667:                gridBagConstraints.insets = new java.awt.Insets(5, 34, 0, 11);
668:                northPanel.add(classNameLabel, gridBagConstraints);
669:
670:                mbeanClassLabel.setLabelFor(mbeanClassTextField);
671:                gridBagConstraints = new java.awt.GridBagConstraints();
672:                gridBagConstraints.gridx = 0;
673:                gridBagConstraints.gridy = 2;
674:                gridBagConstraints.gridwidth = 2;
675:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
676:                gridBagConstraints.insets = new java.awt.Insets(5, 34, 0, 11);
677:                northPanel.add(mbeanClassLabel, gridBagConstraints);
678:
679:                mbeanGroup.add(userMBeanRadioButton);
680:                userMBeanRadioButton.setName("userMBeanRadioButton"); // NOI18N
681:                userMBeanRadioButton
682:                        .addActionListener(new java.awt.event.ActionListener() {
683:                            public void actionPerformed(
684:                                    java.awt.event.ActionEvent evt) {
685:                                userMBeanRadioButtonActionPerformed(evt);
686:                            }
687:                        });
688:                gridBagConstraints = new java.awt.GridBagConstraints();
689:                gridBagConstraints.gridx = 0;
690:                gridBagConstraints.gridy = 1;
691:                gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
692:                gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
693:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
694:                gridBagConstraints.insets = new java.awt.Insets(5, 12, 0, 12);
695:                northPanel.add(userMBeanRadioButton, gridBagConstraints);
696:
697:                mbeanGroup.add(standardMBeanRadioButton);
698:                standardMBeanRadioButton.setName("standardMBeanRadioButton"); // NOI18N
699:                standardMBeanRadioButton
700:                        .addActionListener(new java.awt.event.ActionListener() {
701:                            public void actionPerformed(
702:                                    java.awt.event.ActionEvent evt) {
703:                                stabdardMBeanRadioButtonActionPerformed(evt);
704:                            }
705:                        });
706:                gridBagConstraints = new java.awt.GridBagConstraints();
707:                gridBagConstraints.gridx = 0;
708:                gridBagConstraints.gridy = 3;
709:                gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
710:                gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
711:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
712:                gridBagConstraints.insets = new java.awt.Insets(11, 12, 0, 12);
713:                northPanel.add(standardMBeanRadioButton, gridBagConstraints);
714:
715:                interfaceLabel.setLabelFor(interfaceComboBox);
716:                gridBagConstraints = new java.awt.GridBagConstraints();
717:                gridBagConstraints.gridx = 0;
718:                gridBagConstraints.gridy = 5;
719:                gridBagConstraints.gridwidth = 2;
720:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
721:                gridBagConstraints.insets = new java.awt.Insets(5, 34, 0, 11);
722:                northPanel.add(interfaceLabel, gridBagConstraints);
723:
724:                interfaceComboBox
725:                        .setMinimumSize(new java.awt.Dimension(270, 25));
726:                interfaceComboBox.setName("interfaceComboBox"); // NOI18N
727:                interfaceComboBox.setPreferredSize(new java.awt.Dimension(270,
728:                        25));
729:                gridBagConstraints = new java.awt.GridBagConstraints();
730:                gridBagConstraints.gridx = 2;
731:                gridBagConstraints.gridy = 5;
732:                gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
733:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
734:                gridBagConstraints.weightx = 1.0;
735:                gridBagConstraints.insets = new java.awt.Insets(5, 0, 0, 0);
736:                northPanel.add(interfaceComboBox, gridBagConstraints);
737:
738:                constructorLabel.setLabelFor(constructorComboBox);
739:                gridBagConstraints = new java.awt.GridBagConstraints();
740:                gridBagConstraints.gridx = 0;
741:                gridBagConstraints.gridy = 9;
742:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
743:                gridBagConstraints.insets = new java.awt.Insets(5, 12, 0, 11);
744:                northPanel.add(constructorLabel, gridBagConstraints);
745:
746:                constructorComboBox.setName("constructorComboBox"); // NOI18N
747:                gridBagConstraints = new java.awt.GridBagConstraints();
748:                gridBagConstraints.gridx = 1;
749:                gridBagConstraints.gridy = 9;
750:                gridBagConstraints.gridwidth = 2;
751:                gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
752:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
753:                gridBagConstraints.weightx = 1.0;
754:                gridBagConstraints.insets = new java.awt.Insets(5, 0, 0, 0);
755:                northPanel.add(constructorComboBox, gridBagConstraints);
756:
757:                browseButton.setText("jButton1");
758:                browseButton.setName("browseButton"); // NOI18N
759:                gridBagConstraints = new java.awt.GridBagConstraints();
760:                gridBagConstraints.gridx = 3;
761:                gridBagConstraints.gridy = 4;
762:                gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
763:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
764:                gridBagConstraints.insets = new java.awt.Insets(5, 5, 0, 12);
765:                northPanel.add(browseButton, gridBagConstraints);
766:
767:                mbeanClassTextField.setName("mbeanClassTextField"); // NOI18N
768:                gridBagConstraints = new java.awt.GridBagConstraints();
769:                gridBagConstraints.gridx = 2;
770:                gridBagConstraints.gridy = 2;
771:                gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
772:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
773:                gridBagConstraints.weightx = 1.0;
774:                gridBagConstraints.insets = new java.awt.Insets(5, 0, 0, 0);
775:                northPanel.add(mbeanClassTextField, gridBagConstraints);
776:
777:                mbeanBrowseButton.setText("jButton1");
778:                mbeanBrowseButton.setName("mbeanBrowseButton"); // NOI18N
779:                mbeanBrowseButton
780:                        .addActionListener(new java.awt.event.ActionListener() {
781:                            public void actionPerformed(
782:                                    java.awt.event.ActionEvent evt) {
783:                                mbeanBrowseButtonActionPerformed(evt);
784:                            }
785:                        });
786:                gridBagConstraints = new java.awt.GridBagConstraints();
787:                gridBagConstraints.gridx = 3;
788:                gridBagConstraints.gridy = 2;
789:                gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
790:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
791:                gridBagConstraints.insets = new java.awt.Insets(5, 5, 0, 12);
792:                northPanel.add(mbeanBrowseButton, gridBagConstraints);
793:
794:                chooseLabel.setMinimumSize(new java.awt.Dimension(0, 20));
795:                chooseLabel.setName("stateLabel"); // NOI18N
796:                chooseLabel.setPreferredSize(new java.awt.Dimension(150, 20));
797:                gridBagConstraints = new java.awt.GridBagConstraints();
798:                gridBagConstraints.gridx = 0;
799:                gridBagConstraints.gridy = 0;
800:                gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
801:                gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
802:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
803:                gridBagConstraints.weightx = 1.0;
804:                gridBagConstraints.insets = new java.awt.Insets(12, 12, 0, 12);
805:                northPanel.add(chooseLabel, gridBagConstraints);
806:
807:                addedInfosLabel.setMinimumSize(new java.awt.Dimension(0, 20));
808:                addedInfosLabel.setName("stateLabel"); // NOI18N
809:                addedInfosLabel
810:                        .setPreferredSize(new java.awt.Dimension(150, 20));
811:                gridBagConstraints = new java.awt.GridBagConstraints();
812:                gridBagConstraints.gridx = 0;
813:                gridBagConstraints.gridy = 7;
814:                gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
815:                gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
816:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
817:                gridBagConstraints.weightx = 1.0;
818:                gridBagConstraints.insets = new java.awt.Insets(24, 12, 0, 12);
819:                northPanel.add(addedInfosLabel, gridBagConstraints);
820:
821:                isMXBean.setText("jCheckBox1");
822:                isMXBean.setBorder(javax.swing.BorderFactory.createEmptyBorder(
823:                        0, 0, 0, 0));
824:                isMXBean.setMargin(new java.awt.Insets(0, 0, 0, 0));
825:                isMXBean.setName("isMXBeanCheckBox"); // NOI18N
826:                gridBagConstraints = new java.awt.GridBagConstraints();
827:                gridBagConstraints.gridx = 0;
828:                gridBagConstraints.gridy = 6;
829:                gridBagConstraints.gridwidth = 2;
830:                gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
831:                gridBagConstraints.insets = new java.awt.Insets(5, 34, 0, 11);
832:                northPanel.add(isMXBean, gridBagConstraints);
833:
834:                add(northPanel, java.awt.BorderLayout.NORTH);
835:            }// </editor-fold>//GEN-END:initComponents
836:
837:            private void mbeanBrowseButtonActionPerformed(
838:                    java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mbeanBrowseButtonActionPerformed
839:            // TODO add your handling code here:
840:            }//GEN-LAST:event_mbeanBrowseButtonActionPerformed
841:
842:            private void stabdardMBeanRadioButtonActionPerformed(
843:                    java.awt.event.ActionEvent evt) {//GEN-FIRST:event_stabdardMBeanRadioButtonActionPerformed
844:                updateState(null);
845:            }//GEN-LAST:event_stabdardMBeanRadioButtonActionPerformed
846:
847:            private void userMBeanRadioButtonActionPerformed(
848:                    java.awt.event.ActionEvent evt) {//GEN-FIRST:event_userMBeanRadioButtonActionPerformed
849:                String newMBeanClass = mbeanClassTextField.getText();
850:                updateState(newMBeanClass);
851:            }//GEN-LAST:event_userMBeanRadioButtonActionPerformed
852:
853:            // Variables declaration - do not modify//GEN-BEGIN:variables
854:            private javax.swing.JLabel addedInfosLabel;
855:            private javax.swing.JButton browseButton;
856:            private javax.swing.JLabel chooseLabel;
857:            private javax.swing.JLabel classNameLabel;
858:            private javax.swing.JTextField classNameTextField;
859:            private javax.swing.JComboBox constructorComboBox;
860:            private javax.swing.JLabel constructorLabel;
861:            private javax.swing.JComboBox interfaceComboBox;
862:            private javax.swing.JLabel interfaceLabel;
863:            private javax.swing.JCheckBox isMXBean;
864:            private javax.swing.JButton mbeanBrowseButton;
865:            private javax.swing.JLabel mbeanClassLabel;
866:            private javax.swing.JTextField mbeanClassTextField;
867:            private javax.swing.ButtonGroup mbeanGroup;
868:            private javax.swing.JPanel northPanel;
869:            private javax.swing.JLabel objectNameLabel;
870:            private javax.swing.JTextField objectNameTextField;
871:            private javax.swing.JRadioButton standardMBeanRadioButton;
872:            private javax.swing.JLabel stateLabel;
873:            private javax.swing.JRadioButton userMBeanRadioButton;
874:
875:            // End of variables declaration//GEN-END:variables
876:            public void itemStateChanged(ItemEvent e) {
877:                String newMBeanClass = (String) mbeanClassTextField.getText();
878:                updateState(newMBeanClass);
879:            }
880:
881:            public void insertUpdate(DocumentEvent e) {
882:                Document doc = e.getDocument();
883:                try {
884:                    String newMBeanClass = doc.getText(0, doc.getLength());
885:                    updateState(newMBeanClass);
886:                } catch (BadLocationException excep) {
887:                }
888:            }
889:
890:            public void removeUpdate(DocumentEvent e) {
891:                Document doc = e.getDocument();
892:                try {
893:                    String newMBeanClass = doc.getText(0, doc.getLength());
894:                    updateState(newMBeanClass);
895:                } catch (BadLocationException excep) {
896:                }
897:            }
898:
899:            public void changedUpdate(DocumentEvent e) {
900:                Document doc = e.getDocument();
901:                try {
902:                    String newMBeanClass = doc.getText(0, doc.getLength());
903:                    updateState(newMBeanClass);
904:                } catch (BadLocationException excep) {
905:                }
906:            }
907:        }
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.