1 19 20 package org.netbeans.modules.xml.schema.ui.retriever; 21 22 import java.awt.Component ; 23 import java.io.File ; 24 import java.io.IOException ; 25 import java.net.URI ; 26 import java.net.URISyntaxException ; 27 import java.net.URL ; 28 import java.util.ArrayList ; 29 import java.util.Iterator ; 30 import java.util.List ; 31 import javax.swing.JFileChooser ; 32 import javax.swing.JPanel ; 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.text.BadLocationException ; 38 import org.netbeans.api.project.Project; 39 import org.netbeans.api.project.ProjectUtils; 40 import org.netbeans.api.project.SourceGroup; 41 import org.netbeans.api.project.Sources; 42 import org.netbeans.modules.xml.retriever.XMLCatalogProvider; 43 import org.netbeans.modules.xml.retriever.catalog.Utilities.DocumentTypesEnum; 44 import org.netbeans.modules.xml.retriever.IConstants; 45 import org.netbeans.modules.xml.xam.ui.ProjectConstants; 46 import org.netbeans.spi.project.ui.LogicalViewProvider; 47 import org.openide.filesystems.FileObject; 48 import org.openide.filesystems.FileUtil; 49 import org.openide.loaders.DataFolder; 50 import org.openide.loaders.DataObject; 51 import org.openide.loaders.TemplateWizard; 52 import org.openide.nodes.Children; 53 import org.openide.nodes.FilterNode; 54 import org.openide.nodes.Node; 55 import org.openide.nodes.NodeAcceptor; 56 import org.openide.nodes.NodeOperation; 57 import org.openide.util.NbBundle; 58 59 60 public final class RetrieveXMLResourceVisualPanel1 extends JPanel implements DocumentListener { 61 static final long serialVersionUID = 91839812; 62 private static final String USER_PREF_SAVE_LOCATION_KEY = "USER_PREF_SAVE_LOCATION_KEY"; 63 private static final String USER_PREF_LOCAL_FILE_DIR_KEY = "USER_PREF_LOCAL_FILE_DIR_KEY"; 64 private RetrieveXMLResourceWizardPanel1 enclosingClass; 65 66 private String selectedSaveRootFolder = null; 67 70 public RetrieveXMLResourceVisualPanel1(RetrieveXMLResourceWizardPanel1 enclosure) { 71 enclosingClass = enclosure; 72 initComponents(); 73 lfsSourceFileLocationTextField.getDocument().addDocumentListener(this); 74 URLFileLocationTextField.getDocument().addDocumentListener(this); 75 tpLocationTextField.getDocument().addDocumentListener(this); 76 77 } 78 79 public String getName() { 80 return NbBundle.getMessage(RetrieveXMLResourceVisualPanel1.class, "LBL_step_description"); } 82 83 88 private void initComponents() { 90 sourceTypeRadioButtonGroup = new javax.swing.ButtonGroup (); 91 sourceLabel = new javax.swing.JLabel (); 92 fromURLButton = new javax.swing.JRadioButton (); 93 URLFileLocationTextField = new javax.swing.JTextField (); 94 closureCheckBox = new javax.swing.JCheckBox (); 95 fromLocalFileButton = new javax.swing.JRadioButton (); 96 lfsSourceFileLocationTextField = new javax.swing.JTextField (); 97 lfsBrowseButton = new javax.swing.JButton (); 98 targetLabel = new javax.swing.JLabel (); 99 tpLocationLabel = new javax.swing.JLabel (); 100 tpLocationTextField = new javax.swing.JTextField (); 101 tpLocationBrowseButton = new javax.swing.JButton (); 102 overwriteFiles = new javax.swing.JCheckBox (); 103 104 org.openide.awt.Mnemonics.setLocalizedText(sourceLabel, java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("LBL_select_source")); 105 sourceLabel.getAccessibleContext().setAccessibleName(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("LBL_select_source")); 106 sourceLabel.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("LBL_select_source")); 107 108 sourceTypeRadioButtonGroup.add(fromURLButton); 109 fromURLButton.setSelected(true); 110 org.openide.awt.Mnemonics.setLocalizedText(fromURLButton, java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("TXT_FromURLResource")); 111 fromURLButton.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 112 fromURLButton.setMargin(new java.awt.Insets (0, 0, 0, 0)); 113 fromURLButton.addActionListener(new java.awt.event.ActionListener () { 114 public void actionPerformed(java.awt.event.ActionEvent evt) { 115 fromURLButtonPressed(evt); 116 } 117 }); 118 119 fromURLButton.getAccessibleContext().setAccessibleName(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("TXT_FromURLResource")); 120 fromURLButton.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("TXT_FromURLResource")); 121 122 URLFileLocationTextField.setText("http://"); 123 URLFileLocationTextField.setToolTipText(lfsSourceFileLocationTextField.getText()); 124 URLFileLocationTextField.setNextFocusableComponent(lfsBrowseButton); 125 URLFileLocationTextField.addFocusListener(new java.awt.event.FocusAdapter () { 126 public void focusLost(java.awt.event.FocusEvent evt) { 127 refreshToolTips(evt); 128 } 129 }); 130 131 URLFileLocationTextField.getAccessibleContext().setAccessibleName(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("TXT_FromURLResource")); 132 URLFileLocationTextField.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("TXT_FromURLResource")); 133 134 closureCheckBox.setSelected(true); 135 org.openide.awt.Mnemonics.setLocalizedText(closureCheckBox, java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("LBL_closure_checkbox_label")); 136 closureCheckBox.setToolTipText(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("TIP_retrieve_closure_tool_tip")); 137 closureCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 138 closureCheckBox.setMargin(new java.awt.Insets (0, 0, 0, 0)); 139 closureCheckBox.setVisible(false); 140 closureCheckBox.addActionListener(new java.awt.event.ActionListener () { 141 public void actionPerformed(java.awt.event.ActionEvent evt) { 142 retrieveCheckBoxEventHandler(evt); 143 } 144 }); 145 146 closureCheckBox.getAccessibleContext().setAccessibleDescription("Retrieve dependent files"); 147 148 sourceTypeRadioButtonGroup.add(fromLocalFileButton); 149 org.openide.awt.Mnemonics.setLocalizedText(fromLocalFileButton, java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("TXT_FromLocalFileResource")); 150 fromLocalFileButton.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 151 fromLocalFileButton.setMargin(new java.awt.Insets (0, 0, 0, 0)); 152 fromLocalFileButton.addActionListener(new java.awt.event.ActionListener () { 153 public void actionPerformed(java.awt.event.ActionEvent evt) { 154 fromLocalFileButtonActionPerformed(evt); 155 } 156 }); 157 158 fromLocalFileButton.getAccessibleContext().setAccessibleName(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("TXT_FromLocalFileResource")); 159 fromLocalFileButton.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("TXT_FromLocalFileResource")); 160 161 lfsSourceFileLocationTextField.setEnabled(false); 162 lfsSourceFileLocationTextField.getAccessibleContext().setAccessibleName(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("TXT_FromLocalFileResource")); 163 lfsSourceFileLocationTextField.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("TXT_FromLocalFileResource")); 164 165 org.openide.awt.Mnemonics.setLocalizedText(lfsBrowseButton, java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("LBL_source_browse")); 166 lfsBrowseButton.setEnabled(false); 167 lfsBrowseButton.setNextFocusableComponent(tpLocationTextField); 168 lfsBrowseButton.addActionListener(new java.awt.event.ActionListener () { 169 public void actionPerformed(java.awt.event.ActionEvent evt) { 170 invokeFileChooserForSource(evt); 171 } 172 }); 173 174 lfsBrowseButton.getAccessibleContext().setAccessibleName(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("A11Y_target_browse")); 175 lfsBrowseButton.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("A11Y_target_browse")); 176 177 org.openide.awt.Mnemonics.setLocalizedText(targetLabel, java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("LBL_select_target")); 178 179 tpLocationLabel.setLabelFor(tpLocationTextField); 180 org.openide.awt.Mnemonics.setLocalizedText(tpLocationLabel, java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("LBL_save_file_location")); 181 182 tpLocationTextField.setEditable(false); 183 tpLocationTextField.setToolTipText(tpLocationTextField.getText()); 184 tpLocationTextField.setNextFocusableComponent(tpLocationBrowseButton); 185 tpLocationTextField.addFocusListener(new java.awt.event.FocusAdapter () { 186 public void focusLost(java.awt.event.FocusEvent evt) { 187 refreshToolTips(evt); 188 } 189 }); 190 191 tpLocationTextField.getAccessibleContext().setAccessibleName(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("LBL_save_file_location")); 192 tpLocationTextField.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("LBL_save_file_location")); 193 194 org.openide.awt.Mnemonics.setLocalizedText(tpLocationBrowseButton, java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("LBL_target_browse")); 195 tpLocationBrowseButton.addActionListener(new java.awt.event.ActionListener () { 196 public void actionPerformed(java.awt.event.ActionEvent evt) { 197 invokeFileChooserForTarget(evt); 198 } 199 }); 200 201 tpLocationBrowseButton.getAccessibleContext().setAccessibleName(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("A11Y_target_browse")); 202 tpLocationBrowseButton.getAccessibleContext().setAccessibleDescription(java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("A11Y_target_browse")); 203 204 org.openide.awt.Mnemonics.setLocalizedText(overwriteFiles, java.util.ResourceBundle.getBundle("org/netbeans/modules/xml/schema/ui/retriever/Bundle").getString("LBL_OVERWIRITE_FILES")); 205 overwriteFiles.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); 206 overwriteFiles.setMargin(new java.awt.Insets (0, 0, 0, 0)); 207 overwriteFiles.getAccessibleContext().setAccessibleName("Overwrite files with same name."); 208 overwriteFiles.getAccessibleContext().setAccessibleDescription("Overwrite files with same name."); 209 210 org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); 211 this.setLayout(layout); 212 layout.setHorizontalGroup( 213 layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 214 .add(layout.createSequentialGroup() 215 .addContainerGap() 216 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 217 .add(layout.createSequentialGroup() 218 .add(10, 10, 10) 219 .add(overwriteFiles)) 220 .add(layout.createSequentialGroup() 221 .add(10, 10, 10) 222 .add(closureCheckBox)) 223 .add(URLFileLocationTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 488, Short.MAX_VALUE) 224 .add(sourceLabel) 225 .add(fromURLButton) 226 .add(targetLabel) 227 .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() 228 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 229 .add(layout.createSequentialGroup() 230 .add(tpLocationLabel) 231 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 232 .add(tpLocationTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 309, Short.MAX_VALUE)) 233 .add(lfsSourceFileLocationTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 402, Short.MAX_VALUE)) 234 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 235 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 236 .add(lfsBrowseButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 79, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) 237 .add(tpLocationBrowseButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 79, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) 238 .add(fromLocalFileButton)) 239 .addContainerGap()) 240 ); 241 layout.setVerticalGroup( 242 layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 243 .add(layout.createSequentialGroup() 244 .add(sourceLabel) 245 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 246 .add(fromURLButton) 247 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 248 .add(URLFileLocationTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) 249 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 250 .add(closureCheckBox) 251 .add(11, 11, 11) 252 .add(fromLocalFileButton) 253 .add(5, 5, 5) 254 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) 255 .add(lfsBrowseButton) 256 .add(lfsSourceFileLocationTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) 257 .add(11, 11, 11) 258 .add(targetLabel) 259 .add(2, 2, 2) 260 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) 261 .add(tpLocationBrowseButton) 262 .add(tpLocationTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) 263 .add(tpLocationLabel)) 264 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) 265 .add(overwriteFiles) 266 .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 267 ); 268 } 270 private void fromURLButtonPressed(java.awt.event.ActionEvent evt) { lfsSourceFileLocationTextField.setEnabled(false); 272 URLFileLocationTextField.setEnabled(true); 273 lfsBrowseButton.setEnabled(false); 274 fireChange(); 275 } 277 private void fromLocalFileButtonActionPerformed(java.awt.event.ActionEvent evt) { lfsSourceFileLocationTextField.setEnabled(true); 279 URLFileLocationTextField.setEnabled(false); 280 lfsBrowseButton.setEnabled(true); 281 fireChange(); 282 } 284 private void refreshToolTips(java.awt.event.FocusEvent evt) { tpLocationTextField.setToolTipText(tpLocationTextField.getText()); 286 lfsSourceFileLocationTextField.setToolTipText(lfsSourceFileLocationTextField.getText()); 287 } 289 private void retrieveCheckBoxEventHandler(java.awt.event.ActionEvent evt) { String str = URLFileLocationTextField.getText(); 291 if(closureCheckBox.isSelected()){ 292 try{ 293 String targetLocStr = new File (new URI (new URI (new File (selectedSaveRootFolder).toURI().toString()+"/"+new URL (str).toURI().getSchemeSpecificPart().replace(':', '_')).normalize().toString())).toString(); 294 tpLocationTextField.setText(targetLocStr); 295 } catch(Exception exp){ 296 } 297 }else{ 298 try{ 299 String fileName = new URL (str).getFile(); 300 if(fileName.lastIndexOf("/")!= -1) 301 fileName = fileName.substring(fileName.lastIndexOf("/")+1); 302 if(fileName != null) 303 tpLocationTextField.setText(selectedSaveRootFolder+File.separator+fileName); 304 }catch(Exception exception){} 305 } 306 } 308 private void invokeFileChooserForTarget(java.awt.event.ActionEvent evt) { Sources srcs = ProjectUtils.getSources(getProject()); 310 String prjName = ProjectUtils.getInformation((getProject())).getName(); 311 LogicalViewProvider lvp = (LogicalViewProvider) getProject().getLookup().lookup(LogicalViewProvider.class); 312 SourceGroup[] sgs = srcs.getSourceGroups(XMLCatalogProvider.TYPE_RETRIEVED); 313 if(sgs == null || sgs.length < 1) 314 sgs = srcs.getSourceGroups(ProjectConstants.JAVA_SOURCES_TYPE); 315 List <FileObject> fobjs = new ArrayList <FileObject>(); 316 if( (sgs == null) || (sgs.length <= 0) ){ 318 fobjs.add(getProject().getProjectDirectory()); 319 }else{ 320 for(SourceGroup sg: sgs){ 321 fobjs.add(sg.getRootFolder()); 322 } 323 } 324 final List <Node> nodeL = new ArrayList <Node>(); 326 for(FileObject fo: fobjs){ 327 Node node = null; 328 try{ 329 node = DataObject.find(fo).getNodeDelegate(); 330 }catch(Exception e) { 331 continue; 332 } 333 if(node != null){ 334 node = new FilterNode(node); 335 nodeL.add(node); 336 } 337 } 338 Node node = null; 340 Node dummyRootNode = null; 341 Node root = lvp.createLogicalView(); 344 dummyRootNode = new FilterNode(root, new Children.Array()); 345 Node nodes[] = nodeL.toArray(new Node[nodeL.size()]); 346 dummyRootNode.getChildren().add(nodes); 347 node = dummyRootNode; 348 final Node finalDummyNode = dummyRootNode; 352 Node[] selectedNodes = null; 353 try{ 354 selectedNodes = NodeOperation.getDefault().select(NbBundle.getMessage(RetrieveXMLResourceVisualPanel1.class, "TITLE_choose_target_folder"), 355 "", node, 356 new NodeAcceptor() { 357 public boolean acceptNodes(Node[] node) { 358 if( (node == null) || (node.length < 1) ) 359 return false; 360 if( (finalDummyNode != null) && (node[0] == finalDummyNode) ) 361 return false; 362 DataObject dobj = (DataObject) node[0].getLookup().lookup(DataObject.class); 363 if(dobj.getPrimaryFile().isFolder()) 364 return true; 365 return false; 366 } 367 } 368 ); 369 }catch(Exception e){ 370 return; 371 } 372 if((selectedNodes == null) || (selectedNodes[0] == null)) 373 return; 374 DataObject dobj = (DataObject) selectedNodes[0].getLookup().lookup(DataObject.class); 375 FileObject fob = dobj.getPrimaryFile(); 376 String saveFolder = FileUtil.toFile(fob).toString(); 377 selectedSaveRootFolder = saveFolder; 378 if(getSelectedSourceType() == SourceType.LOCAL_FILE){ 379 String sourceFolderName = lfsSourceFileLocationTextField.getText(); 380 sourceFolderName = sourceFolderName.substring(sourceFolderName.lastIndexOf(File.separator)+1); 381 tpLocationTextField.setText(saveFolder+File.separator+sourceFolderName); 382 } 383 if(getSelectedSourceType() == SourceType.URL_ADDR){ 384 String sourceURL = lfsSourceFileLocationTextField.getText(); 385 URI uri = null; 386 try { 387 uri = new URI (sourceURL); 388 } catch (URISyntaxException ex) { 389 ex.printStackTrace(); 390 } 391 String domainName = uri.getSchemeSpecificPart(); 392 domainName = domainName.replace(':','_'); 393 String saveFolderURIStr = new File (saveFolder).toURI().toString(); 394 String finalSaveFolder = saveFolderURIStr+"/"+domainName; 395 URI tmpURI = null; 396 try { 397 tmpURI = new URI (finalSaveFolder); 398 } catch (URISyntaxException ex) { 399 tpLocationTextField.setText(""); 400 return; 401 } 402 finalSaveFolder = new File (tmpURI.normalize()).toString(); 403 tpLocationTextField.setText(finalSaveFolder); 404 } 405 } 407 private void invokeFileChooserForSource(java.awt.event.ActionEvent evt) { JFileChooser fileChooser = new JFileChooser (); 409 410 String str = lfsSourceFileLocationTextField.getText(); 411 if((str != null) && (str.length() != 0)) 412 fileChooser.setSelectedFile(new File (str)); 413 414 fileChooser.setMultiSelectionEnabled(false); 415 fileChooser.setFileSelectionMode(fileChooser.DIRECTORIES_ONLY); 416 if(fileChooser.showOpenDialog((Component ) evt.getSource()) == fileChooser.APPROVE_OPTION){ 417 String sourceFolderName = fileChooser.getSelectedFile().getAbsolutePath(); 418 lfsSourceFileLocationTextField.setText(sourceFolderName); 419 } 420 } int previouslayoutIndex = 0; 422 423 public String getSourceLocation(){ 424 String str = null; 425 if (getSelectedSourceType() == SourceType.LOCAL_FILE) { 426 str = lfsSourceFileLocationTextField.getText(); 427 } else { 428 str = URLFileLocationTextField.getText(); 429 } 430 if((str == null) || (str.length() <= 0)) 431 return null; 432 if(getSelectedSourceType() == SourceType.LOCAL_FILE){ 434 str = new File (str).toURI().toString(); 435 return str; 436 } 437 if(getSelectedSourceType() == SourceType.URL_ADDR){ 438 return str; 439 } 440 return null; 441 } 442 443 public enum SourceType{ 444 LOCAL_FILE, 445 URL_ADDR, 446 UDDI_ADDR 447 }; 448 449 public SourceType getSelectedSourceType() { 450 SourceType sourceType = SourceType.URL_ADDR; 451 if (fromLocalFileButton.isSelected()) { 452 sourceType = SourceType.LOCAL_FILE; 453 } 454 return sourceType; 455 } 456 457 public String getURLLocation(){ 458 String str = lfsSourceFileLocationTextField.getText(); 459 if((str != null) && (str.length() > 0)){ 461 str = new File (str).toURI().toString(); 462 return str; 463 } 464 return null; 465 } 466 467 public DocumentTypesEnum getDocType(){ 468 return DocumentTypesEnum.schema; 469 } 470 471 public File getSaveLocation(){ 472 String dir = tpLocationTextField.getText(); 473 if((dir == null) || (dir.trim().length() == 0)) 474 dir = null; 475 if(dir != null){ 476 File result = new File (dir); 477 return result; 478 } 479 return null; 480 } 481 482 public File getSelectedSaveRootFolder(){ 483 if(selectedSaveRootFolder == null) 484 return null; 485 return new File (selectedSaveRootFolder); 486 } 487 488 public boolean retrieveClosure(){ 489 return closureCheckBox.isSelected(); 490 } 491 492 private Project getProject(){ 493 Project prj = (Project) enclosingClass.getWizardDescriptor().getProperty(IConstants.CURRENT_PROJECT_KEY); 494 return prj; 495 } 496 497 public void refreshSaveLocation(){ 498 try { 499 DataFolder df = 500 ((TemplateWizard) enclosingClass.getWizardDescriptor()).getTargetFolder(); 501 String str = FileUtil.toFile(df.getPrimaryFile()).toString(); 502 selectedSaveRootFolder = str; 503 tpLocationTextField.setText(str); 504 } catch (IOException ioe) { 505 } 508 } 509 private final List <ChangeListener > listeners = new ArrayList <ChangeListener >(); 510 511 public void addChangeListener(ChangeListener l) { 512 listeners.add(l); 513 } 514 515 public void removeChangeListener(ChangeListener l) { 516 listeners.remove(l); 517 } 518 519 private void fireChange() { 520 ChangeEvent e = new ChangeEvent (this); 521 Iterator it = listeners.iterator(); 522 while (it.hasNext()) { 523 ((ChangeListener )it.next()).stateChanged(e); 524 } 525 } 526 527 public void insertUpdate(DocumentEvent e) { 528 changedUpdate(e); 529 } 530 531 public void removeUpdate(DocumentEvent e) { 532 changedUpdate(e); 533 } 534 535 public void changedUpdate(DocumentEvent e) { 536 fireChange(); 537 if(getSelectedSourceType() == SourceType.URL_ADDR){ 538 String str = null; 539 try { 540 str = e.getDocument().getText(0, e.getDocument().getLength()); 541 } catch (BadLocationException ex) { 542 return; 543 } 544 if(str.trim().equalsIgnoreCase(lfsSourceFileLocationTextField.getText().trim())){ 545 retrieveCheckBoxEventHandler(null); 546 } 547 } 548 } 549 550 public Boolean shouldOverwrite() { 551 return new Boolean (overwriteFiles.isSelected()); 552 } 553 554 private javax.swing.JTextField URLFileLocationTextField; 556 private javax.swing.JCheckBox closureCheckBox; 557 private javax.swing.JRadioButton fromLocalFileButton; 558 private javax.swing.JRadioButton fromURLButton; 559 private javax.swing.JButton lfsBrowseButton; 560 private javax.swing.JTextField lfsSourceFileLocationTextField; 561 private javax.swing.JCheckBox overwriteFiles; 562 private javax.swing.JLabel sourceLabel; 563 private javax.swing.ButtonGroup sourceTypeRadioButtonGroup; 564 private javax.swing.JLabel targetLabel; 565 private javax.swing.JButton tpLocationBrowseButton; 566 private javax.swing.JLabel tpLocationLabel; 567 private javax.swing.JTextField tpLocationTextField; 568 570 } 571 572 573 574 575 576 | Popular Tags |