package Visual_DVM_2021.Passes; import Common.Current_; import Common.Passes.Pass; import Common.Utils.Utils_; import _VisualDVM.Current; import _VisualDVM.GlobalData.GlobalDatabase; import _VisualDVM.GlobalData.Settings.SettingName; import _VisualDVM.TestingSystem.SAPFOR.Json.SapforVersion_json; import _VisualDVM.TestingSystem.SAPFOR.SapforTask.SapforTask; import java.io.File; import java.nio.file.Paths; public abstract class OpenSapforVersionPass extends Pass { @Override public String getIconPath() { return "/icons/OpenProject.png"; } @Override public String getButtonText() { return ""; } public abstract Current getCurrentName(); @Override protected boolean needsAnimation() { return true; } @Override protected boolean canStart(Object... args) throws Exception { if (Current_.Check(Log, getCurrentName())) { target = (SapforVersion_json) Current_.get(getCurrentName()); return true; } return false; } @Override protected void body() throws Exception { SapforTask task = target.task; ShowMessage1("Построение дерева версий и создание баз данных..."); File rootHome = Paths.get(((GlobalDatabase) Utils_.db).settings.get(SettingName.Workspace).Value, Utils_.getDateName(task.test_description)).toFile(); for (SapforVersion_json version_json : task.versions) { ShowMessage2(version_json.version); version_json.createProject(rootHome); } for (SapforVersion_json version_json : task.variants) { ShowMessage2(version_json.version); version_json.createProject(rootHome); } //-второй проход это запись логов и сообщений. у вариантов их быть не может. ShowMessage1("Прочтение журналов и сообщений..."); //без версий нельзя, иначе лишние файлы захватит. for (SapforVersion_json version_json : task.versions) { ShowMessage2(version_json.version); version_json.ReadMessages(); } } @Override protected void performDone() throws Exception { passes.get(PassCode.OpenCurrentProject).Do(target.project.Home); } }