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 @@ + + + + + - + + 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");