диалог для сравнения двм задач
This commit is contained in:
44
src/Visual_DVM_2021/Passes/All/CompareDVMRunTasks.java
Normal file
44
src/Visual_DVM_2021/Passes/All/CompareDVMRunTasks.java
Normal file
@@ -0,0 +1,44 @@
|
||||
package Visual_DVM_2021.Passes.All;
|
||||
import Common.Global;
|
||||
import Common.UI.UI;
|
||||
import Common.Utils.Utils;
|
||||
import TestingSystem.DVM.DVMTasks.DVMRunTask;
|
||||
import Visual_DVM_2021.Passes.Pass_2021;
|
||||
|
||||
import java.util.Vector;
|
||||
public class CompareDVMRunTasks extends Pass_2021<Vector<DVMRunTask>> {
|
||||
DVMRunTask master;
|
||||
DVMRunTask slave;
|
||||
@Override
|
||||
public String getIconPath() {
|
||||
return "/icons/Comparsion.png";
|
||||
}
|
||||
@Override
|
||||
public String getButtonText() {
|
||||
return "";
|
||||
}
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
master = null;
|
||||
slave = null;
|
||||
//--
|
||||
target = Global.testingServer.db.dvmRunTasks.getCheckedItems();
|
||||
if (target.size() != 2) {
|
||||
Log.Writeln_("Для сравнения требуется отметить две задачи.");
|
||||
return false;
|
||||
}
|
||||
if (UI.Question("Назначить задачу " + Utils.Brackets(target.get(0).getPK()) + " эталоном" +
|
||||
"\n(в случае отказа, будет назначена задача " + Utils.Brackets(target.get(1).getPK()) + ")")) {
|
||||
master = target.get(0);
|
||||
slave = target.get(1);
|
||||
} else {
|
||||
master = target.get(1);
|
||||
slave = target.get(0);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
protected void body() throws Exception {
|
||||
UI.getMainWindow().getTestingWindow().CompareDVMRunTasks(master, slave);
|
||||
}
|
||||
}
|
||||
84
src/Visual_DVM_2021/Passes/All/ReplaceTestsFromFiles.java
Normal file
84
src/Visual_DVM_2021/Passes/All/ReplaceTestsFromFiles.java
Normal file
@@ -0,0 +1,84 @@
|
||||
package Visual_DVM_2021.Passes.All;
|
||||
import Common.Constants;
|
||||
import Common.Current;
|
||||
import Common.UI.UI;
|
||||
import Common.Utils.Files.VFileChooser;
|
||||
import Common.Utils.Utils;
|
||||
import GlobalData.Settings.SettingName;
|
||||
import TestingSystem.Common.Group.Group;
|
||||
import TestingSystem.Common.Test.Test;
|
||||
import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
import Visual_DVM_2021.Passes.Pass_2021;
|
||||
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Vector;
|
||||
public class ReplaceTestsFromFiles extends TestingSystemPass<Vector<Test>> {
|
||||
Group group;
|
||||
Vector<Test> testsForReplace;
|
||||
VFileChooser fileChooser = new VFileChooser("Выберите файлы для замены тестов");
|
||||
@Override
|
||||
public String getIconPath() {
|
||||
return "/icons/Menu/Undo.png";
|
||||
}
|
||||
//-
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
if (!Current.Check(Log, Current.Group))
|
||||
return false;
|
||||
group = Current.getGroup();
|
||||
Utils.RestoreSelectedDirectory(fileChooser);
|
||||
Vector<File> files = fileChooser.ShowMultiDialog();
|
||||
LinkedHashMap<String, File> sortedFiles = new LinkedHashMap<>();
|
||||
//--
|
||||
if (files.isEmpty()) {
|
||||
Log.Writeln_("Не выбрано ни одного файла.");
|
||||
return false;
|
||||
}
|
||||
//--
|
||||
for (File file : files) {
|
||||
String name = Utils.getNameWithoutExtension(file.getName()).toLowerCase();
|
||||
if (!sortedFiles.containsKey(name)) {
|
||||
sortedFiles.put(name, file);
|
||||
}
|
||||
}
|
||||
//--
|
||||
File dir = fileChooser.getCurrentDirectory();
|
||||
Pass_2021.passes.get(PassCode_2021.UpdateSetting).Do(SettingName.ProjectsSearchDirectory, dir);
|
||||
//---------------
|
||||
if (dir.getName().equals(Constants.data)) {
|
||||
Log.Writeln_(Utils.Brackets(dir) + "\nявляется служебной папкой визуализатора!");
|
||||
return false;
|
||||
}
|
||||
if (!Utils.validateProjectFile(dir, Log)) {
|
||||
Log.Writeln_("Имя папки " + Utils.Brackets(dir.getName()) + " содержит запрещённые символы " + Constants.all_forbidden_characters_string + ", или кириллицу.");
|
||||
return false;
|
||||
}
|
||||
//--
|
||||
testsForReplace = new Vector<>();
|
||||
Vector<String> testForReplaceNames = new Vector<>();
|
||||
for (Test test : server.db.tests.Data.values()) {
|
||||
if ((test.group_id == group.id)&&sortedFiles.containsKey(test.description)) {
|
||||
testsForReplace.add(test);
|
||||
testForReplaceNames.add(test.description);
|
||||
}
|
||||
}
|
||||
if (testsForReplace.size()==0){
|
||||
Log.Writeln_("Не найдено тестов на замену.");
|
||||
return false;
|
||||
}
|
||||
//--
|
||||
if (UI.Question("Тесты "+String.join("\n", testForReplaceNames)+"\nбудут заменены. Продолжить")){
|
||||
|
||||
|
||||
return true;
|
||||
};
|
||||
return false;
|
||||
}
|
||||
//-
|
||||
@Override
|
||||
protected void ServerAction() throws Exception {
|
||||
UI.Info("+");
|
||||
}
|
||||
}
|
||||
@@ -317,12 +317,17 @@ public enum PassCode_2021 {
|
||||
CloneDVMPackage,
|
||||
CloneSapforPackage,
|
||||
SPF_RemoveDeadCode,
|
||||
ReplaceTestProject
|
||||
;
|
||||
ReplaceTestProject,
|
||||
ReplaceTestsFromFiles,
|
||||
CompareDVMRunTasks;
|
||||
public String getDescription() {
|
||||
switch (this) {
|
||||
case Undefined:
|
||||
return "?";
|
||||
case CompareDVMRunTasks:
|
||||
return "Сравнить тестовые задачи на запуск";
|
||||
case ReplaceTestsFromFiles:
|
||||
return "Заменить тесты группы на выбранные файлы";
|
||||
case ReplaceTestProject:
|
||||
return "Заменить тестовый проект на текущий";
|
||||
case SPF_RemoveDeadCode:
|
||||
|
||||
Reference in New Issue
Block a user