package Visual_DVM_2021.Passes.All; import Common.Utils.Utils_; import Common.Visual.UI_; import _VisualDVM.Global; import _VisualDVM.Visual.UI; import _VisualDVM.Repository.Server.ServerCode; import _VisualDVM.Repository.Server.ServerExchangeUnit_2021; import _VisualDVM.TestingSystem.Common.Group.Group; import _VisualDVM.TestingSystem.Common.Test.Test; import Visual_DVM_2021.Passes.PassCode; import Common.Passes.Pass; import Visual_DVM_2021.Passes.Server.TestingSystemPass; import java.io.File; import java.util.Vector; public abstract class PublishTests extends TestingSystemPass> { protected Group group; //---- @Override public String getButtonText() { return ""; } @Override public String getIconPath() { return "/icons/AddFile.png"; } @Override protected boolean needsAnimation() { return true; } @Override protected void ServerAction() throws Exception { Command(new ServerExchangeUnit_2021(ServerCode.PublishObjects, null, target)); } @Override protected void performFinish() throws Exception { super.performFinish(); Global.mainModule.getPass(PassCode.SynchronizeTests).Do(); } @Override protected void FocusResult() { UI.getMainWindow().FocusTests(); } //-- protected abstract PassCode getCreateTestCode(); protected String getNoFilesMessage(){return "";}; //-- @Override protected boolean canStart(Object... args) throws Exception { Vector files = (Vector) args[0]; group = (Group) args[1]; target = new Vector<>(); //--------------------- if (files.isEmpty()) { Log.Writeln_("Не найдено " + getNoFilesMessage() + " для формирования тестов."); return false; } //--- Pass createTestPass = Global.mainModule.getPass(getCreateTestCode()); //--- for (File file : files) { if (createTestPass.Do(file, group)) target.add((Test) createTestPass.target); } //--- if (target.isEmpty()) { Log.Writeln_("Не удалось создать ни одного теста."); return false; } //--- return UI_.Question("В группу " + Utils_.Brackets(group.description) + "\nбудет добавлено " + target.size() + " тестов.\nПродолжить"); } }