KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > schema > ui > retriever > RetrieveXMLResourceVisualPanel1


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.xml.schema.ui.retriever;
21
22 import java.awt.Component JavaDoc;
23 import java.io.File JavaDoc;
24 import java.io.IOException JavaDoc;
25 import java.net.URI JavaDoc;
26 import java.net.URISyntaxException JavaDoc;
27 import java.net.URL JavaDoc;
28 import java.util.ArrayList JavaDoc;
29 import java.util.Iterator JavaDoc;
30 import java.util.List JavaDoc;
31 import javax.swing.JFileChooser JavaDoc;
32 import javax.swing.JPanel JavaDoc;
33 import javax.swing.event.ChangeEvent JavaDoc;
34 import javax.swing.event.ChangeListener JavaDoc;
35 import javax.swing.event.DocumentEvent JavaDoc;
36 import javax.swing.event.DocumentListener JavaDoc;
37 import javax.swing.text.BadLocationException JavaDoc;
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 JavaDoc implements DocumentListener JavaDoc{
61     static final long serialVersionUID = 91839812;
62     private static final String JavaDoc USER_PREF_SAVE_LOCATION_KEY = "USER_PREF_SAVE_LOCATION_KEY";
63     private static final String JavaDoc USER_PREF_LOCAL_FILE_DIR_KEY = "USER_PREF_LOCAL_FILE_DIR_KEY";
64     private RetrieveXMLResourceWizardPanel1 enclosingClass;
65     
66     private String JavaDoc selectedSaveRootFolder = null;
67     /**
68      * Creates new form RetrieveXMLResourceVisualPanel1
69      */

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 JavaDoc getName() {
80         return NbBundle.getMessage(RetrieveXMLResourceVisualPanel1.class, "LBL_step_description");//noi18n
81
}
82     
83     /** This method is called from within the constructor to
84      * initialize the form.
85      * WARNING: Do NOT modify this code. The content of this method is
86      * always regenerated by the Form Editor.
87      */

88     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
89
private void initComponents() {
90         sourceTypeRadioButtonGroup = new javax.swing.ButtonGroup JavaDoc();
91         sourceLabel = new javax.swing.JLabel JavaDoc();
92         fromURLButton = new javax.swing.JRadioButton JavaDoc();
93         URLFileLocationTextField = new javax.swing.JTextField JavaDoc();
94         closureCheckBox = new javax.swing.JCheckBox JavaDoc();
95         fromLocalFileButton = new javax.swing.JRadioButton JavaDoc();
96         lfsSourceFileLocationTextField = new javax.swing.JTextField JavaDoc();
97         lfsBrowseButton = new javax.swing.JButton JavaDoc();
98         targetLabel = new javax.swing.JLabel JavaDoc();
99         tpLocationLabel = new javax.swing.JLabel JavaDoc();
100         tpLocationTextField = new javax.swing.JTextField JavaDoc();
101         tpLocationBrowseButton = new javax.swing.JButton JavaDoc();
102         overwriteFiles = new javax.swing.JCheckBox JavaDoc();
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 JavaDoc(0, 0, 0, 0));
113         fromURLButton.addActionListener(new java.awt.event.ActionListener JavaDoc() {
114             public void actionPerformed(java.awt.event.ActionEvent JavaDoc 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 JavaDoc() {
126             public void focusLost(java.awt.event.FocusEvent JavaDoc 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 JavaDoc(0, 0, 0, 0));
139         closureCheckBox.setVisible(false);
140         closureCheckBox.addActionListener(new java.awt.event.ActionListener JavaDoc() {
141             public void actionPerformed(java.awt.event.ActionEvent JavaDoc 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 JavaDoc(0, 0, 0, 0));
152         fromLocalFileButton.addActionListener(new java.awt.event.ActionListener JavaDoc() {
153             public void actionPerformed(java.awt.event.ActionEvent JavaDoc 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 JavaDoc() {
169             public void actionPerformed(java.awt.event.ActionEvent JavaDoc 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 JavaDoc() {
186             public void focusLost(java.awt.event.FocusEvent JavaDoc 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 JavaDoc() {
196             public void actionPerformed(java.awt.event.ActionEvent JavaDoc 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 JavaDoc(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     }// </editor-fold>//GEN-END:initComponents
269

270     private void fromURLButtonPressed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_fromURLButtonPressed
271
lfsSourceFileLocationTextField.setEnabled(false);
272         URLFileLocationTextField.setEnabled(true);
273         lfsBrowseButton.setEnabled(false);
274         fireChange();
275     }//GEN-LAST:event_fromURLButtonPressed
276

277     private void fromLocalFileButtonActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_fromLocalFileButtonActionPerformed
278
lfsSourceFileLocationTextField.setEnabled(true);
279         URLFileLocationTextField.setEnabled(false);
280         lfsBrowseButton.setEnabled(true);
281         fireChange();
282     }//GEN-LAST:event_fromLocalFileButtonActionPerformed
283

284     private void refreshToolTips(java.awt.event.FocusEvent JavaDoc evt) {//GEN-FIRST:event_refreshToolTips
285
tpLocationTextField.setToolTipText(tpLocationTextField.getText());
286         lfsSourceFileLocationTextField.setToolTipText(lfsSourceFileLocationTextField.getText());
287     }//GEN-LAST:event_refreshToolTips
288

289     private void retrieveCheckBoxEventHandler(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_retrieveCheckBoxEventHandler
290
String JavaDoc str = URLFileLocationTextField.getText();
291         if(closureCheckBox.isSelected()){
292             try{
293                 String JavaDoc targetLocStr = new File JavaDoc(new URI JavaDoc(new URI JavaDoc(new File JavaDoc(selectedSaveRootFolder).toURI().toString()+"/"+new URL JavaDoc(str).toURI().getSchemeSpecificPart().replace(':', '_')).normalize().toString())).toString();
294                 tpLocationTextField.setText(targetLocStr);
295             } catch(Exception JavaDoc exp){
296             }
297         }else{
298             try{
299                 String JavaDoc fileName = new URL JavaDoc(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 JavaDoc exception){}
305         }
306     }//GEN-LAST:event_retrieveCheckBoxEventHandler
307

308     private void invokeFileChooserForTarget(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_invokeFileChooserForTarget
309
Sources srcs = ProjectUtils.getSources(getProject());
310         String JavaDoc 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 JavaDoc<FileObject> fobjs = new ArrayList JavaDoc<FileObject>();
316         //get all the srcgrps root FOs
317
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         //get their nodes
325
final List JavaDoc<Node> nodeL = new ArrayList JavaDoc<Node>();
326         for(FileObject fo: fobjs){
327             Node node = null;
328             try{
329                 node = DataObject.find(fo).getNodeDelegate();
330             }catch(Exception JavaDoc e) {
331                 continue;
332             }
333             if(node != null){
334                 node = new FilterNode(node);
335                 nodeL.add(node);
336             }
337         }
338         //now determine a root node.
339
Node node = null;
340         Node dummyRootNode = null;
341         //if(nodeL.size() > 1){
342
//more than 1 node so create a dummy root node
343
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         //}else{
349
// node = nodeL.get(0);
350
//}
351
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 JavaDoc 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 JavaDoc saveFolder = FileUtil.toFile(fob).toString();
377         selectedSaveRootFolder = saveFolder;
378         if(getSelectedSourceType() == SourceType.LOCAL_FILE){
379             String JavaDoc 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 JavaDoc sourceURL = lfsSourceFileLocationTextField.getText();
385             URI JavaDoc uri = null;
386             try {
387                 uri = new URI JavaDoc(sourceURL);
388             } catch (URISyntaxException JavaDoc ex) {
389                 ex.printStackTrace();
390             }
391             String JavaDoc domainName = uri.getSchemeSpecificPart();
392             domainName = domainName.replace(':','_');
393             String JavaDoc saveFolderURIStr = new File JavaDoc(saveFolder).toURI().toString();
394             String JavaDoc finalSaveFolder = saveFolderURIStr+"/"+domainName;
395             URI JavaDoc tmpURI = null;
396             try {
397                 tmpURI = new URI JavaDoc(finalSaveFolder);
398             } catch (URISyntaxException JavaDoc ex) {
399                 tpLocationTextField.setText("");
400                 return;
401             }
402             finalSaveFolder = new File JavaDoc(tmpURI.normalize()).toString();
403             tpLocationTextField.setText(finalSaveFolder);
404         }
405     }//GEN-LAST:event_invokeFileChooserForTarget
406

407     private void invokeFileChooserForSource(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_invokeFileChooserForSource
408
JFileChooser JavaDoc fileChooser = new JFileChooser JavaDoc();
409         
410         String JavaDoc str = lfsSourceFileLocationTextField.getText();
411         if((str != null) && (str.length() != 0))
412             fileChooser.setSelectedFile(new File JavaDoc(str));
413         
414         fileChooser.setMultiSelectionEnabled(false);
415         fileChooser.setFileSelectionMode(fileChooser.DIRECTORIES_ONLY);
416         if(fileChooser.showOpenDialog((Component JavaDoc) evt.getSource()) == fileChooser.APPROVE_OPTION){
417             String JavaDoc sourceFolderName = fileChooser.getSelectedFile().getAbsolutePath();
418             lfsSourceFileLocationTextField.setText(sourceFolderName);
419         }
420     }//GEN-LAST:event_invokeFileChooserForSource
421
int previouslayoutIndex = 0;
422     
423     public String JavaDoc getSourceLocation(){
424         String JavaDoc 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         //pref.put(USER_PREF_LOCAL_FILE_DIR_KEY, str);
433
if(getSelectedSourceType() == SourceType.LOCAL_FILE){
434             str = new File JavaDoc(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 JavaDoc getURLLocation(){
458         String JavaDoc str = lfsSourceFileLocationTextField.getText();
459         //pref.put(USER_PREF_LOCAL_FILE_DIR_KEY, str);
460
if((str != null) && (str.length() > 0)){
461             str = new File JavaDoc(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 JavaDoc getSaveLocation(){
472         String JavaDoc dir = tpLocationTextField.getText();
473         if((dir == null) || (dir.trim().length() == 0))
474             dir = null;
475         if(dir != null){
476             File JavaDoc result = new File JavaDoc(dir);
477             return result;
478         }
479         return null;
480     }
481     
482     public File JavaDoc getSelectedSaveRootFolder(){
483         if(selectedSaveRootFolder == null)
484             return null;
485         return new File JavaDoc(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 JavaDoc str = FileUtil.toFile(df.getPrimaryFile()).toString();
502             selectedSaveRootFolder = str;
503             tpLocationTextField.setText(str);
504         } catch (IOException JavaDoc ioe) {
505             // cannot get the target folder, so just ignore the exception and
506
// require the user to specify it
507
}
508     }
509     private final List JavaDoc<ChangeListener JavaDoc> listeners = new ArrayList JavaDoc<ChangeListener JavaDoc>();
510     
511     public void addChangeListener(ChangeListener JavaDoc l) {
512         listeners.add(l);
513     }
514     
515     public void removeChangeListener(ChangeListener JavaDoc l) {
516         listeners.remove(l);
517     }
518     
519     private void fireChange() {
520         ChangeEvent JavaDoc e = new ChangeEvent JavaDoc(this);
521         Iterator JavaDoc it = listeners.iterator();
522         while (it.hasNext()) {
523             ((ChangeListener JavaDoc)it.next()).stateChanged(e);
524         }
525     }
526     
527     public void insertUpdate(DocumentEvent JavaDoc e) {
528         changedUpdate(e);
529     }
530     
531     public void removeUpdate(DocumentEvent JavaDoc e) {
532         changedUpdate(e);
533     }
534     
535     public void changedUpdate(DocumentEvent JavaDoc e) {
536         fireChange();
537         if(getSelectedSourceType() == SourceType.URL_ADDR){
538             String JavaDoc str = null;
539             try {
540                 str = e.getDocument().getText(0, e.getDocument().getLength());
541             } catch (BadLocationException JavaDoc ex) {
542                 return;
543             }
544             if(str.trim().equalsIgnoreCase(lfsSourceFileLocationTextField.getText().trim())){
545                 retrieveCheckBoxEventHandler(null);
546             }
547         }
548     }
549
550     public Boolean JavaDoc shouldOverwrite() {
551         return new Boolean JavaDoc(overwriteFiles.isSelected());
552     }
553     
554     // Variables declaration - do not modify//GEN-BEGIN:variables
555
private javax.swing.JTextField JavaDoc URLFileLocationTextField;
556     private javax.swing.JCheckBox JavaDoc closureCheckBox;
557     private javax.swing.JRadioButton JavaDoc fromLocalFileButton;
558     private javax.swing.JRadioButton JavaDoc fromURLButton;
559     private javax.swing.JButton JavaDoc lfsBrowseButton;
560     private javax.swing.JTextField JavaDoc lfsSourceFileLocationTextField;
561     private javax.swing.JCheckBox JavaDoc overwriteFiles;
562     private javax.swing.JLabel JavaDoc sourceLabel;
563     private javax.swing.ButtonGroup JavaDoc sourceTypeRadioButtonGroup;
564     private javax.swing.JLabel JavaDoc targetLabel;
565     private javax.swing.JButton JavaDoc tpLocationBrowseButton;
566     private javax.swing.JLabel JavaDoc tpLocationLabel;
567     private javax.swing.JTextField JavaDoc tpLocationTextField;
568     // End of variables declaration//GEN-END:variables
569

570 }
571
572
573
574
575
576
Popular Tags