1 19 20 package org.netbeans.modules.xml.wsdl.ui.common; 21 22 import java.io.File ; 23 import java.util.HashSet ; 24 import java.util.Set ; 25 import java.util.StringTokenizer ; 26 import java.util.Vector ; 27 28 import org.netbeans.api.project.Project; 29 import org.netbeans.spi.project.SubprojectProvider; 30 import org.netbeans.spi.project.support.ant.AntProjectHelper; 31 import org.openide.ErrorManager; 32 33 38 public class ProjectUtil { 39 40 41 public static Set getClasspathProjects(Project p) { 42 Set classpathProjects = new HashSet (); 43 try { 44 SubprojectProvider sp = (SubprojectProvider) p.getLookup().lookup(SubprojectProvider.class); 45 Set ls = sp.getSubprojects(); 46 if (ls.size() < 1) { 47 return classpathProjects; 48 } 49 50 Project[] sps = (Project[])ls.toArray(new Project[ls.size()]); 51 String [] spn = new String [sps.length]; 52 for (int i = 0; i < sps.length; i++) { 53 spn[i] = sps[i].getProjectDirectory().getPath().toLowerCase(); 54 } 55 56 String sroot = p.getProjectDirectory().getPath(); 57 AntProjectHelper ah = (AntProjectHelper) p.getLookup().lookup(AntProjectHelper.class); 58 String src = ah.getStandardPropertyEvaluator().getProperty("javac.classpath"); StringTokenizer st = new StringTokenizer (src, ";"); Vector v = new Vector (); 61 while (st.hasMoreTokens()) { 62 String spath = st.nextToken(); 63 File sfile = new File (sroot+"/"+spath); v.add(sfile.getCanonicalPath().replace('\\', '/').toLowerCase()); 65 } 66 String [] vs = (String []) v.toArray(new String [0]); 67 68 v.removeAllElements(); 69 for (int i = 0; i < vs.length; i++) { 70 for (int j =0; j <sps.length; j++) { 71 if (vs[i].startsWith(spn[j])) { 72 v.add(sps[j]); 73 break; 74 } 75 } 76 } 77 78 classpathProjects.addAll(v); 79 return classpathProjects; 80 } catch(Exception exception) { 81 ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, exception); 82 } 83 84 return classpathProjects; 85 } 86 87 } 88 | Popular Tags |