диалог для сравнения двм задач

This commit is contained in:
2024-03-04 20:29:05 +03:00
parent 3c43984fe4
commit e8f2e50257
11 changed files with 180 additions and 20 deletions

12
.idea/workspace.xml generated
View File

@@ -7,13 +7,17 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment=""> <list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Group/UI/AddGroupMenu.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Group/UI/EditGroupMenu.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Test/UI/AddTestMenu.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/CompareDVMRunTasks.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ReplaceTestsFromFiles.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/Group/GroupsMenuBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Group/GroupsMenuBar.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/Group/GroupsMenuBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Group/GroupsMenuBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/Test/TestsMenuBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/Test/TestsMenuBar.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackagesBar.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/DVM/DVMPackage/DVMPackagesBar.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/PassCode_2021.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/TestingForm.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/TestingForm.form" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Interface/TestingWindow.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Interface/TestingWindow.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/ComparisonForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/ComparisonForm.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/TestingForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/TestingForm.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -78,6 +78,7 @@ public enum ServerCode {
DownloadDVMPackages, DownloadDVMPackages,
DownloadSapforPackage, DownloadSapforPackage,
InstallServerSapfor, InstallServerSapfor,
ReplaceTestCode ReplaceTestCode,
ReplaceTestsCodes,
; ;
} }

View File

@@ -5,6 +5,7 @@ import Common.UI.Menus_2023.MenuBarButton;
import Common.Utils.Utils; import Common.Utils.Utils;
import TestingSystem.Common.Group.GroupsDBTable; import TestingSystem.Common.Group.GroupsDBTable;
import TestingSystem.Common.Group.UI.AddGroupMenu; import TestingSystem.Common.Group.UI.AddGroupMenu;
import TestingSystem.Common.Group.UI.EditGroupMenu;
import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.PassCode_2021;
import javax.swing.*; import javax.swing.*;
@@ -14,8 +15,8 @@ public class GroupsMenuBar extends DataMenuBar {
PassCode_2021.SynchronizeTests, PassCode_2021.SynchronizeTests,
PassCode_2021.ConvertCorrectnessTests PassCode_2021.ConvertCorrectnessTests
); );
addMenus(new AddGroupMenu()); addMenus(new AddGroupMenu(), new EditGroupMenu());
addPasses(PassCode_2021.EditGroup, PassCode_2021.DeleteGroup); addPasses(PassCode_2021.DeleteGroup);
add(new JSeparator()); add(new JSeparator());
add(new MenuBarButton() { add(new MenuBarButton() {
{ {

View File

@@ -0,0 +1,11 @@
package TestingSystem.Common.Group.UI;
import Common.UI.Menus_2023.VisualiserMenu;
import Visual_DVM_2021.Passes.PassCode_2021;
import Visual_DVM_2021.Passes.Pass_2021;
public class EditGroupMenu extends VisualiserMenu {
public EditGroupMenu() {
super("Редактирование группы", "/icons/Edit.png", false);
add(Pass_2021.passes.get(PassCode_2021.EditGroup).createMenuItem());
// add(Pass_2021.passes.get(PassCode_2021.ReplaceTestsFromFiles).createMenuItem());
}
}

View File

@@ -1,11 +1,9 @@
package TestingSystem.DVM.DVMTasks; package TestingSystem.DVM.DVMTasks;
import Common.Database.DataSet;
import Common.UI.Menus_2023.DataMenuBar; import Common.UI.Menus_2023.DataMenuBar;
import Visual_DVM_2021.Passes.PassCode_2021; import Visual_DVM_2021.Passes.PassCode_2021;
import javax.swing.*;
public class DVMRunTasksBar extends DataMenuBar { public class DVMRunTasksBar extends DataMenuBar {
public DVMRunTasksBar() { public DVMRunTasksBar() {
super("задачи", PassCode_2021.DownloadTaskTest); super("задачи",
PassCode_2021.CompareDVMRunTasks, PassCode_2021.DownloadTaskTest);
} }
} }

View 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);
}
}

View 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("+");
}
}

View File

@@ -317,12 +317,17 @@ public enum PassCode_2021 {
CloneDVMPackage, CloneDVMPackage,
CloneSapforPackage, CloneSapforPackage,
SPF_RemoveDeadCode, SPF_RemoveDeadCode,
ReplaceTestProject ReplaceTestProject,
; ReplaceTestsFromFiles,
CompareDVMRunTasks;
public String getDescription() { public String getDescription() {
switch (this) { switch (this) {
case Undefined: case Undefined:
return "?"; return "?";
case CompareDVMRunTasks:
return "Сравнить тестовые задачи на запуск";
case ReplaceTestsFromFiles:
return "Заменить тесты группы на выбранные файлы";
case ReplaceTestProject: case ReplaceTestProject:
return "Заменить тестовый проект на текущий"; return "Заменить тестовый проект на текущий";
case SPF_RemoveDeadCode: case SPF_RemoveDeadCode:

View File

@@ -1,4 +1,5 @@
package Visual_DVM_2021.UI.Interface; package Visual_DVM_2021.UI.Interface;
import TestingSystem.DVM.DVMTasks.DVMRunTask;
public interface TestingWindow extends VisualizerForm { public interface TestingWindow extends VisualizerForm {
void ShowAll(); void ShowAll();
//- //-
@@ -21,4 +22,5 @@ public interface TestingWindow extends VisualizerForm {
void ShowNoServerSapfor(); void ShowNoServerSapfor();
void ShowCurrentDVMPackage(); void ShowCurrentDVMPackage();
void ShowNoCurrentDVMPackage(); void ShowNoCurrentDVMPackage();
void CompareDVMRunTasks(DVMRunTask master, DVMRunTask slave);
} }

View File

@@ -82,6 +82,12 @@ public abstract class ComparisonForm<T> {
} else } else
UI.Info(log.toString()); UI.Info(log.toString());
} }
public void ApplyObject(DBObject object_in){
RemoveObject();
object = (T)object_in;
applyObject();
showObject();
}
private void ShowCurrentDiff() { private void ShowCurrentDiff() {
Body.gotoLine_(colors.get(current_diff_line).getKey()); Body.gotoLine_(colors.get(current_diff_line).getKey());
} }

View File

@@ -5,6 +5,7 @@ import Common.UI.TextField.StyledTextField;
import Common.UI.UI; import Common.UI.UI;
import GlobalData.Compiler.CompilerType; import GlobalData.Compiler.CompilerType;
import TestingSystem.Common.TestingServer; import TestingSystem.Common.TestingServer;
import TestingSystem.DVM.DVMTasks.DVMRunTask;
import Visual_DVM_2021.UI.Interface.FormWithSplitters; import Visual_DVM_2021.UI.Interface.FormWithSplitters;
import Visual_DVM_2021.UI.Interface.TestingWindow; import Visual_DVM_2021.UI.Interface.TestingWindow;
@@ -31,7 +32,6 @@ public class TestingForm implements FormWithSplitters, TestingWindow {
private JPanel dvmComparisonTab; private JPanel dvmComparisonTab;
private JPanel sapforPackagesTab; private JPanel sapforPackagesTab;
private JPanel sapforComparisonTab; private JPanel sapforComparisonTab;
private JPanel dvmRunTasksPanel; private JPanel dvmRunTasksPanel;
private JToolBar testsResultsTools; private JToolBar testsResultsTools;
private JButton bChangeKernels; private JButton bChangeKernels;
@@ -47,7 +47,6 @@ public class TestingForm implements FormWithSplitters, TestingWindow {
private JPanel sapforScenariosPanel; private JPanel sapforScenariosPanel;
private JPanel serverSapforsPanel; private JPanel serverSapforsPanel;
private JPanel sapforPackagesPanel; private JPanel sapforPackagesPanel;
private JPanel testsRunTasksBackground; private JPanel testsRunTasksBackground;
private JCheckBox filterFinished; private JCheckBox filterFinished;
private JButton bTest; private JButton bTest;
@@ -87,7 +86,6 @@ public class TestingForm implements FormWithSplitters, TestingWindow {
Global.testingServer.db.configurations.mountUI(configurationsPanel); Global.testingServer.db.configurations.mountUI(configurationsPanel);
Global.testingServer.db.dvmPackages.mountUI(dvmPackagesPanel); Global.testingServer.db.dvmPackages.mountUI(dvmPackagesPanel);
Global.testingServer.db.dvmRunTasks.mountUI(dvmRunTasksPanel); Global.testingServer.db.dvmRunTasks.mountUI(dvmRunTasksPanel);
Global.testingServer.db.sapforConfigurations.mountUI(sapforConfigurationsPanel); Global.testingServer.db.sapforConfigurations.mountUI(sapforConfigurationsPanel);
Global.testingServer.db.sapforConfigurationCommands.mountUI(sapforConfigurationCommandsPanel); Global.testingServer.db.sapforConfigurationCommands.mountUI(sapforConfigurationCommandsPanel);
Global.testingServer.db.serverSapfors.mountUI(serverSapforsPanel); Global.testingServer.db.serverSapfors.mountUI(serverSapforsPanel);
@@ -166,8 +164,8 @@ public class TestingForm implements FormWithSplitters, TestingWindow {
} }
@Override @Override
public void ShowCurrentCompiler() { public void ShowCurrentCompiler() {
String title = (Current.HasCompiler() && Current.getCompiler().type.equals(CompilerType.dvm))? String title = (Current.HasCompiler() && Current.getCompiler().type.equals(CompilerType.dvm)) ?
"DVM система: " + Current.getCompiler().description: "DVM система: ?"; "DVM система: " + Current.getCompiler().description : "DVM система: ?";
testingTabs.setTitleAt(0, title); testingTabs.setTitleAt(0, title);
} }
@Override @Override
@@ -184,4 +182,10 @@ public class TestingForm implements FormWithSplitters, TestingWindow {
@Override @Override
public void ShowNoCurrentDVMPackage() { public void ShowNoCurrentDVMPackage() {
} }
@Override
public void CompareDVMRunTasks(DVMRunTask master, DVMRunTask slave) {
dvmTestingRunMaster.ApplyObject(master);
dvmTestingRunSlave.ApplyObject(slave);
testingTabs.setSelectedIndex(1);
}
} }