KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > wsdl > ui > wizard > CreateBindingFromPortTypeVisualPanel1


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-2007 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.xml.wsdl.ui.wizard;
21
22 import java.awt.Component JavaDoc;
23 import java.util.ArrayList JavaDoc;
24 import java.util.Collection JavaDoc;
25 import java.util.HashSet JavaDoc;
26 import java.util.Iterator JavaDoc;
27 import java.util.List JavaDoc;
28 import java.util.Set JavaDoc;
29
30 import javax.swing.DefaultComboBoxModel JavaDoc;
31 import javax.swing.DefaultListCellRenderer JavaDoc;
32 import javax.swing.JComponent JavaDoc;
33 import javax.swing.JList JavaDoc;
34 import javax.swing.JPanel JavaDoc;
35 import javax.swing.event.ChangeEvent JavaDoc;
36 import javax.swing.event.ChangeListener JavaDoc;
37 import javax.swing.event.DocumentEvent JavaDoc;
38 import javax.swing.event.DocumentListener JavaDoc;
39
40 import org.netbeans.modules.xml.wsdl.model.Operation;
41 import org.netbeans.modules.xml.wsdl.model.PortType;
42 import org.netbeans.modules.xml.wsdl.ui.actions.NameGenerator;
43 import org.netbeans.modules.xml.wsdl.ui.extensibility.model.WSDLExtensibilityElement;
44 import org.netbeans.modules.xml.wsdl.ui.extensibility.model.WSDLExtensibilityElementInfo;
45 import org.netbeans.modules.xml.wsdl.ui.extensibility.model.WSDLExtensibilityElementInfoContainer;
46 import org.netbeans.modules.xml.wsdl.ui.extensibility.model.WSDLExtensibilityElements;
47 import org.netbeans.modules.xml.wsdl.ui.wsdl.util.DisplayObject;
48 import org.openide.WizardDescriptor;
49 import org.openide.loaders.DataObject;
50 import org.openide.nodes.Node;
51 import org.openide.util.NbBundle;
52
53 public final class CreateBindingFromPortTypeVisualPanel1 extends JPanel JavaDoc {
54     
55     private String JavaDoc bindingName;
56     private Collection JavaDoc operations;
57     private WSDLExtensibilityElements mElements;
58     
59     /** Creates new form CreateBindingFromPortTypeVisualPanel1 */
60     public CreateBindingFromPortTypeVisualPanel1(PortType portType, WSDLExtensibilityElements elements) {
61         bindingName = NameGenerator.getInstance().generateUniqueBindingName(portType.getModel(), portType.getName());
62         operations = portType.getOperations();
63         mElements = elements;
64         initComponents();
65         init();
66     }
67     
68     private void init() {
69         jTextField1.getDocument().addDocumentListener(new DocumentListener JavaDoc() {
70             public void changedUpdate(DocumentEvent JavaDoc e) {
71                 fireChangeEvent();
72             }
73             public void insertUpdate(DocumentEvent JavaDoc e) {
74                 fireChangeEvent();
75             }
76             public void removeUpdate(DocumentEvent JavaDoc e) {
77                 fireChangeEvent();
78             }
79         });
80         jList1.setModel(new DefaultComboBoxModel JavaDoc(operations.toArray()));
81         
82         jList1.setCellRenderer(new DefaultListCellRenderer JavaDoc() {
83         
84             @Override JavaDoc
85             public Component JavaDoc getListCellRendererComponent(JList JavaDoc list, Object JavaDoc value,
86                     int index, boolean isSelected, boolean cellHasFocus) {
87                 
88                 Component JavaDoc comp = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
89                 setText(((Operation) list.getModel().getElementAt(index)).getName());
90                 return comp;
91             }
92         
93         });
94         
95         if (jList1.isSelectionEmpty()) {
96             jList1.setSelectedIndex(0);
97         }
98         ArrayList JavaDoc<DisplayObject> comboboxList = new ArrayList JavaDoc<DisplayObject>();
99         WSDLExtensibilityElement element = mElements.getWSDLExtensibilityElement(WSDLExtensibilityElements.ELEMENT_BINDING);
100         List JavaDoc elementInfos = element.getWSDLExtensibilityElementInfos();
101         Iterator JavaDoc it = elementInfos.iterator();
102         while(it.hasNext()) {
103             WSDLExtensibilityElementInfo elementInfo = (WSDLExtensibilityElementInfo) it.next();
104             DataObject dataObject = elementInfo.getDataObject();
105             Node delegateNode = dataObject.getNodeDelegate();
106             if(delegateNode != null) {
107                 DisplayObject nameValuePair = new DisplayObject(delegateNode.getDisplayName(), elementInfo);
108                 comboboxList.add(nameValuePair);
109             }
110         }
111         
112         
113         Iterator JavaDoc aweIt = element.getAllWSDLExtensibilityElementInfoContainers().iterator();
114         while(aweIt.hasNext()) {
115             WSDLExtensibilityElementInfoContainer provider = (WSDLExtensibilityElementInfoContainer) aweIt.next();
116             List JavaDoc infos = provider.getAllWSDLExtensibilityElementInfo();
117             if (infos != null) {
118                 for (int i = 0; i < infos.size(); i++) {
119                     WSDLExtensibilityElementInfo elementInfo = (WSDLExtensibilityElementInfo) infos.get(i);
120                     DataObject dataObject = elementInfo.getDataObject();
121                     Node delegateNode = dataObject.getNodeDelegate();
122                     if(delegateNode != null) {
123                         DisplayObject nameValuePair = new DisplayObject(delegateNode.getDisplayName(), elementInfo);
124                         comboboxList.add(nameValuePair);
125                     }
126                 }
127             }
128         }
129         jComboBox1.setModel(new DefaultComboBoxModel JavaDoc(comboboxList.toArray()));
130
131         
132         
133     }
134     
135     public String JavaDoc getName() {
136         return NbBundle.getMessage(CreateBindingFromPortTypeVisualPanel1.class, "CreateBindingFromPortTypeVisualPanel1_NAME");
137     }
138     
139     /** This method is called from within the constructor to
140      * initialize the form.
141      * WARNING: Do NOT modify this code. The content of this method is
142      * always regenerated by the Form Editor.
143      */

144     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
145
private void initComponents() {
146         jTextField1 = new javax.swing.JTextField JavaDoc();
147         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
148         jList1 = new javax.swing.JList JavaDoc();
149         jComboBox1 = new javax.swing.JComboBox JavaDoc();
150         jLabel1 = new javax.swing.JLabel JavaDoc();
151         jLabel2 = new javax.swing.JLabel JavaDoc();
152         jLabel3 = new javax.swing.JLabel JavaDoc();
153
154         jTextField1.setText(bindingName);
155         jTextField1.addActionListener(new java.awt.event.ActionListener JavaDoc() {
156             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
157                 jTextField1ActionPerformed(evt);
158             }
159         });
160
161         jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener JavaDoc() {
162             public void valueChanged(javax.swing.event.ListSelectionEvent JavaDoc evt) {
163                 jList1ValueChanged(evt);
164             }
165         });
166
167         jScrollPane1.setViewportView(jList1);
168
169         org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(CreateBindingFromPortTypeVisualPanel1.class, "CreateBindingFromPortTypeVisualPanel1.jLabel1.text")); // NOI18N
170

171         org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(CreateBindingFromPortTypeVisualPanel1.class, "CreateBindingFromPortTypeVisualPanel1.jLabel2.text")); // NOI18N
172

173         org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(CreateBindingFromPortTypeVisualPanel1.class, "CreateBindingFromPortTypeVisualPanel1.jLabel3.text")); // NOI18N
174

175         org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
176         this.setLayout(layout);
177         layout.setHorizontalGroup(
178             layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
179             .add(layout.createSequentialGroup()
180                 .addContainerGap()
181                 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
182                     .add(jLabel1)
183                     .add(jLabel2)
184                     .add(jLabel3))
185                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
186                 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
187                     .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
188                         .add(org.jdesktop.layout.GroupLayout.TRAILING, jComboBox1, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
189                         .add(org.jdesktop.layout.GroupLayout.TRAILING, jTextField1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 312, Short.MAX_VALUE))
190                     .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 312, Short.MAX_VALUE))
191                 .addContainerGap())
192         );
193         layout.setVerticalGroup(
194             layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
195             .add(layout.createSequentialGroup()
196                 .addContainerGap()
197                 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
198                     .add(jLabel1)
199                     .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
200                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
201                 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
202                     .add(jLabel2)
203                     .add(jComboBox1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
204                 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
205                 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
206                     .add(jLabel3)
207                     .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 224, Short.MAX_VALUE))
208                 .addContainerGap())
209         );
210     }// </editor-fold>//GEN-END:initComponents
211

212     private void jList1ValueChanged(javax.swing.event.ListSelectionEvent JavaDoc evt) {//GEN-FIRST:event_jList1ValueChanged
213
fireChangeEvent();
214     }//GEN-LAST:event_jList1ValueChanged
215

216     private void jTextField1ActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jTextField1ActionPerformed
217
fireChangeEvent();
218     }//GEN-LAST:event_jTextField1ActionPerformed
219

220     public String JavaDoc getBindingName() {
221         return jTextField1.getText();
222     }
223     
224     public JComponent JavaDoc getBindingNameComponent() {
225         return jTextField1;
226     }
227     
228     public Object JavaDoc[] getSelectedOperations() {
229         return jList1.getSelectedValues();
230     }
231     
232     public JComponent JavaDoc getOperationsComponent() {
233         return jList1;
234     }
235     // Variables declaration - do not modify//GEN-BEGIN:variables
236
private javax.swing.JComboBox JavaDoc jComboBox1;
237     private javax.swing.JLabel JavaDoc jLabel1;
238     private javax.swing.JLabel JavaDoc jLabel2;
239     private javax.swing.JLabel JavaDoc jLabel3;
240     private javax.swing.JList JavaDoc jList1;
241     private javax.swing.JScrollPane JavaDoc jScrollPane1;
242     private javax.swing.JTextField JavaDoc jTextField1;
243     // End of variables declaration//GEN-END:variables
244

245     
246     
247     private final Set JavaDoc<ChangeListener JavaDoc> listeners = new HashSet JavaDoc<ChangeListener JavaDoc>(1);
248     public final void addChangeListener(ChangeListener JavaDoc l) {
249         synchronized (listeners) {
250             listeners.add(l);
251         }
252     }
253     public final void removeChangeListener(ChangeListener JavaDoc l) {
254         synchronized (listeners) {
255             listeners.remove(l);
256         }
257     }
258     protected final void fireChangeEvent() {
259         Iterator JavaDoc<ChangeListener JavaDoc> it;
260         synchronized (listeners) {
261             it = new HashSet JavaDoc<ChangeListener JavaDoc>(listeners).iterator();
262         }
263         ChangeEvent JavaDoc ev = new ChangeEvent JavaDoc(this);
264         while (it.hasNext()) {
265             it.next().stateChanged(ev);
266         }
267     }
268     
269     public void storeValues(WizardDescriptor d) {
270         if (d != null) {
271             d.putProperty("bindingName", getBindingName());
272             d.putProperty("selectedOperations", getSelectedOperations());
273             d.putProperty("protocol", jComboBox1.getSelectedItem());
274         }
275     }
276 }
277
278
Popular Tags