KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > terracotta > dso > editors > chooser > ProjectFileNavigator


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

4 package org.terracotta.dso.editors.chooser;
5
6 import org.eclipse.core.resources.IFile;
7 import org.eclipse.core.resources.IProject;
8
9 import org.dijon.DialogResource;
10
11 import org.terracotta.dso.editors.tree.ProjectFileNode;
12 import org.terracotta.dso.editors.tree.ProjectFileRoot;
13 import org.terracotta.dso.editors.tree.ProjectModel;
14
15 import javax.swing.tree.TreePath JavaDoc;
16
17 public class ProjectFileNavigator extends ProjectNavigator {
18   private String JavaDoc m_extension;
19   
20   public ProjectFileNavigator(java.awt.Frame JavaDoc frame) {
21     this(frame, null);
22   }
23   
24   public ProjectFileNavigator(java.awt.Frame JavaDoc frame, String JavaDoc extension) {
25     super(frame);
26     m_extension = extension;
27   }
28   
29   public void load(DialogResource dialogRes) {
30     super.load(dialogRes);
31     setTitle("Project File Navigator");
32   }
33   
34   protected ProjectModel createModel(IProject project) {
35     ProjectFileRoot root = new ProjectFileRoot(project, m_extension);
36     ProjectModel model = new ProjectModel(root);
37     
38     return model;
39   }
40   
41   protected ProjectFileNode[] getSelectedFileNodes() {
42     TreePath JavaDoc[] paths = m_packageTree.getSelectionPaths();
43     ProjectFileNode[] nodes = new ProjectFileNode[paths.length];
44     
45     for(int i = 0; i < paths.length; i++) {
46       nodes[i] = (ProjectFileNode)paths[i].getLastPathComponent();
47     }
48     
49     return nodes;
50   }
51   
52   public IFile[] getSelectedFiles() {
53     ProjectFileNode[] nodes = getSelectedFileNodes();
54     IFile[] result;
55     
56     if(nodes != null) {
57       result = new IFile[nodes.length];
58       
59       for(int i = 0; i < result.length; i++) {
60         result[i] = nodes[i].getFile();
61       }
62     }
63     else {
64       result = new IFile[]{};
65     }
66     
67     return result;
68   }
69   
70   public IFile getSelectedFile() {
71     IFile[] files = getSelectedFiles();
72     return files != null && files.length > 0 ? files[0] : null;
73   }
74 }
75
Popular Tags