Files
VisualSapfor/src/Visual_DVM_2021/Passes/All/CreateTestsGroupFromSelectedVersions.java

139 lines
5.2 KiB
Java
Raw Normal View History

package Visual_DVM_2021.Passes.All;
import Common.Constants;
2023-09-17 22:13:42 +03:00
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;
2023-09-17 22:13:42 +03:00
import java.util.Vector;
public class CreateTestsGroupFromSelectedVersions extends Pass_2021<Vector<db_project_info>> {
int group_id;
int test_id;
2023-09-17 22:13:42 +03:00
@Override
protected boolean needsAnimation() {
return true;
}
@Override
public String getIconPath() {
return "/icons/Publish.png";
2023-09-17 22:13:42 +03:00
}
@Override
public String getButtonText() {
return "";
}
@Override
protected boolean canStart(Object... args) throws Exception {
group_id = Constants.Nan;
test_id = Constants.Nan;
2023-09-17 22:13:42 +03:00
if (!Current.getAccount().CheckRegistered(Log))
return false;
if (!Global.versions_multiselection) {
Log.Writeln_("Нажмите правую клавишу мыши, и перейдите в режим выбора версий.");
return false;
}
if (!Current.Check(Log, Current.Group)) {
return false;
}
2023-09-17 22:13:42 +03:00
target = new Vector<>();
group_id = Current.getGroup().id;
2023-09-17 22:13:42 +03:00
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Текущий проект будет закрыт." +
2023-09-17 22:13:42 +03:00
"\родолжить");
}
@Override
protected void performPreparation() throws Exception {
passes.get(PassCode_2021.CloseCurrentProject).Do();
2023-09-17 22:13:42 +03:00
}
@Override
protected void showPreparation() throws Exception {
UI.testingBar.ShowAutoCheckTesting();
2023-09-17 22:13:42 +03:00
}
@Override
protected void body() throws Exception {
for (db_project_info vizTestProject : target) {
//на случай если версия в текущем сеансе еще не открывалась.
vizTestProject.Open();
vizTestProject.Close();
ShowMessage1("Публикация теста " + vizTestProject.getTitle());
PublishTest pass = new PublishTest() {
@Override
protected boolean needsAnimation() {
return false;
}
@Override
public boolean setProject() {
project = vizTestProject;
return true;
}
@Override
public boolean fillObjectFields() throws Exception {
if (setProject() && project.checkSubdirectories(Log)) {
target.description = project.getLocalName() + " " + project.description;
target.group_id = group_id;
switch (project.languageName) {
case fortran:
target.dim = Current.getSapfor().getTextMaxDim(null, project);
return true;
case c:
target.dim = Utils.getCProjectMaxDim(project);
return true;
default:
return false;
2023-11-16 21:03:25 +03:00
}
2023-09-17 22:13:42 +03:00
}
return false;
}
@Override
public String getDescription() {
return "Добавление версии " + vizTestProject.name;
}
@Override
protected void performDone() throws Exception {
test_id = (int) pk;
}
@Override
protected void showDone() throws Exception {
}
};
if (!pass.Do()) return;
2023-09-17 22:13:42 +03:00
}
}
@Override
protected void performFinish() throws Exception {
super.performDone();
passes.get(PassCode_2021.SynchronizeTests).Do();
}
@Override
protected void showDone() throws Exception {
super.showDone();
Global.testingServer.db.groups.ui_.Show(group_id);
Global.testingServer.db.tests.ui_.Show(test_id);
}
@Override
2023-09-17 22:13:42 +03:00
protected void FocusResult() {
UI.getMainWindow().FocusTests();
2023-09-17 22:13:42 +03:00
}
}