package _VisualDVM.Passes.All; import Common.Utils.Utils_; import Common.Visual.UI; import _VisualDVM.Current; import _VisualDVM.Global; import _VisualDVM.Passes.PassCode; import _VisualDVM.Passes.Server.TestingServerPass; import _VisualDVM.Repository.Server.ServerCode; import _VisualDVM.TestingSystem.Common.Test.Test; import java.io.File; public class DownloadTest extends TestingServerPass { File testArchive; @Override public String getIconPath() { return "/icons/DownloadBugReport.png"; } @Override protected boolean canStart(Object... args) throws Exception { testArchive= null; if (Global.mainModule.getAccount().CheckRegistered(Log) && Global.testingServer.db.tests.getUI().CheckCurrent(Log) ) { target = Global.testingServer.db.tests.getUI().getCurrent(); return SendRequest(ServerCode.DownloadTest, String.valueOf(target.id)); } return false; } @Override protected void performPreparation() throws Exception { Global.mainModule.getPass(PassCode.CloseCurrentProject).Do(); Global.mainModule.set(Current.Root, null); //чтобы гарантированно не существовало корня. Utils_.forceDeleteWithCheck(target.getHomePath()); } @Override protected void body() throws Exception { testArchive= new File(Global.TempDirectory, Utils_.getDateName(String.valueOf(target.id))); request.server_response.Unpack(testArchive); } @Override protected boolean validate() { return testArchive.exists(); } @Override protected void performDone() throws Exception { super.performDone(); if (Global.mainModule.getPass(PassCode.UnzipFolderPass).Do( testArchive.getAbsolutePath(), Global.visualiser.getDownloadsDirectory().getAbsolutePath(), false )) if (UI.Question("Тестовый проект успешно загружен под именем\n" + Utils_.Brackets(target.getHomePath().getName()) + "\nОткрыть его")) Global.mainModule.getPass(PassCode.OpenCurrentProject).Do(target.getHomePath()); } }