package Visual_DVM_2021.Passes.All; import Common.Constants; import Common.Current; import Common.Global; import Common.UI.UI; import Common.Utils.Utils; import ProjectData.Project.db_project_info; import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.Pass_2021; import java.util.Vector; public class CreateTestsGroupFromSelectedVersions extends Pass_2021> { int group_id; int test_id; @Override protected boolean needsAnimation() { return true; } @Override public String getIconPath() { return "/icons/Publish.png"; } @Override public String getButtonText() { return ""; } @Override protected boolean canStart(Object... args) throws Exception { group_id = Constants.Nan; test_id = Constants.Nan; if (!Current.getAccount().CheckRegistered(Log)) return false; if (!Global.versions_multiselection) { Log.Writeln_("Нажмите правую клавишу мыши, и перейдите в режим выбора версий."); return false; } if (!Current.Check(Log, Current.Group)) { return false; } target = new Vector<>(); group_id = Current.getGroup().id; Current.getRoot().getSelectedVersions(target); if (target.size() == 0) { Log.Writeln_("Не отмечено ни одной версии."); return false; } if (Current.getProject().hasSubdirectories()) { Log.Writeln_("Запрещено добавлять тестовые проекты, содержащие подпапки!"); return false; } String cp_info = ""; if (Current.HasProject()) { for (db_project_info version : target) { if (version.Home.getAbsolutePath().equals(Current.getProject().Home.getAbsolutePath())) { cp_info = "Текущий проект будет закрыт."; break; } } } return UI.Question("В текущую группу " + Utils.Brackets(Current.getGroup().description) + "\nбудет добавлено " + target.size() + " тестов.\n" + cp_info + "\nПродолжить"); } @Override protected void performPreparation() throws Exception { passes.get(PassCode_2021.CloseCurrentProject).Do(); } @Override protected void showPreparation() throws Exception { UI.testingBar.ShowAutoCheckTesting(); } @Override protected void body() throws Exception { /* for (db_project_info vizTestProject : target) { //на случай если версия в текущем сеансе еще не открывалась. vizTestProject.Open(); vizTestProject.Close(); if (!passes.get(PassCode_2021.PublishTest).Do(vizTestProject, Current.getGroup().id)) break; } */ } @Override protected void performFinish() throws Exception { passes.get(PassCode_2021.SynchronizeTests).Do(); } @Override protected void FocusResult() { UI.getMainWindow().FocusTests(); } }