package _VisualDVM.Passes.All; import Common.Passes.Pass; import Common.Utils.Utils_; import _VisualDVM.Current; import _VisualDVM.Global; import _VisualDVM.Passes.PassCode; import _VisualDVM.Repository.BugReport.BugReport; import java.io.File; public class OpenBugReportTestProject extends Pass { File root = null; File project = null; @Override public String getIconPath() { return "/icons/DownloadBugReport.png"; } @Override public String getButtonText() { return ""; } @Override protected boolean canStart(Object... args) throws Exception { if (Global.componentsServer.db.CheckCurrent(Log, BugReport.class) && (target = Global.componentsServer.db.bugReports.getUI().getCurrent()).CheckNotDraft(Log)) { if (!target.project_version.isEmpty()) { root = new File(Global.visualiser.getDownloadsDirectory(), target.id); project = new File(root, Utils_.isWindows() ? Utils_.toW(target.project_version) : Utils_.toU(target.project_version) ); return true; } else { Log.Writeln_("Отчёт об ошибке не содержит прикреплённого проекта!"); return false; } } return false; } @Override protected void performPreparation() throws Exception { Global.mainModule.getPass(PassCode.CloseCurrentProject).Do(); Global.mainModule.set(Current.Root, null); //чтобы гарантированно не существовало корня. } @Override protected void body() throws Exception { //попытка скачки. проверка существования архива уже там. Global.mainModule.getPass(PassCode.DownloadBugReport).Do(target); if (target.getArchiveFile().exists()) { Global.mainModule.getPass(PassCode.UnzipFolderPass).Do( target.getArchiveFile().getAbsolutePath(), root.getAbsolutePath() ); } } @Override protected boolean validate() { if (!project.exists()) { Log.Writeln_("Тестовый проект\n" + project.getAbsolutePath() + "\nне был скачан."); return false; } return true; } @Override protected void performDone() throws Exception { if (Global.mainModule.getPass(PassCode.OpenCurrentProject).Do(project)&&target.visualiser_version<1134) Global.mainModule.getPass(PassCode.ApplyBugReportSettings).Do(); } }