1 19 20 package org.netbeans.modules.websvc.dev.wizard; 21 22 import java.beans.PropertyChangeEvent ; 23 import java.beans.PropertyChangeListener ; 24 import java.io.File ; 25 import java.io.IOException ; 26 import java.net.MalformedURLException ; 27 import java.net.URL ; 28 import java.util.ArrayList ; 29 import java.util.Iterator ; 30 import java.util.List ; 31 import java.util.Map ; 32 import javax.swing.JFileChooser ; 33 import javax.swing.event.ChangeEvent ; 34 import javax.swing.event.ChangeListener ; 35 import javax.swing.event.DocumentEvent ; 36 import javax.swing.event.DocumentListener ; 37 import javax.swing.filechooser.FileFilter ; 38 import javax.xml.parsers.ParserConfigurationException ; 39 import javax.xml.transform.stream.StreamSource ; 40 import org.netbeans.api.project.Project; 41 import org.netbeans.modules.j2ee.common.Util; 42 import org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment; 43 import org.netbeans.modules.j2ee.deployment.devmodules.api.J2eePlatform; 44 import org.netbeans.modules.websvc.api.jaxws.wsdlmodel.WsdlModel; 45 import org.netbeans.modules.websvc.api.jaxws.wsdlmodel.WsdlModelListener; 46 import org.netbeans.modules.websvc.api.jaxws.wsdlmodel.WsdlModeler; 47 import org.netbeans.modules.websvc.api.jaxws.wsdlmodel.WsdlModelerFactory; 48 import org.netbeans.modules.websvc.api.jaxws.wsdlmodel.WsdlPort; 49 import org.netbeans.modules.websvc.api.jaxws.wsdlmodel.WsdlService; 50 import org.netbeans.modules.websvc.dev.wizard.nodes.WsdlNode; 51 import org.netbeans.modules.websvc.jaxws.api.JAXWSSupport; 52 import org.netbeans.modules.websvc.jaxws.api.WsdlWrapperGenerator; 53 import org.netbeans.modules.websvc.jaxws.api.WsdlWrapperHandler; 54 import org.openide.DialogDescriptor; 55 import org.openide.DialogDisplayer; 56 import org.openide.ErrorManager; 57 import org.openide.NotifyDescriptor; 58 import org.openide.WizardDescriptor; 59 import org.openide.filesystems.FileObject; 60 import org.openide.filesystems.FileUtil; 61 import org.openide.nodes.Node; 62 import org.openide.util.HelpCtx; 63 import org.openide.util.NbBundle; 64 import org.openide.util.RequestProcessor; 65 import org.xml.sax.SAXException ; 66 67 71 public class WebServiceFromWSDLPanel extends javax.swing.JPanel implements HelpCtx.Provider, DocumentListener { 72 73 private final List listeners = new ArrayList (); 74 private static String previousDirectory = ""; 75 private final FileFilter WSDL_FILE_FILTER = new WsdlFileFilter(); 76 private boolean isWaitingForScan = false; 77 78 private WsdlModeler wsdlModeler; 79 private WsdlModel wsdlModel; 80 private WsdlService service; 81 private WsdlPort port; 82 private WsdlServiceHandler wsdlServiceHandler; 83 private Project project; 84 private WizardDescriptor wizardDescriptor; 85 86 private JAXWSSupport wss; 87 private boolean jsr109Supported; 88 private boolean jsr109oldSupported; 89 private boolean jwsdpSupported; 90 91 private RequestProcessor.Task generateWsdlModelTask; 92 private URL wsdlURL; 93 94 95 public WebServiceFromWSDLPanel(Project project) { 96 this.project = project; 97 initComponents(); 98 initJsr109Info(); 99 100 jTextFieldWSDLFile.getDocument().addDocumentListener(this); 101 102 generateWsdlModelTask = RequestProcessor.getDefault().create(new Runnable () { 103 public void run() { 104 105 WsdlWrapperHandler handler = null; 106 try { 107 handler=WsdlWrapperGenerator.parse(wsdlURL.toExternalForm()); 108 } catch (ParserConfigurationException ex) { 109 ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL,ex); 110 } catch (SAXException ex) { 111 String mes = NbBundle.getMessage(WebServiceFromWSDLPanel.class, "ERR_SAXException", ex.getLocalizedMessage()); NotifyDescriptor desc = new NotifyDescriptor.Message(mes, NotifyDescriptor.Message.ERROR_MESSAGE); 113 DialogDisplayer.getDefault().notify(desc); 114 ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL,ex); 115 } catch (IOException ex) { 116 ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL,ex); 117 } 118 if (handler!=null && !handler.isServiceElement()) { 119 StreamSource source = new StreamSource (wsdlURL.toExternalForm()); 120 try { 121 File wsdlFile = new File (System.getProperty("java.io.tmpdir"), WsdlWrapperGenerator.getWrapperName(wsdlURL)); 123 if(!wsdlFile.exists()) { 124 try { 125 wsdlFile.createNewFile(); 126 } catch(IOException ex) { 127 String mes = NbBundle.getMessage(WebServiceFromWSDLPanel.class, "ERR_UnableToCreateTempFile", wsdlFile.getPath()); NotifyDescriptor desc = new NotifyDescriptor.Message(mes, NotifyDescriptor.Message.ERROR_MESSAGE); 129 DialogDisplayer.getDefault().notify(desc); 130 return; 131 } 132 } 133 WsdlWrapperGenerator.generateWrapperWSDLContent(wsdlFile,source,handler.getTargetNsPrefix(),wsdlURL.toExternalForm()); 134 wsdlURL=wsdlFile.toURL(); 135 } catch (IOException ex) { 136 ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL,ex); 137 } 138 } 139 140 final WsdlWrapperHandler wsdlHandler = handler; 141 142 wsdlModeler = WsdlModelerFactory.getDefault().getWsdlModeler(wsdlURL); 143 wsdlModeler.generateWsdlModel(new WsdlModelListener() { 144 public void modelCreated(WsdlModel model) { 145 wsdlModel=model; 146 if (wsdlModel==null) { 147 String serviceName=null; 148 String portName=null; 149 try { 150 wsdlServiceHandler = WsdlServiceHandler.parse(wsdlURL.toExternalForm()); 151 serviceName = wsdlServiceHandler.getServiceName(); 152 portName = wsdlServiceHandler.getPortName(); 153 } catch (ParserConfigurationException ex) { 154 } catch (SAXException ex) { 155 } catch (IOException ex) {} 156 if (serviceName!=null && portName!=null) { 157 jTextFieldPort.setText(serviceName + "#" + portName); 158 } else { 159 DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message( 160 NbBundle.getMessage(WebServiceFromWSDLPanel.class,"TXT_CannotGenerateService", 161 wsdlModeler.getCreationException().getLocalizedMessage()), 162 NotifyDescriptor.WARNING_MESSAGE) 163 ); 164 } 165 } else { 166 jButtonBrowsePort.setEnabled(true); 167 List services = wsdlModel.getServices(); 168 if (services != null && services.size() > 0) { 169 service = (WsdlService) services.get(0); 170 List ports = service.getPorts(); 171 if (ports != null && ports.size() > 0) 172 port = (WsdlPort) ports.get(0); 173 } 174 } 175 176 if (service != null && port != null) { 177 jTextFieldPort.setText(service.getName() + "#" + port.getName()); if (wsdlHandler!=null) { 179 String bindingType = wsdlHandler.getBindingTypeForPort(port.getName()); 180 if (bindingType!=null) port.setSOAPVersion(bindingType); 181 } 182 } 183 184 fireChange(); } 186 }); 187 } 188 }); 189 } 190 191 196 private void initComponents() { 198 jLabelWSDLFile = new javax.swing.JLabel (); 199 jTextFieldWSDLFile = new javax.swing.JTextField (); 200 jButtonWSDLFileBrowse = new javax.swing.JButton (); 201 jLabelPortDescription = new javax.swing.JLabel (); 202 jLabelPort = new javax.swing.JLabel (); 203 jTextFieldPort = new javax.swing.JTextField (); 204 jButtonBrowsePort = new javax.swing.JButton (); 205 206 jLabelWSDLFile.setDisplayedMnemonic(org.openide.util.NbBundle.getBundle(WebServiceFromWSDLPanel.class).getString("MNE_WSDL_File").charAt(0)); 207 jLabelWSDLFile.setLabelFor(jTextFieldWSDLFile); 208 jLabelWSDLFile.setText(org.openide.util.NbBundle.getMessage(WebServiceFromWSDLPanel.class, "LBL_WSDL_File")); 209 210 jTextFieldWSDLFile.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(WebServiceFromWSDLPanel.class).getString("A11Y_WSDLFilePath")); 211 212 jButtonWSDLFileBrowse.setMnemonic(org.openide.util.NbBundle.getBundle(WebServiceFromWSDLPanel.class).getString("MNE_Browse").charAt(0)); 213 jButtonWSDLFileBrowse.setText(org.openide.util.NbBundle.getMessage(WebServiceFromWSDLPanel.class, "LBL_Browse")); 214 jButtonWSDLFileBrowse.addActionListener(new java.awt.event.ActionListener () { 215 public void actionPerformed(java.awt.event.ActionEvent evt) { 216 jButtonWSDLFileBrowseActionPerformed(evt); 217 } 218 }); 219 220 jButtonWSDLFileBrowse.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(WebServiceFromWSDLPanel.class).getString("A11Y_WSDLFileButton")); 221 222 jLabelPortDescription.setText(org.openide.util.NbBundle.getBundle(WebServiceFromWSDLPanel.class).getString("LBL_PortMessage")); 223 224 jLabelPort.setDisplayedMnemonic(org.openide.util.NbBundle.getBundle(WebServiceFromWSDLPanel.class).getString("MNE_WebServicePort").charAt(0)); 225 jLabelPort.setLabelFor(jTextFieldPort); 226 jLabelPort.setText(org.openide.util.NbBundle.getBundle(WebServiceFromWSDLPanel.class).getString("LBL_WebServicePort")); 227 228 jTextFieldPort.setEditable(false); 229 jTextFieldPort.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getBundle(WebServiceFromWSDLPanel.class).getString("A11Y")); 230 231 jButtonBrowsePort.setMnemonic(org.openide.util.NbBundle.getBundle(WebServiceFromWSDLPanel.class).getString("MNE_BrowsePort").charAt(0)); 232 jButtonBrowsePort.setText(org.openide.util.NbBundle.getBundle(WebServiceFromWSDLPanel.class).getString("LBL_Browse")); 233 jButtonBrowsePort.setEnabled(false); 234 jButtonBrowsePort.addActionListener(new java.awt.event.ActionListener () { 235 public void actionPerformed(java.awt.event.ActionEvent evt) { 236 jButtonBrowsePortActionPerformed(evt); 237 } 238 }); 239 240 org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); 241 this.setLayout(layout); 242 layout.setHorizontalGroup( 243 layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 244 .add(layout.createSequentialGroup() 245 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 246 .add(jLabelPort) 247 .add(jLabelWSDLFile)) 248 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 249 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 250 .add(jTextFieldPort, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 576, Short.MAX_VALUE) 251 .add(jTextFieldWSDLFile, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 576, Short.MAX_VALUE)) 252 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 253 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false) 254 .add(jButtonBrowsePort, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 255 .add(jButtonWSDLFileBrowse, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) 256 .add(layout.createSequentialGroup() 257 .add(jLabelPortDescription) 258 .addContainerGap()) 259 ); 260 layout.setVerticalGroup( 261 layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 262 .add(layout.createSequentialGroup() 263 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) 264 .add(jLabelWSDLFile) 265 .add(jButtonWSDLFileBrowse) 266 .add(jTextFieldWSDLFile, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) 267 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 268 .add(jLabelPortDescription) 269 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 270 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) 271 .add(jLabelPort) 272 .add(jButtonBrowsePort) 273 .add(jTextFieldPort, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) 274 .addContainerGap(223, Short.MAX_VALUE)) 275 ); 276 } 278 private void jButtonBrowsePortActionPerformed(java.awt.event.ActionEvent evt) { Node root = new WsdlNode(wsdlModel); 280 PortChooser chooser = new PortChooser(root); 281 final DialogDescriptor dd = new DialogDescriptor(chooser, org.openide.util.NbBundle.getMessage(WebServiceFromWSDLPanel.class, "LBL_SelectPortDescription")); 283 chooser.addPropertyChangeListener(new PropertyChangeListener () { 284 public void propertyChange(PropertyChangeEvent evt) { 285 if (evt.getPropertyName().equals(PortChooser.IS_VALID)) { 286 Object newvalue = evt.getNewValue(); 287 if ((newvalue != null) && (newvalue instanceof Boolean )) { 288 dd.setValid(((Boolean ) newvalue).booleanValue()); 289 } 290 } 291 } 292 }); 293 294 Object result = DialogDisplayer.getDefault().notify(dd); 295 296 if (result == DialogDescriptor.OK_OPTION) { 297 if (Util.isJavaEE5orHigher(project) || 298 (!jsr109Supported && !jsr109oldSupported || 299 (!jsr109Supported && jsr109oldSupported && jwsdpSupported ))) 300 { 301 jTextFieldPort.setText(chooser.getSelectedPortOwnerName() + "#" + chooser.getSelectedNodes()[0].getDisplayName()); service = wsdlModel.getServiceByName(chooser.getSelectedPortOwnerName()); 303 port = service.getPortByName(chooser.getSelectedNodes()[0].getDisplayName()); 304 } 305 } 306 } 308 private void jButtonWSDLFileBrowseActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser chooser = new JFileChooser (previousDirectory); 310 chooser.setMultiSelectionEnabled(false); 311 chooser.setAcceptAllFileFilterUsed(false); 312 chooser.addChoosableFileFilter(WSDL_FILE_FILTER); 313 chooser.setFileFilter(WSDL_FILE_FILTER); 314 315 if(chooser.showOpenDialog(WebServiceFromWSDLPanel.this) == JFileChooser.APPROVE_OPTION) { 316 File wsdlFile = chooser.getSelectedFile(); 317 jTextFieldWSDLFile.setText(wsdlFile.getAbsolutePath()); 318 previousDirectory = wsdlFile.getPath(); 319 } 320 } 322 323 private javax.swing.JButton jButtonBrowsePort; 325 private javax.swing.JButton jButtonWSDLFileBrowse; 326 private javax.swing.JLabel jLabelPort; 327 private javax.swing.JLabel jLabelPortDescription; 328 private javax.swing.JLabel jLabelWSDLFile; 329 private javax.swing.JTextField jTextFieldPort; 330 private javax.swing.JTextField jTextFieldWSDLFile; 331 333 void validate(WizardDescriptor wizardDescriptor) { 334 } 335 336 private void initJsr109Info() { 337 wss = JAXWSSupport.getJAXWSSupport(project.getProjectDirectory()); 338 if (wss != null) { 339 Map properties = wss.getAntProjectHelper().getStandardPropertyEvaluator().getProperties(); 340 String serverInstance = (String )properties.get("j2ee.server.instance"); if (serverInstance != null) { 342 J2eePlatform j2eePlatform = Deployment.getDefault().getJ2eePlatform(serverInstance); 343 if (j2eePlatform != null) { 344 jsr109Supported = j2eePlatform.isToolSupported(J2eePlatform.TOOL_JSR109); 345 jsr109oldSupported = j2eePlatform.isToolSupported(J2eePlatform.TOOL_WSCOMPILE); 346 jwsdpSupported = j2eePlatform.isToolSupported(J2eePlatform.TOOL_JWSDP); 347 } 348 } 349 } 350 } 351 352 356 private boolean checkNonJsr109Valid() { 357 if (wss != null) { 358 if(!jsr109Supported && !jsr109oldSupported || 359 (!jsr109Supported && jsr109oldSupported && jwsdpSupported )){ 360 if (Util.isSourceLevel14orLower(project)) { 361 wizardDescriptor.putProperty("WizardPanel_errorMessage", 362 NbBundle.getMessage(WebServiceTypePanel.class, "ERR_NeedProperSourceLevel")); return false; 364 } 365 } 366 } 367 return true; 368 } 369 370 private boolean projectHasEmbeddedSpaces(){ 371 FileObject projectDir = project.getProjectDirectory(); 372 File projectDirFile = FileUtil.toFile(projectDir); 373 String path = projectDirFile.getAbsolutePath(); 374 int index = path.indexOf(" "); 375 return index != -1; 376 } 377 378 boolean isValid(WizardDescriptor wizardDescriptor) { 379 if(!checkNonJsr109Valid()){ 381 return false; 382 } 383 384 String wsdlFilePath = jTextFieldWSDLFile.getText().trim(); 385 386 if(wsdlFilePath == null || wsdlFilePath.length() == 0) { 387 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(WebServiceFromWSDLPanel.class, "MSG_EnterWsdlName")); return false; } 391 392 File f = new File (wsdlFilePath); 393 String wsdlFileText = f.getAbsolutePath(); 394 f = getCanonicalFile(f); 395 if(f == null) { 396 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(WebServiceFromWSDLPanel.class, "ERR_WsdlInvalid")); return false; } 400 401 if(!f.exists()) { 402 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(WebServiceFromWSDLPanel.class, "ERR_WsdlDoesNotExist")); return false; } 406 407 if (Util.isJavaEE5orHigher(project) || 408 (!jsr109Supported && !jsr109oldSupported || 409 (!jsr109Supported && jsr109oldSupported && jwsdpSupported ))) { 410 if (wsdlModel != null) { 411 if (service == null) { 412 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(WebServiceFromWSDLPanel.class, "MSG_NoService")); return false; 414 } 415 416 if (port == null) { 417 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(WebServiceFromWSDLPanel.class, "MSG_NoPort")); return false; 419 } 420 } else { 421 if (wsdlServiceHandler!=null && wsdlServiceHandler.getServiceName()!=null && wsdlServiceHandler.getPortName()!=null) { 422 return true; 423 } else { 424 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(WebServiceFromWSDLPanel.class, "MSG_NoPort")); return false; 426 } 427 } 428 } 429 430 if(projectHasEmbeddedSpaces()){ 433 wizardDescriptor.putProperty("WizardPanel_errorMessage", 434 NbBundle.getMessage(WebServiceFromWSDLPanel.class, "MSG_SPACE_IN_PROJECT_PATH")); } 436 else{ 437 wizardDescriptor.putProperty("WizardPanel_errorMessage", ""); } 439 wizardDescriptor.putProperty("WizardPanel_errorMessage", ""); 456 return true; 457 } 458 459 void store(WizardDescriptor d) { 460 d.putProperty(WizardProperties.WSDL_FILE_PATH, jTextFieldWSDLFile.getText().trim()); 461 d.putProperty(WizardProperties.WSDL_MODEL, wsdlModel); 462 d.putProperty(WizardProperties.WSDL_MODELER, wsdlModeler); 463 d.putProperty(WizardProperties.WSDL_SERVICE, service); 464 d.putProperty(WizardProperties.WSDL_PORT, port); 465 d.putProperty(WizardProperties.WSDL_SERVICE_HANDLER,wsdlServiceHandler); 466 } 467 468 void read(WizardDescriptor wizardDescriptor) { 469 this.wizardDescriptor = wizardDescriptor; 470 } 471 472 public HelpCtx getHelpCtx() { 473 return new HelpCtx(WebServiceFromWSDLPanel.class); 474 } 475 476 public void addChangeListener(ChangeListener l) { 477 listeners.add(l); 478 } 479 480 public void removeChangeListener(ChangeListener l) { 481 listeners.remove(l); 482 } 483 484 private void fireChange() { 485 ChangeEvent e = new ChangeEvent (this); 486 Iterator it = listeners.iterator(); 487 while (it.hasNext()) { 488 ((ChangeListener )it.next()).stateChanged(e); 489 } 490 } 491 492 private void updatePortBrowseButton() { 493 wsdlModel = null; 494 service = null; 495 port = null; 496 jTextFieldPort.setText(""); 498 String wsdlFilePath = jTextFieldWSDLFile.getText().trim(); 499 500 if(wsdlFilePath == null || wsdlFilePath.length() == 0) { 501 jButtonBrowsePort.setEnabled(false); 502 } else { 503 File f = new File (wsdlFilePath); 504 String wsdlFileText = f.getAbsolutePath(); 505 f = getCanonicalFile(f); 506 if(f == null) { 507 jButtonBrowsePort.setEnabled(false); 508 } else if(!f.exists()) { 509 jButtonBrowsePort.setEnabled(false); 510 } else { 511 fireChange(); if (Util.isJavaEE5orHigher(project) || 513 (!jsr109Supported && !jsr109oldSupported || 514 (!jsr109Supported && jsr109oldSupported && jwsdpSupported))) { 515 createModel(); 516 } 517 } 518 } 519 } 520 521 private void createModel() { 522 File normalizedWsdlFilePath = FileUtil.normalizeFile(new File (jTextFieldWSDLFile.getText().trim())); 523 wsdlURL = null; 524 try { 525 wsdlURL = normalizedWsdlFilePath.toURL(); 526 } catch (MalformedURLException ex) { 527 ex.printStackTrace(); 528 } 529 530 generateWsdlModelTask.schedule(1000); 531 } 532 533 public void insertUpdate(DocumentEvent e) { 534 updatePortBrowseButton(); 535 fireChange(); 536 } 537 538 public void removeUpdate(DocumentEvent e) { 539 updatePortBrowseButton(); 540 fireChange(); 541 } 542 543 public void changedUpdate(DocumentEvent e) { 544 updatePortBrowseButton(); 545 fireChange(); 546 } 547 548 553 public static File getCanonicalFile(File f) { 554 File f1; 555 try { 556 f1 = f.getCanonicalFile(); 557 } catch (java.io.IOException e) { 558 f1 = null; 559 } 560 return f1; 561 } 562 563 private static class WsdlFileFilter extends FileFilter { 564 public boolean accept(File f) { 565 boolean result; 566 if(f.isDirectory() || "wsdl".equalsIgnoreCase(FileUtil.getExtension(f.getName()))) { result = true; 568 } else { 569 result = false; 570 } 571 return result; 572 } 573 574 public String getDescription() { 575 return NbBundle.getMessage(WebServiceFromWSDLPanel.class, "LBL_WsdlFilterDescription"); } 577 } 578 579 } 580 | Popular Tags |