1 19 20 package org.netbeans.modules.xml.wsdl.ui.wizard; 21 22 import java.awt.Component ; 23 import java.util.ArrayList ; 24 import java.util.Collection ; 25 import java.util.HashSet ; 26 import java.util.Iterator ; 27 import java.util.List ; 28 import java.util.Set ; 29 30 import javax.swing.DefaultComboBoxModel ; 31 import javax.swing.DefaultListCellRenderer ; 32 import javax.swing.JComponent ; 33 import javax.swing.JList ; 34 import javax.swing.JPanel ; 35 import javax.swing.event.ChangeEvent ; 36 import javax.swing.event.ChangeListener ; 37 import javax.swing.event.DocumentEvent ; 38 import javax.swing.event.DocumentListener ; 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 { 54 55 private String bindingName; 56 private Collection operations; 57 private WSDLExtensibilityElements mElements; 58 59 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 () { 70 public void changedUpdate(DocumentEvent e) { 71 fireChangeEvent(); 72 } 73 public void insertUpdate(DocumentEvent e) { 74 fireChangeEvent(); 75 } 76 public void removeUpdate(DocumentEvent e) { 77 fireChangeEvent(); 78 } 79 }); 80 jList1.setModel(new DefaultComboBoxModel (operations.toArray())); 81 82 jList1.setCellRenderer(new DefaultListCellRenderer () { 83 84 @Override 85 public Component getListCellRendererComponent(JList list, Object value, 86 int index, boolean isSelected, boolean cellHasFocus) { 87 88 Component 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 <DisplayObject> comboboxList = new ArrayList <DisplayObject>(); 99 WSDLExtensibilityElement element = mElements.getWSDLExtensibilityElement(WSDLExtensibilityElements.ELEMENT_BINDING); 100 List elementInfos = element.getWSDLExtensibilityElementInfos(); 101 Iterator 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 aweIt = element.getAllWSDLExtensibilityElementInfoContainers().iterator(); 114 while(aweIt.hasNext()) { 115 WSDLExtensibilityElementInfoContainer provider = (WSDLExtensibilityElementInfoContainer) aweIt.next(); 116 List 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 (comboboxList.toArray())); 130 131 132 133 } 134 135 public String getName() { 136 return NbBundle.getMessage(CreateBindingFromPortTypeVisualPanel1.class, "CreateBindingFromPortTypeVisualPanel1_NAME"); 137 } 138 139 144 private void initComponents() { 146 jTextField1 = new javax.swing.JTextField (); 147 jScrollPane1 = new javax.swing.JScrollPane (); 148 jList1 = new javax.swing.JList (); 149 jComboBox1 = new javax.swing.JComboBox (); 150 jLabel1 = new javax.swing.JLabel (); 151 jLabel2 = new javax.swing.JLabel (); 152 jLabel3 = new javax.swing.JLabel (); 153 154 jTextField1.setText(bindingName); 155 jTextField1.addActionListener(new java.awt.event.ActionListener () { 156 public void actionPerformed(java.awt.event.ActionEvent evt) { 157 jTextField1ActionPerformed(evt); 158 } 159 }); 160 161 jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener () { 162 public void valueChanged(javax.swing.event.ListSelectionEvent 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")); 171 org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(CreateBindingFromPortTypeVisualPanel1.class, "CreateBindingFromPortTypeVisualPanel1.jLabel2.text")); 173 org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(CreateBindingFromPortTypeVisualPanel1.class, "CreateBindingFromPortTypeVisualPanel1.jLabel3.text")); 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 } 212 private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) { fireChangeEvent(); 214 } 216 private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) { fireChangeEvent(); 218 } 220 public String getBindingName() { 221 return jTextField1.getText(); 222 } 223 224 public JComponent getBindingNameComponent() { 225 return jTextField1; 226 } 227 228 public Object [] getSelectedOperations() { 229 return jList1.getSelectedValues(); 230 } 231 232 public JComponent getOperationsComponent() { 233 return jList1; 234 } 235 private javax.swing.JComboBox jComboBox1; 237 private javax.swing.JLabel jLabel1; 238 private javax.swing.JLabel jLabel2; 239 private javax.swing.JLabel jLabel3; 240 private javax.swing.JList jList1; 241 private javax.swing.JScrollPane jScrollPane1; 242 private javax.swing.JTextField jTextField1; 243 245 246 247 private final Set <ChangeListener > listeners = new HashSet <ChangeListener >(1); 248 public final void addChangeListener(ChangeListener l) { 249 synchronized (listeners) { 250 listeners.add(l); 251 } 252 } 253 public final void removeChangeListener(ChangeListener l) { 254 synchronized (listeners) { 255 listeners.remove(l); 256 } 257 } 258 protected final void fireChangeEvent() { 259 Iterator <ChangeListener > it; 260 synchronized (listeners) { 261 it = new HashSet <ChangeListener >(listeners).iterator(); 262 } 263 ChangeEvent ev = new ChangeEvent (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 |