KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > websvc > core > dev > wizard > WebServiceType


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.websvc.core.dev.wizard;
21
22 import java.awt.Component JavaDoc;
23 import java.util.HashSet JavaDoc;
24 import java.util.Iterator JavaDoc;
25 import java.util.Set JavaDoc;
26 import javax.swing.JComponent JavaDoc;
27 import javax.swing.event.ChangeEvent JavaDoc;
28 import javax.swing.event.ChangeListener JavaDoc;
29 import org.netbeans.api.project.Project;
30
31 import org.openide.WizardDescriptor;
32 import org.openide.WizardValidationException;
33 import org.openide.util.HelpCtx;
34
35 /**
36  *
37  * @author radko
38  */

39 public class WebServiceType implements WizardDescriptor.Panel, WizardDescriptor.FinishablePanel, WizardDescriptor.ValidatingPanel, ChangeListener JavaDoc {
40
41     private WebServiceTypePanel component;
42     private WizardDescriptor wizardDescriptor;
43     private Project project;
44     
45     /** Creates a new instance of WebServiceType */
46     public WebServiceType(Project project, WizardDescriptor wizardDescriptor) {
47         this.project = project;
48         this.wizardDescriptor = wizardDescriptor;
49     }
50
51     public Component JavaDoc getComponent() {
52         if (component == null) {
53             component = new WebServiceTypePanel(project);
54             component.addChangeListener(this);
55         }
56         
57         return component;
58     }
59
60     public HelpCtx getHelp() {
61         HelpCtx helpCtx = null;
62         if (getComponent() != null && (helpCtx = component.getHelpCtx()) != null)
63             return helpCtx;
64         
65         return new HelpCtx(WebServiceType.class);
66     }
67
68     public void readSettings(Object JavaDoc settings) {
69         wizardDescriptor = (WizardDescriptor) settings;
70         component.read (wizardDescriptor);
71         
72         // XXX hack, TemplateWizard in final setTemplateImpl() forces new wizard's title
73
// this name is used in NewProjectWizard to modify the title
74
Object JavaDoc substitute = ((JComponent JavaDoc) component).getClientProperty("NewProjectWizard_Title"); // NOI18N
75
if (substitute != null)
76             wizardDescriptor.putProperty("NewProjectWizard_Title", substitute); // NOI18N
77
}
78
79     public void storeSettings(Object JavaDoc settings) {
80         WizardDescriptor d = (WizardDescriptor) settings;
81         component.store(d);
82         ((WizardDescriptor) d).putProperty("NewProjectWizard_Title", null); // NOI18N
83
}
84
85     public boolean isValid() {
86         getComponent();
87         return component.valid(wizardDescriptor);
88     }
89
90     private final Set JavaDoc/*<ChangeListener>*/ listeners = new HashSet JavaDoc(1);
91     
92     public void addChangeListener(ChangeListener JavaDoc l) {
93         synchronized (listeners) {
94             listeners.add(l);
95         }
96     }
97
98     public void removeChangeListener(ChangeListener JavaDoc l) {
99         synchronized (listeners) {
100             listeners.remove(l);
101         }
102     }
103
104     public boolean isFinishPanel() {
105         return isValid();
106     }
107
108     public void validate() throws WizardValidationException {
109         component.validate(wizardDescriptor);
110     }
111
112     public void stateChanged(ChangeEvent JavaDoc e) {
113         fireChange();
114     }
115     
116     private void fireChange() {
117         ChangeEvent JavaDoc e = new ChangeEvent JavaDoc(this);
118         Iterator JavaDoc it = listeners.iterator();
119         while (it.hasNext()) {
120             ((ChangeListener JavaDoc)it.next()).stateChanged(e);
121         }
122     }
123
124 }
125
Popular Tags