package Visual_DVM_2021.Passes.All; import Common.CurrentAnchestor; import Common_old.Current; import _VisualDVM.Global; import Common_old.UI.UI; import GlobalData.Compiler.CompilerType; import GlobalData.Machine.MachineType; import GlobalData.User.UserState; import TestingSystem.Common.TestingServer; import TestingSystem.DVM.DVMConfiguration.DVMConfiguration; import TestingSystem.DVM.DVMPackage.DVMPackage; import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.Server.PublishServerObject; import java.util.Vector; public class StartSelectedDVMConfigurations extends PublishServerObject { public StartSelectedDVMConfigurations() { super(Global.testingServer, DVMPackage.class); } @Override public String getIconPath() { return "/icons/Start.png"; } //-- @Override protected boolean canStart(Object... args) throws Exception { if (!Current.getAccount().CheckRegistered(Log)) { return false; } if (!CurrentAnchestor.Check(Log, Current.Machine, Current.User, Current.Compiler)) return false; if (!Current.getMachine().type.equals(MachineType.Server)) { Log.Writeln_("Тестирование поддерживается только на одиночном удалённом сервере."); return false; } if (!Current.getUser().state.equals(UserState.ready_to_work)) { Log.Writeln_("Пользователь не готов к работе. Выполните инициализацию пользователя!"); return false; } if (!Current.getCompiler().type.equals(CompilerType.dvm)) { Log.Writeln_("Тестирование поддерживается только для DVM компиляторов."); return false; } if (!Current.getCompiler().versionLoaded) passes.get(PassCode_2021.ShowCompilerVersion).Do(Current.getCompiler(), false); //----- Vector configurations = Global.testingServer.db.dvm_configurations.getCheckedOrCurrent(); if (configurations.isEmpty()) { Log.Writeln_("Не отмечено ни одной конфигурации, или отсутствует текущая конфигурация."); return false; } //--- target= new DVMPackage( Current.getAccount(), Current.getMachine(), Current.getUser(), Current.getCompiler(), configurations, Global.properties.EmailOnTestingProgress ? 1 : 0 ); //---- if (target.tasksCount == 0) { Log.Writeln_("Задач не найдено."); return false; } return UI.Question("Будет запущено " + target.tasksCount + " задач. Продолжить"); } }