1 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 ; 16 17 public class ProjectFileNavigator extends ProjectNavigator { 18 private String m_extension; 19 20 public ProjectFileNavigator(java.awt.Frame frame) { 21 this(frame, null); 22 } 23 24 public ProjectFileNavigator(java.awt.Frame frame, String 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 [] 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 |