1 19 20 package org.netbeans.bluej; 21 22 import java.io.IOException ; 23 import java.net.URI ; 24 import java.net.URL ; 25 import java.util.Iterator ; 26 import org.netbeans.api.project.ant.AntArtifact; 27 import org.netbeans.bluej.classpath.ClassPathProviderImpl; 28 import org.netbeans.spi.java.project.classpath.ProjectClassPathExtender; 29 import org.openide.filesystems.FileObject; 30 import org.openide.filesystems.FileUtil; 31 import org.openide.filesystems.URLMapper; 32 33 37 public class BJClassPathExtender implements ProjectClassPathExtender{ 38 39 private BluejProject project; 40 41 42 public BJClassPathExtender(BluejProject proj) { 43 project = proj; 44 } 45 46 public boolean addLibrary(org.netbeans.api.project.libraries.Library library) throws IOException { 47 FileObject libs = project.getProjectDirectory().getFileObject("+libs"); if (libs == null) { 49 libs = project.getProjectDirectory().createFolder("+libs"); } 51 Iterator it = library.getContent("classpath").iterator(); while (it.hasNext()) { 53 URL url = (URL ) it.next(); 54 if (FileUtil.getArchiveFile(url) != null) { 55 url = FileUtil.getArchiveFile(url); 56 } 57 FileObject fo = URLMapper.findFileObject(url); 58 FileObject newLib = libs.getFileObject(fo.getNameExt()); 59 if (newLib == null) { 60 FileUtil.copyFile(fo, libs, fo.getName()); 61 } 62 } 63 ClassPathProviderImpl prov = (ClassPathProviderImpl) project.getLookup().lookup(ClassPathProviderImpl.class); 64 prov.getBluejCPImpl().fireChange(); 65 return true; 66 } 67 68 public boolean addArchiveFile(FileObject archiveFile) throws IOException { 69 FileObject libs = project.getProjectDirectory().getFileObject("+libs"); if (libs == null) { 71 libs = project.getProjectDirectory().createFolder("+libs"); } 73 FileObject newLib = libs.getFileObject(archiveFile.getNameExt()); 74 if (newLib == null) { 75 FileUtil.copyFile(archiveFile, libs, archiveFile.getName()); 76 } 77 ClassPathProviderImpl prov = (ClassPathProviderImpl) project.getLookup().lookup(ClassPathProviderImpl.class); 78 prov.getBluejCPImpl().fireChange(); 79 return true; 80 } 81 82 public boolean addAntArtifact(AntArtifact artifact, URI artifactElement) throws IOException { 83 throw new IOException ("It is not possible to create project dependencies in BlueJ projects. Please convert the project to J2SE Project first."); 84 } 85 86 } 87 | Popular Tags |