diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 7ca98411..ac911b01 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -7,9 +7,15 @@
+
+
+
+
+
-
+
+
@@ -31,8 +37,8 @@
-
+
diff --git a/src/SapforTestingSystem/Json/SapforVersion_json.java b/src/SapforTestingSystem/Json/SapforVersion_json.java
index a9373e57..5c2c3815 100644
--- a/src/SapforTestingSystem/Json/SapforVersion_json.java
+++ b/src/SapforTestingSystem/Json/SapforVersion_json.java
@@ -4,6 +4,9 @@ import Common.Global;
import Common.Utils.Utils;
import ProjectData.Files.FileType;
import ProjectData.Files.ProjectFile;
+import ProjectData.LanguageName;
+import ProjectData.Project.db_project_info;
+import SapforTestingSystem.SapforTask.SapforTask;
import com.google.gson.annotations.Expose;
import org.apache.commons.io.FileUtils;
@@ -27,6 +30,9 @@ public class SapforVersion_json implements Serializable {
public ProjectFile out = null;
public ProjectFile err = null;
//--
+ public SapforTask task = null; //родная задача. Нужна для построения дерева версий.
+ public db_project_info project = null;
+ //--
public SapforVersion_json(String version_in, String description_in) {
version = version_in;
description = description_in;
@@ -56,10 +62,10 @@ public class SapforVersion_json implements Serializable {
}
}
}
- parse_out = new ProjectFile(Paths.get(Home.getAbsolutePath(), Constants.data, Constants.parse_out_file).toFile());
- parse_err = new ProjectFile(Paths.get(Home.getAbsolutePath(), Constants.data, Constants.parse_err_file).toFile());
- out = new ProjectFile(Paths.get(Home.getAbsolutePath(), Constants.data, Constants.out_file).toFile());
- err = new ProjectFile(Paths.get(Home.getAbsolutePath(), Constants.data, Constants.err_file).toFile());
+ parse_out = new ProjectFile(Paths.get(Home.getAbsolutePath(), Constants.data, Constants.parse_out_file).toFile());
+ parse_err = new ProjectFile(Paths.get(Home.getAbsolutePath(), Constants.data, Constants.parse_err_file).toFile());
+ out = new ProjectFile(Paths.get(Home.getAbsolutePath(), Constants.data, Constants.out_file).toFile());
+ err = new ProjectFile(Paths.get(Home.getAbsolutePath(), Constants.data, Constants.err_file).toFile());
}
public boolean isMatch(SapforVersion_json version_json) {
if (!description.equals(version_json.description)) {
@@ -99,4 +105,17 @@ public class SapforVersion_json implements Serializable {
}
return true;
}
+ public void createProject(File rootHome) throws Exception {
+ project = null;
+ String version_ = Global.isWindows ? Utils.toW(version) : Utils.toU(version);
+ project = new db_project_info();
+ project.Home = Paths.get(rootHome.getAbsolutePath(), version_).toFile();
+ project.name = project.Home.getName();
+ project.description = description;
+ project.languageName = LanguageName.fortran;
+ project.creationDate = Utils.getDateNumber();
+ //---
+ FileUtils.copyDirectory(Home, project.Home);
+ project.CreateVisualiserData();
+ }
}
diff --git a/src/SapforTestingSystem/SapforTask/SapforTask.java b/src/SapforTestingSystem/SapforTask/SapforTask.java
index 456df997..b629455a 100644
--- a/src/SapforTestingSystem/SapforTask/SapforTask.java
+++ b/src/SapforTestingSystem/SapforTask/SapforTask.java
@@ -68,6 +68,7 @@ public class SapforTask extends DBObject {
//--
for (SapforVersion_json version_json : versions) {
version_json.init(configurationRoot);
+ version_json.task = this;
//-
child = new VersionSummary(version_json);
if (parent == null) {
@@ -82,6 +83,7 @@ public class SapforTask extends DBObject {
if (parent != null) {
for (SapforVersion_json version_json : variants) {
version_json.init(configurationRoot);
+ version_json.task = this;
parent.add(new VersionSummary(version_json));
}
}
@@ -159,7 +161,7 @@ public class SapforTask extends DBObject {
System.out.println("сравнение версий.");
//--
for (String name1 : versions1.keySet()) {
- System.out.println("version name="+name1);
+ System.out.println("version name=" + name1);
SapforVersion_json version1 = versions1.get(name1);
SapforVersion_json version2 = versions2.get(name1);
//---
diff --git a/src/SapforTestingSystem/SapforTasksPackage/UI/SapforTasksPackageTree.java b/src/SapforTestingSystem/SapforTasksPackage/UI/SapforTasksPackageTree.java
index 62da20ac..4c41d7e0 100644
--- a/src/SapforTestingSystem/SapforTasksPackage/UI/SapforTasksPackageTree.java
+++ b/src/SapforTestingSystem/SapforTasksPackage/UI/SapforTasksPackageTree.java
@@ -23,9 +23,6 @@ public class SapforTasksPackageTree extends DataTree {
return 1;
}
@Override
- public void LeftMouseAction2() {
- }
- @Override
public TreeRenderers getRenderer() {
return TreeRenderers.RendererSapforVersion;
}
diff --git a/src/Visual_DVM_2021/Passes/All/OpenSapforEtalonVersion.java b/src/Visual_DVM_2021/Passes/All/OpenSapforEtalonVersion.java
new file mode 100644
index 00000000..7962b37e
--- /dev/null
+++ b/src/Visual_DVM_2021/Passes/All/OpenSapforEtalonVersion.java
@@ -0,0 +1,9 @@
+package Visual_DVM_2021.Passes.All;
+import Common.Current;
+import Visual_DVM_2021.Passes.OpenSapforVersionPass;
+public class OpenSapforEtalonVersion extends OpenSapforVersionPass {
+ @Override
+ public Current getCurrentName() {
+ return Current.SapforEtalonVersion;
+ }
+}
diff --git a/src/Visual_DVM_2021/Passes/All/OpenSapforVersion.java b/src/Visual_DVM_2021/Passes/All/OpenSapforVersion.java
new file mode 100644
index 00000000..531a1683
--- /dev/null
+++ b/src/Visual_DVM_2021/Passes/All/OpenSapforVersion.java
@@ -0,0 +1,9 @@
+package Visual_DVM_2021.Passes.All;
+import Common.Current;
+import Visual_DVM_2021.Passes.OpenSapforVersionPass;
+public class OpenSapforVersion extends OpenSapforVersionPass {
+ @Override
+ public Current getCurrentName() {
+ return Current.SapforVersion;
+ }
+}
diff --git a/src/Visual_DVM_2021/Passes/OpenSapforVersionPass.java b/src/Visual_DVM_2021/Passes/OpenSapforVersionPass.java
new file mode 100644
index 00000000..443c9ce9
--- /dev/null
+++ b/src/Visual_DVM_2021/Passes/OpenSapforVersionPass.java
@@ -0,0 +1,52 @@
+package Visual_DVM_2021.Passes;
+import Common.Current;
+import Common.Global;
+import Common.Utils.Utils;
+import GlobalData.Settings.SettingName;
+import SapforTestingSystem.Json.SapforVersion_json;
+import SapforTestingSystem.SapforTask.SapforTask;
+
+import java.io.File;
+import java.nio.file.Paths;
+public abstract class OpenSapforVersionPass extends Pass_2021 {
+ @Override
+ public String getIconPath() {
+ return "/icons/OpenProject.png";
+ }
+ @Override
+ public String getButtonText() {
+ return "";
+ }
+ public abstract Current getCurrentName();
+ @Override
+ protected boolean needsAnimation() {
+ return true;
+ }
+ @Override
+ protected boolean canStart(Object... args) throws Exception {
+ if (Current.Check(Log, getCurrentName())) {
+ target = (SapforVersion_json) Current.get(getCurrentName());
+ return true;
+ }
+ return false;
+ }
+ @Override
+ protected void body() throws Exception {
+ SapforTask task = target.task;
+ ShowMessage1("Построение дерева версий и создание баз данных...");
+ File rootHome = Paths.get(Global.getSetting(SettingName.Workspace).Value,
+ Utils.getDateName(task.test_description)).toFile();
+ for (SapforVersion_json version_json : task.versions) {
+ ShowMessage2(version_json.version);
+ version_json.createProject(rootHome);
+ }
+ for (SapforVersion_json version_json : task.variants) {
+ ShowMessage2(version_json.version);
+ version_json.createProject(rootHome);
+ }
+ }
+ @Override
+ protected void performDone() throws Exception {
+ passes.get(PassCode_2021.OpenCurrentProject).Do(target.project.Home);
+ }
+}
diff --git a/src/Visual_DVM_2021/Passes/PassCode_2021.java b/src/Visual_DVM_2021/Passes/PassCode_2021.java
index 3fbc1c8e..1c6ee57f 100644
--- a/src/Visual_DVM_2021/Passes/PassCode_2021.java
+++ b/src/Visual_DVM_2021/Passes/PassCode_2021.java
@@ -306,12 +306,18 @@ public enum PassCode_2021 {
//->
DownloadSapforTasksPackage,
ShowSapforTaskPackage, //временный проход на демонстрацию дерева файлов и версий пакета.
+ OpenSapforEtalonVersion,
+ OpenSapforVersion,
//->
TestPass;
public String getDescription() {
switch (this) {
case Undefined:
return "?";
+ case OpenSapforEtalonVersion:
+ return "Открыть текущую эталонную версию SAPFOR как проект";
+ case OpenSapforVersion:
+ return "Открыть текущую версию SAPFOR как проект";
case UnpackSapforTasksPackage:
return "Распаковка пакета задач SAPFOR";
case ShowSapforTaskPackage:
diff --git a/src/Visual_DVM_2021/UI/Main/SapforVersionsComparisonForm.java b/src/Visual_DVM_2021/UI/Main/SapforVersionsComparisonForm.java
index 896bf894..6dcf7637 100644
--- a/src/Visual_DVM_2021/UI/Main/SapforVersionsComparisonForm.java
+++ b/src/Visual_DVM_2021/UI/Main/SapforVersionsComparisonForm.java
@@ -7,6 +7,8 @@ import Common.Utils.Utils;
import GlobalData.Settings.SettingName;
import ProjectData.Files.ProjectFile;
import SapforTestingSystem.Json.SapforVersion_json;
+import Visual_DVM_2021.Passes.PassCode_2021;
+import Visual_DVM_2021.Passes.Pass_2021;
import javax.swing.*;
import java.util.Arrays;
@@ -31,14 +33,17 @@ public class SapforVersionsComparisonForm extends ComparisonForm();
- tools.add(cbFile, 3);
+ tools.add(Pass_2021.passes.get(
+ (current.equals(Current.SapforEtalonVersion) ? PassCode_2021.OpenSapforEtalonVersion : PassCode_2021.OpenSapforVersion
+ )).createButton(), 3);
+ tools.add(cbFile, 4);
//--
cbFile.addActionListener(e -> {
SelectFile(((cbFile.getSelectedItem() instanceof ProjectFile) ? ((ProjectFile) cbFile.getSelectedItem()) : null));
});
//--
buttons = new LinkedHashMap<>();
- int i = 4;
+ int i = 5;
for (SapforVersionComparisonState state : SapforVersionComparisonState.values()) {
MenuBarButton button = new MenuBarButton();
button.setIcon("/icons/" + state.toString() + ".png");