1 19 20 package org.netbeans.modules.websvc.core.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.core.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 <ChangeListener > listeners = new ArrayList <ChangeListener >(); 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 jTextFieldPort.setText(chooser.getSelectedPortOwnerName() + "#" + chooser.getSelectedNodes()[0].getDisplayName()); service = wsdlModel.getServiceByName(chooser.getSelectedPortOwnerName()); 302 port = service.getPortByName(chooser.getSelectedNodes()[0].getDisplayName()); 303 } 304 } 305 } 307 private void jButtonWSDLFileBrowseActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser chooser = new JFileChooser (previousDirectory); 309 chooser.setMultiSelectionEnabled(false); 310 chooser.setAcceptAllFileFilterUsed(false); 311 chooser.addChoosableFileFilter(WSDL_FILE_FILTER); 312 chooser.setFileFilter(WSDL_FILE_FILTER); 313 314 if(chooser.showOpenDialog(WebServiceFromWSDLPanel.this) == JFileChooser.APPROVE_OPTION) { 315 File wsdlFile = chooser.getSelectedFile(); 316 jTextFieldWSDLFile.setText(wsdlFile.getAbsolutePath()); 317 previousDirectory = wsdlFile.getPath(); 318 } 319 } 321 322 private javax.swing.JButton jButtonBrowsePort; 324 private javax.swing.JButton jButtonWSDLFileBrowse; 325 private javax.swing.JLabel jLabelPort; 326 private javax.swing.JLabel jLabelPortDescription; 327 private javax.swing.JLabel jLabelWSDLFile; 328 private javax.swing.JTextField jTextFieldPort; 329 private javax.swing.JTextField jTextFieldWSDLFile; 330 332 void validate(WizardDescriptor wizardDescriptor) { 333 } 334 335 private void initJsr109Info() { 336 wss = JAXWSSupport.getJAXWSSupport(project.getProjectDirectory()); 337 if (wss != null) { 338 Map properties = wss.getAntProjectHelper().getStandardPropertyEvaluator().getProperties(); 339 String serverInstance = (String )properties.get("j2ee.server.instance"); if (serverInstance != null) { 341 J2eePlatform j2eePlatform = Deployment.getDefault().getJ2eePlatform(serverInstance); 342 if (j2eePlatform != null) { 343 jsr109Supported = j2eePlatform.isToolSupported(J2eePlatform.TOOL_JSR109); 344 jsr109oldSupported = j2eePlatform.isToolSupported(J2eePlatform.TOOL_WSCOMPILE); 345 jwsdpSupported = j2eePlatform.isToolSupported(J2eePlatform.TOOL_JWSDP); 346 } 347 } 348 } 349 } 350 351 355 private boolean checkNonJsr109Valid() { 356 if (wss != null) { 357 if(!jsr109Supported && !jsr109oldSupported || 358 (!jsr109Supported && jsr109oldSupported && jwsdpSupported )){ 359 if (Util.isSourceLevel14orLower(project)) { 360 wizardDescriptor.putProperty("WizardPanel_errorMessage", 361 NbBundle.getMessage(WebServiceFromWSDLPanel.class, "ERR_NeedProperSourceLevel")); return false; 363 } 364 } 365 } 366 return true; 367 } 368 369 private boolean projectHasEmbeddedSpaces(){ 370 FileObject projectDir = project.getProjectDirectory(); 371 File projectDirFile = FileUtil.toFile(projectDir); 372 String path = projectDirFile.getAbsolutePath(); 373 int index = path.indexOf(" "); 374 return index != -1; 375 } 376 377 boolean isValid(WizardDescriptor wizardDescriptor) { 378 if(!checkNonJsr109Valid()){ 380 return false; 381 } 382 383 String wsdlFilePath = jTextFieldWSDLFile.getText().trim(); 384 385 if(wsdlFilePath == null || wsdlFilePath.length() == 0) { 386 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(WebServiceFromWSDLPanel.class, "MSG_EnterWsdlName")); return false; } 390 391 File f = new File (wsdlFilePath); 392 String wsdlFileText = f.getAbsolutePath(); 393 f = getCanonicalFile(f); 394 if(f == null) { 395 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(WebServiceFromWSDLPanel.class, "ERR_WsdlInvalid")); return false; } 399 400 if(!f.exists()) { 401 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(WebServiceFromWSDLPanel.class, "ERR_WsdlDoesNotExist")); return false; } 405 406 if (Util.isJavaEE5orHigher(project) || 407 (!jsr109Supported && !jsr109oldSupported || 408 (!jsr109Supported && jsr109oldSupported && jwsdpSupported ))) { 409 if (wsdlModel != null) { 410 if (service == null) { 411 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(WebServiceFromWSDLPanel.class, "MSG_NoService")); return false; 413 } 414 415 if (port == null) { 416 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(WebServiceFromWSDLPanel.class, "MSG_NoPort")); return false; 418 } 419 } else { 420 if (wsdlServiceHandler!=null && wsdlServiceHandler.getServiceName()!=null && wsdlServiceHandler.getPortName()!=null) { 421 return true; 422 } else { 423 wizardDescriptor.putProperty("WizardPanel_errorMessage", NbBundle.getMessage(WebServiceFromWSDLPanel.class, "MSG_NoPort")); return false; 425 } 426 } 427 } 428 429 if(projectHasEmbeddedSpaces()){ 432 wizardDescriptor.putProperty("WizardPanel_errorMessage", 433 NbBundle.getMessage(WebServiceFromWSDLPanel.class, "MSG_SPACE_IN_PROJECT_PATH")); } 435 else{ 436 wizardDescriptor.putProperty("WizardPanel_errorMessage", ""); } 438 wizardDescriptor.putProperty("WizardPanel_errorMessage", ""); 455 return true; 456 } 457 458 void store(WizardDescriptor d) { 459 d.putProperty(WizardProperties.WSDL_FILE_PATH, jTextFieldWSDLFile.getText().trim()); 460 d.putProperty(WizardProperties.WSDL_MODEL, wsdlModel); 461 d.putProperty(WizardProperties.WSDL_MODELER, wsdlModeler); 462 d.putProperty(WizardProperties.WSDL_SERVICE, service); 463 d.putProperty(WizardProperties.WSDL_PORT, port); 464 d.putProperty(WizardProperties.WSDL_SERVICE_HANDLER,wsdlServiceHandler); 465 } 466 467 void read(WizardDescriptor wizardDescriptor) { 468 this.wizardDescriptor = wizardDescriptor; 469 } 470 471 public HelpCtx getHelpCtx() { 472 return new HelpCtx(WebServiceFromWSDLPanel.class); 473 } 474 475 public void addChangeListener(ChangeListener l) { 476 listeners.add(l); 477 } 478 479 public void removeChangeListener(ChangeListener l) { 480 listeners.remove(l); 481 } 482 483 private void fireChange() { 484 ChangeEvent e = new ChangeEvent (this); 485 Iterator <ChangeListener > it = listeners.iterator(); 486 while (it.hasNext()) { 487 it.next().stateChanged(e); 488 } 489 } 490 491 private void updatePortBrowseButton() { 492 wsdlModel = null; 493 service = null; 494 port = null; 495 jTextFieldPort.setText(""); 497 String wsdlFilePath = jTextFieldWSDLFile.getText().trim(); 498 499 if(wsdlFilePath == null || wsdlFilePath.length() == 0) { 500 jButtonBrowsePort.setEnabled(false); 501 } else { 502 File f = new File (wsdlFilePath); 503 String wsdlFileText = f.getAbsolutePath(); 504 f = getCanonicalFile(f); 505 if(f == null) { 506 jButtonBrowsePort.setEnabled(false); 507 } else if(!f.exists()) { 508 jButtonBrowsePort.setEnabled(false); 509 } else { 510 fireChange(); if (Util.isJavaEE5orHigher(project) || 512 (!jsr109Supported && !jsr109oldSupported || 513 (!jsr109Supported && jsr109oldSupported && jwsdpSupported))) { 514 createModel(); 515 } 516 } 517 } 518 } 519 520 private void createModel() { 521 File normalizedWsdlFilePath = FileUtil.normalizeFile(new File (jTextFieldWSDLFile.getText().trim())); 522 wsdlURL = null; 523 try { 524 wsdlURL = normalizedWsdlFilePath.toURL(); 525 } catch (MalformedURLException ex) { 526 ex.printStackTrace(); 527 } 528 529 generateWsdlModelTask.schedule(1000); 530 } 531 532 public void insertUpdate(DocumentEvent e) { 533 updatePortBrowseButton(); 534 fireChange(); 535 } 536 537 public void removeUpdate(DocumentEvent e) { 538 updatePortBrowseButton(); 539 fireChange(); 540 } 541 542 public void changedUpdate(DocumentEvent e) { 543 updatePortBrowseButton(); 544 fireChange(); 545 } 546 547 552 public static File getCanonicalFile(File f) { 553 File f1; 554 try { 555 f1 = f.getCanonicalFile(); 556 } catch (java.io.IOException e) { 557 f1 = null; 558 } 559 return f1; 560 } 561 562 private static class WsdlFileFilter extends FileFilter { 563 public boolean accept(File f) { 564 boolean result; 565 if(f.isDirectory() || "wsdl".equalsIgnoreCase(FileUtil.getExtension(f.getName()))) { result = true; 567 } else { 568 result = false; 569 } 570 return result; 571 } 572 573 public String getDescription() { 574 return NbBundle.getMessage(WebServiceFromWSDLPanel.class, "LBL_WsdlFilterDescription"); } 576 } 577 578 } 579 | Popular Tags |