| 1 19 20 21 package projects.APITests.utils; 22 23 import java.io.File ; 24 import org.netbeans.api.project.FileOwnerQuery; 25 import org.netbeans.api.project.Project; 26 import org.netbeans.api.project.ProjectUtils; 27 import org.netbeans.api.project.ui.OpenProjects; 28 import org.openide.ErrorManager; 29 import org.openide.filesystems.FileUtil; 30 import org.openide.util.Mutex; 31 32 36 public class Utilities { 37 38 39 public Utilities() { 40 } 41 42 public static boolean waitScanFinished() { 43 return true; 44 } 45 46 50 public static Object openProject(File projectDir) { 51 final ProjectOpenListener listener = new ProjectOpenListener(); 52 try { 53 final Project project = FileOwnerQuery.getOwner(FileUtil.toFileObject(projectDir)); 55 Mutex.EVENT.writeAccess(new Runnable () { 57 public void run() { 58 OpenProjects.getDefault().addPropertyChangeListener(listener); 59 OpenProjects.getDefault().open(new Project[]{project},false); 60 } 63 }); 64 Thread waitThread = new Thread (new Runnable () { 69 public void run() { 70 while(!listener.projectOpened) { 71 try { 72 Thread.sleep(50); 73 } catch (Exception e) { 74 ErrorManager.getDefault().notify(ErrorManager.EXCEPTION, e); 75 } 76 } 77 } 78 }); 79 waitThread.start(); 80 try { 81 waitThread.join(60000L); } catch (InterruptedException iex) { 83 ErrorManager.getDefault().notify(ErrorManager.EXCEPTION, iex); 84 } 85 if (waitThread.isAlive()) { 86 ErrorManager.getDefault().log(ErrorManager.USER, "Project not opened in 60 second."); 88 waitThread.interrupt(); 89 } 90 waitScanFinished(); 93 return project; 94 } catch (Exception ex) { 95 ErrorManager.getDefault().notify(ErrorManager.EXCEPTION, ex); 96 return null; 97 } finally { 98 OpenProjects.getDefault().removePropertyChangeListener(listener); 99 } 100 } 101 105 public static Object openProject(String projectPath) { 106 return openProject(new File (projectPath)); 107 } 108 109 113 public static boolean closeProject(String name){ 114 Project[] projectList = OpenProjects.getDefault().getOpenProjects(); 115 for (int i = 0; i < projectList.length; i++) { 116 final Project project = projectList[i]; 117 if(ProjectUtils.getInformation(project).getDisplayName().equals(name) || ProjectUtils.getInformation(project).getName().equals(name)){ 118 Mutex.EVENT.writeAccess(new Runnable (){ 119 public void run(){ 120 OpenProjects.getDefault().close(new Project[] {project}); 121 } 122 }); 123 return true; 124 } 125 } 126 return false; 127 } 128 129 public static boolean deleteProjectFolder(String projectFolder){ 130 File folder = new File (projectFolder); 131 return deleteDirContent(folder); 132 } 133 134 private static boolean deleteDirContent(File dir){ 135 File [] files = dir.listFiles(); 136 if(files != null){ 137 for (int i = 0; i < files.length; i++) { 138 if(files[i].isFile()){ 139 files[i].delete(); 140 }else{ 141 deleteDirContent(files[i]); 142 } 143 } 144 } 145 return dir.delete(); 146 } 147 } 148 | Popular Tags |