1 19 24 25 package org.netbeans.modules.j2ee.sun.share.configbean.customizers.webservice; 26 27 import java.util.ArrayList ; 28 29 import java.awt.Component ; 30 import java.awt.Container ; 31 import java.awt.GridBagConstraints ; 32 import java.awt.Insets ; 33 import javax.swing.event.TableModelEvent ; 34 import javax.swing.event.TableModelListener ; 35 36 import org.netbeans.modules.j2ee.sun.dd.api.CommonDDBean; 37 import org.netbeans.modules.j2ee.sun.dd.api.VersionNotSupportedException; 38 import org.netbeans.modules.j2ee.sun.dd.api.common.MessageSecurityBinding; 39 import org.netbeans.modules.j2ee.sun.dd.api.common.PortInfo; 40 import org.netbeans.modules.j2ee.sun.dd.api.common.WsdlPort; 41 import org.netbeans.modules.j2ee.sun.share.configbean.ASDDVersion; 42 import org.netbeans.modules.j2ee.sun.share.configbean.AppClientRoot; 43 import org.netbeans.modules.j2ee.sun.share.configbean.BaseEjb; 44 45 import org.netbeans.modules.j2ee.sun.share.configbean.ServiceRef; 46 import org.netbeans.modules.j2ee.sun.share.configbean.StorageBeanFactory; 47 import org.netbeans.modules.j2ee.sun.share.configbean.Utils; 48 import org.netbeans.modules.j2ee.sun.share.configbean.WebAppRoot; 49 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.GenericTableModel; 50 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.GenericTablePanel; 51 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.common.HelpContext; 52 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.data.DynamicPropertyPanel; 53 import org.netbeans.modules.j2ee.sun.share.configbean.customizers.data.PropertyListMapping; 54 import org.openide.ErrorManager; 55 56 60 public class SelectedPortInfoPanel extends javax.swing.JPanel implements TableModelListener { 61 62 private ServiceRefCustomizer masterPanel; 63 64 private PortInfoMapping selectedPortInfoMap; 65 private PortInfo selectedPortInfo; 66 private boolean selectedPortSetup; 67 68 private GenericTableModel stubPropertiesModel; 69 private GenericTablePanel stubPropertiesPanel; 70 private GenericTableModel callPropertiesModel; 71 private GenericTablePanel callPropertiesPanel; 72 73 74 public SelectedPortInfoPanel(ServiceRefCustomizer src) { 75 masterPanel = src; 76 selectedPortSetup = false; 77 78 initComponents(); 79 initUserComponents(); 80 } 81 82 87 private void initComponents() { 89 java.awt.GridBagConstraints gridBagConstraints; 90 91 jLblSelectedPortInfo = new javax.swing.JLabel (); 92 jPnlPortInfoDesc = new javax.swing.JPanel (); 93 jLblServiceEI = new javax.swing.JLabel (); 94 jTxtServiceEI = new javax.swing.JTextField (); 95 jLblNamespaceURI = new javax.swing.JLabel (); 96 jTxtNamespaceURI = new javax.swing.JTextField (); 97 jLblLocalpart = new javax.swing.JLabel (); 98 jTxtLocalpart = new javax.swing.JTextField (); 99 jLblEnableMsgSecurity = new javax.swing.JLabel (); 100 jChkEnableMsgSecurity = new javax.swing.JCheckBox (); 101 jBtnEditBindings = new javax.swing.JButton (); 102 103 setLayout(new java.awt.GridBagLayout ()); 104 105 setBorder(javax.swing.BorderFactory.createEtchedBorder()); 106 getAccessibleContext().setAccessibleName(ServiceRefCustomizer.bundle.getString("ACSN_SelectedPortInfo")); 107 getAccessibleContext().setAccessibleDescription(ServiceRefCustomizer.bundle.getString("ACSD_SelectedPortInfo")); 108 jLblSelectedPortInfo.setLabelFor(jPnlPortInfoDesc); 109 jLblSelectedPortInfo.setText(ServiceRefCustomizer.bundle.getString("LBL_SelectedPortInfo")); 110 gridBagConstraints = new java.awt.GridBagConstraints (); 111 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 112 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 113 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 5); 114 add(jLblSelectedPortInfo, gridBagConstraints); 115 116 jPnlPortInfoDesc.setLayout(new java.awt.GridBagLayout ()); 117 118 jLblServiceEI.setLabelFor(jTxtServiceEI); 119 jLblServiceEI.setText(ServiceRefCustomizer.bundle.getString("LBL_ServiceEndPoint_1")); 120 gridBagConstraints = new java.awt.GridBagConstraints (); 121 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 122 jPnlPortInfoDesc.add(jLblServiceEI, gridBagConstraints); 123 124 jTxtServiceEI.addKeyListener(new java.awt.event.KeyAdapter () { 125 public void keyReleased(java.awt.event.KeyEvent evt) { 126 jTxtServiceEIKeyReleased(evt); 127 } 128 }); 129 130 gridBagConstraints = new java.awt.GridBagConstraints (); 131 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 132 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 133 gridBagConstraints.weightx = 1.0; 134 gridBagConstraints.insets = new java.awt.Insets (0, 6, 0, 0); 135 jPnlPortInfoDesc.add(jTxtServiceEI, gridBagConstraints); 136 jTxtServiceEI.getAccessibleContext().setAccessibleName(ServiceRefCustomizer.bundle.getString("ACSN_ServiceEndPoint")); 137 jTxtServiceEI.getAccessibleContext().setAccessibleDescription(ServiceRefCustomizer.bundle.getString("ACSD_ServiceEndPoint")); 138 139 jLblNamespaceURI.setLabelFor(jTxtNamespaceURI); 140 jLblNamespaceURI.setText(ServiceRefCustomizer.bundle.getString("LBL_NamespaceURI_1")); 141 gridBagConstraints = new java.awt.GridBagConstraints (); 142 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 143 gridBagConstraints.insets = new java.awt.Insets (6, 0, 0, 0); 144 jPnlPortInfoDesc.add(jLblNamespaceURI, gridBagConstraints); 145 146 jTxtNamespaceURI.addKeyListener(new java.awt.event.KeyAdapter () { 147 public void keyReleased(java.awt.event.KeyEvent evt) { 148 jTxtNamespaceURIKeyReleased(evt); 149 } 150 }); 151 152 gridBagConstraints = new java.awt.GridBagConstraints (); 153 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 154 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 155 gridBagConstraints.weightx = 1.0; 156 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 157 jPnlPortInfoDesc.add(jTxtNamespaceURI, gridBagConstraints); 158 jTxtNamespaceURI.getAccessibleContext().setAccessibleName(ServiceRefCustomizer.bundle.getString("ACSN_NamespaceURI")); 159 jTxtNamespaceURI.getAccessibleContext().setAccessibleDescription(ServiceRefCustomizer.bundle.getString("ACSD_NamespaceURI")); 160 161 jLblLocalpart.setLabelFor(jTxtLocalpart); 162 jLblLocalpart.setText(ServiceRefCustomizer.bundle.getString("LBL_Localpart_1")); 163 gridBagConstraints = new java.awt.GridBagConstraints (); 164 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 165 gridBagConstraints.insets = new java.awt.Insets (6, 0, 0, 0); 166 jPnlPortInfoDesc.add(jLblLocalpart, gridBagConstraints); 167 168 jTxtLocalpart.addKeyListener(new java.awt.event.KeyAdapter () { 169 public void keyReleased(java.awt.event.KeyEvent evt) { 170 jTxtLocalpartKeyReleased(evt); 171 } 172 }); 173 174 gridBagConstraints = new java.awt.GridBagConstraints (); 175 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 176 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 177 gridBagConstraints.weightx = 1.0; 178 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 179 jPnlPortInfoDesc.add(jTxtLocalpart, gridBagConstraints); 180 jTxtLocalpart.getAccessibleContext().setAccessibleName(ServiceRefCustomizer.bundle.getString("ACSN_Localpart")); 181 jTxtLocalpart.getAccessibleContext().setAccessibleDescription(ServiceRefCustomizer.bundle.getString("ACSD_Localpart")); 182 183 jLblEnableMsgSecurity.setText(WebServiceDescriptorCustomizer.bundle.getString("LBL_EnableMsgSecurity_1")); 184 gridBagConstraints = new java.awt.GridBagConstraints (); 185 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 186 gridBagConstraints.insets = new java.awt.Insets (6, 0, 0, 0); 187 jPnlPortInfoDesc.add(jLblEnableMsgSecurity, gridBagConstraints); 188 189 jChkEnableMsgSecurity.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 190 jChkEnableMsgSecurity.setMargin(new java.awt.Insets (0, 0, 0, 0)); 191 jChkEnableMsgSecurity.addItemListener(new java.awt.event.ItemListener () { 192 public void itemStateChanged(java.awt.event.ItemEvent evt) { 193 jChkEnableMsgSecurityItemStateChanged(evt); 194 } 195 }); 196 197 gridBagConstraints = new java.awt.GridBagConstraints (); 198 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 199 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 12); 200 jPnlPortInfoDesc.add(jChkEnableMsgSecurity, gridBagConstraints); 201 202 jBtnEditBindings.setText(ServiceRefCustomizer.bundle.getString("LBL_EditMsgSecBindings")); 203 jBtnEditBindings.addActionListener(new java.awt.event.ActionListener () { 204 public void actionPerformed(java.awt.event.ActionEvent evt) { 205 jBtnEditBindingsActionPerformed(evt); 206 } 207 }); 208 209 gridBagConstraints = new java.awt.GridBagConstraints (); 210 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 211 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 212 gridBagConstraints.insets = new java.awt.Insets (6, 6, 0, 0); 213 jPnlPortInfoDesc.add(jBtnEditBindings, gridBagConstraints); 214 jBtnEditBindings.getAccessibleContext().setAccessibleName(ServiceRefCustomizer.bundle.getString("ACSN_EditMsgSecBindings")); 215 jBtnEditBindings.getAccessibleContext().setAccessibleDescription(ServiceRefCustomizer.bundle.getString("ACSD_EditMsgSecBindings")); 216 217 gridBagConstraints = new java.awt.GridBagConstraints (); 218 gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER; 219 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 220 gridBagConstraints.weightx = 1.0; 221 gridBagConstraints.insets = new java.awt.Insets (6, 6, 5, 5); 222 add(jPnlPortInfoDesc, gridBagConstraints); 223 224 } 226 private void jBtnEditBindingsActionPerformed(java.awt.event.ActionEvent evt) { if(!selectedPortSetup) { 228 try { 229 ServiceRef theBean = masterPanel.getBean(); 230 ASDDVersion asVersion = theBean.getAppServerVersion(); 231 String asCloneVersion = ""; 232 233 if(theBean.getParent() instanceof WebAppRoot) { 235 asCloneVersion = asVersion.getWebAppVersionAsString(); 236 } else if(theBean.getParent() instanceof BaseEjb) { 237 asCloneVersion = asVersion.getEjbJarVersionAsString(); 238 } else if(theBean.getParent() instanceof AppClientRoot) { 239 asCloneVersion = asVersion.getAppClientVersionAsString(); 240 } 241 242 MessageSecurityBinding binding = selectedPortInfo.getMessageSecurityBinding(); 243 if(binding == null) { 244 binding = selectedPortInfo.newMessageSecurityBinding(); 245 selectedPortInfo.setMessageSecurityBinding(binding); 246 } 247 248 EditBinding.editMessageSecurityBinding(masterPanel, theBean, true, binding, asVersion, asCloneVersion); 249 } catch (VersionNotSupportedException ex) { 250 ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex); 252 } 253 } 254 } 256 private void jChkEnableMsgSecurityItemStateChanged(java.awt.event.ItemEvent evt) { if(!selectedPortSetup) { 258 boolean hasMessageSecurity = Utils.interpretCheckboxState(evt); 259 if(!hasMessageSecurity) { 260 try { 261 selectedPortInfo.setMessageSecurityBinding(null); 262 masterPanel.getBean().setDirty(); 263 } catch (VersionNotSupportedException ex) { 264 ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex); 265 } 266 } 267 enableMessageSecurityUI(hasMessageSecurity); 268 } 269 } 271 private void jTxtLocalpartKeyReleased(java.awt.event.KeyEvent evt) { WsdlPort wsdlPort = selectedPortInfo.getWsdlPort(); 273 if(wsdlPort == null) { 274 ASDDVersion asVersion = masterPanel.getBean().getAppServerVersion(); 275 wsdlPort = StorageBeanFactory.getStorageBeanFactory(asVersion).createWsdlPort(); 276 selectedPortInfo.setWsdlPort(wsdlPort); 277 } 278 279 wsdlPort.setLocalpart(jTxtLocalpart.getText()); 280 selectedPortInfoMap.updateDisplayText(); 281 masterPanel.getBean().setDirty(); 282 } 284 private void jTxtNamespaceURIKeyReleased(java.awt.event.KeyEvent evt) { WsdlPort wsdlPort = selectedPortInfo.getWsdlPort(); 286 if(wsdlPort == null) { 287 ASDDVersion asVersion = masterPanel.getBean().getAppServerVersion(); 288 wsdlPort = StorageBeanFactory.getStorageBeanFactory(asVersion).createWsdlPort(); 289 selectedPortInfo.setWsdlPort(wsdlPort); 290 } 291 292 wsdlPort.setNamespaceURI(jTxtNamespaceURI.getText()); 293 selectedPortInfoMap.updateDisplayText(); 294 masterPanel.getBean().setDirty(); 295 } 297 private void jTxtServiceEIKeyReleased(java.awt.event.KeyEvent evt) { selectedPortInfo.setServiceEndpointInterface(jTxtServiceEI.getText()); 299 selectedPortInfoMap.updateDisplayText(); 300 masterPanel.getBean().setDirty(); 301 } 303 304 private javax.swing.JButton jBtnEditBindings; 306 private javax.swing.JCheckBox jChkEnableMsgSecurity; 307 private javax.swing.JLabel jLblEnableMsgSecurity; 308 private javax.swing.JLabel jLblLocalpart; 309 private javax.swing.JLabel jLblNamespaceURI; 310 private javax.swing.JLabel jLblSelectedPortInfo; 311 private javax.swing.JLabel jLblServiceEI; 312 private javax.swing.JPanel jPnlPortInfoDesc; 313 private javax.swing.JTextField jTxtLocalpart; 314 private javax.swing.JTextField jTxtNamespaceURI; 315 private javax.swing.JTextField jTxtServiceEI; 316 318 private void initUserComponents() { 319 322 ArrayList tableColumns = new ArrayList (2); 323 tableColumns.add(new GenericTableModel.ValueEntry("Name", ServiceRefCustomizer.bundle.getString("LBL_Name_Column"), true)); tableColumns.add(new GenericTableModel.ValueEntry("Value", ServiceRefCustomizer.bundle.getString("LBL_Value_Column"), true)); 328 stubPropertiesModel = new GenericTableModel(PortInfo.STUB_PROPERTY, 329 stubPropertyFactory, tableColumns); 330 stubPropertiesModel.addTableModelListener(this); 331 stubPropertiesPanel = new GenericTablePanel(stubPropertiesModel, 332 ServiceRefCustomizer.bundle, "StubProperties", DynamicPropertyPanel.class, HelpContext.HELP_SERVICE_PORT_STUB_PROPERTY_POPUP, 334 PropertyListMapping.getPropertyList(PropertyListMapping.SERVICE_REF_STUB_PROPERTIES)); 335 336 GridBagConstraints gridBagConstraints = new GridBagConstraints (); 337 gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; 338 gridBagConstraints.fill = GridBagConstraints.BOTH; 339 gridBagConstraints.weightx = 1.0; 340 gridBagConstraints.weighty = 1.0; 341 gridBagConstraints.insets = new Insets (0, 6, 0, 5); 342 add(stubPropertiesPanel, gridBagConstraints); 343 344 347 callPropertiesModel = new GenericTableModel(PortInfo.CALL_PROPERTY, 348 callPropertyFactory, tableColumns); 349 callPropertiesModel.addTableModelListener(this); 350 callPropertiesPanel = new GenericTablePanel(callPropertiesModel, 351 ServiceRefCustomizer.bundle, "CallProperties", DynamicPropertyPanel.class, HelpContext.HELP_SERVICE_PORT_CALL_PROPERTY_POPUP, 353 PropertyListMapping.getPropertyList(PropertyListMapping.SERVICE_REF_CALL_PROPERTIES)); 354 355 gridBagConstraints = new GridBagConstraints (); 356 gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; 357 gridBagConstraints.fill = GridBagConstraints.BOTH; 358 gridBagConstraints.weightx = 1.0; 359 gridBagConstraints.weighty = 1.0; 360 gridBagConstraints.insets = new Insets (0, 6, 5, 5); 361 add(callPropertiesPanel, gridBagConstraints); 362 } 363 364 public void setPortInfoMapping(PortInfoMapping piMap) { 365 try { 366 ASDDVersion asVersion = masterPanel.getBean().getAppServerVersion(); 367 selectedPortSetup = true; 368 selectedPortInfoMap = piMap; 369 370 if(selectedPortInfoMap != null) { 371 selectedPortInfo = selectedPortInfoMap.getPortInfo(); 372 } else { 373 selectedPortInfo = null; 374 } 375 376 boolean hasMessageSecurityBinding = false; 377 378 if(selectedPortInfo != null) { 379 jTxtServiceEI.setText(selectedPortInfo.getServiceEndpointInterface()); 380 WsdlPort wsdlPort = selectedPortInfo.getWsdlPort(); 381 if(wsdlPort != null) { 382 jTxtLocalpart.setText(wsdlPort.getLocalpart()); 383 jTxtNamespaceURI.setText(wsdlPort.getNamespaceURI()); 384 } else { 385 jTxtLocalpart.setText(""); jTxtNamespaceURI.setText(""); } 388 389 try { 390 hasMessageSecurityBinding = (selectedPortInfo.getMessageSecurityBinding() != null); 391 } catch (VersionNotSupportedException ex) { 392 ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex); 393 } 394 } else { 395 jTxtServiceEI.setText(""); jTxtLocalpart.setText(""); jTxtNamespaceURI.setText(""); } 399 400 jChkEnableMsgSecurity.setSelected(hasMessageSecurityBinding); 401 enableMessageSecurityUI(hasMessageSecurityBinding); 402 403 if(selectedPortInfo != null) { 404 stubPropertiesPanel.setModel(selectedPortInfo, asVersion); 405 callPropertiesPanel.setModel(selectedPortInfo, asVersion); 406 } else { 407 PortInfo stub = StorageBeanFactory.getStorageBeanFactory(asVersion).createPortInfo(); 408 stubPropertiesPanel.setModel(stub, asVersion); 409 callPropertiesPanel.setModel(stub, asVersion); 410 } 411 } finally { 412 selectedPortSetup = false; 413 } 414 } 415 416 private void enableMessageSecurityUI(boolean enable) { 417 jBtnEditBindings.setEnabled(enable); 418 } 419 420 public void setContainerEnabled(Container container, boolean enabled) { 421 Component [] components = container.getComponents(); 422 for(int i = 0; i < components.length; i++) { 423 components[i].setEnabled(enabled); 424 if(components[i] instanceof Container ) { 425 setContainerEnabled((Container ) components[i], enabled); 426 } 427 } 428 } 429 430 433 public void tableChanged(TableModelEvent e) { 434 if(!selectedPortSetup) { 435 ServiceRef bean = masterPanel.getBean(); 436 if(bean != null) { 437 if(e.getSource().equals(callPropertiesModel)) { 438 bean.setDirty(); 440 } else if(e.getSource().equals(stubPropertiesModel)) { 441 bean.setDirty(); 443 } 444 } 445 } 446 } 447 448 private static GenericTableModel.ParentPropertyFactory stubPropertyFactory = 451 new GenericTableModel.ParentPropertyFactory() { 452 public CommonDDBean newParentProperty(ASDDVersion asVersion) { 453 return StorageBeanFactory.getStorageBeanFactory(asVersion).createStubProperty(); 454 } 455 }; 456 457 private static GenericTableModel.ParentPropertyFactory callPropertyFactory = 458 new GenericTableModel.ParentPropertyFactory() { 459 public CommonDDBean newParentProperty(ASDDVersion asVersion) { 460 return StorageBeanFactory.getStorageBeanFactory(asVersion).createCallProperty(); 461 } 462 }; 463 } 464 | Popular Tags |