diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 336fb394..f1656c99 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -9,9 +9,7 @@
-
-
diff --git a/src/SapforTestingSystem/Json/SapforTasksResults_json.java b/src/SapforTestingSystem/Json/SapforTasksResults_json.java
index 4a9e0d9a..6bda1ad5 100644
--- a/src/SapforTestingSystem/Json/SapforTasksResults_json.java
+++ b/src/SapforTestingSystem/Json/SapforTasksResults_json.java
@@ -3,8 +3,12 @@ import Common.Utils.Utils;
import GlobalData.Tasks.TaskState;
import SapforTestingSystem.SapforTask.MatchState;
import SapforTestingSystem.SapforTask.SapforTask;
+import SapforTestingSystem.SapforTasksPackage.SapforTasksPackage;
+import SapforTestingSystem.SapforTasksPackage.UI.*;
import com.google.gson.annotations.Expose;
+import javax.swing.tree.DefaultMutableTreeNode;
+import java.io.File;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.List;
@@ -21,6 +25,99 @@ public class SapforTasksResults_json {
public LinkedHashMap>>> sortedTasks = new LinkedHashMap<>();
//-- задачи, отсортированные для сравнения.
public LinkedHashMap>>>> comparisonSortedTasks = new LinkedHashMap<>();
+ //----
+ public PackageSummary root = null;
+ //--
+ public DefaultMutableTreeNode comparison_root = null;
+ //---
+ public void buildTree(SapforTasksPackage package_in) {
+ root = new PackageSummary();
+ //---
+ for (TaskState state : sortedTasks.keySet()) {
+ //--
+ StateSummary stateSummary = new StateSummary(state);
+ //--
+ LinkedHashMap>> tasksByConfigurations = sortedTasks.get(state);
+ for (String configuration_id : tasksByConfigurations.keySet()) {
+ //--
+ DefaultMutableTreeNode configurationNode = null;
+ //--
+ LinkedHashMap> groups_tasks = tasksByConfigurations.get(configuration_id);
+ for (String group : groups_tasks.keySet()) {
+ //--
+ GroupSummary groupSummary = new GroupSummary(group);
+ //--
+ for (SapforTask task : groups_tasks.get(group)) {
+ //--
+ stateSummary.count++;
+ root.count++;
+ //--
+ if (configurationNode == null) {
+ configurationNode = new ConfigurationSummary(configuration_id, task);
+ }
+ //--
+ groupSummary.add(task.getVersionsTree(new File(package_in.getLocalWorkspace(), configuration_id)));
+ }
+ if (configurationNode != null)
+ configurationNode.add(groupSummary);
+ }
+ stateSummary.add(configurationNode);
+ }
+ if (stateSummary.count > 0) {
+ root.add(stateSummary);
+ }
+ }
+ }
+ public void buildComparisonTree(SapforTasksPackage package_in) {
+ comparison_root = new PackageSummary();
+ for (MatchState match_state : comparisonSortedTasks.keySet()) {
+ //--
+ MatchesSummary matchesSummary = new MatchesSummary(match_state);
+ //---
+ LinkedHashMap>>> task_states = comparisonSortedTasks.get(match_state);
+ //---
+ for (TaskState state : task_states.keySet()) {
+ //--
+ StateSummary stateSummary = new StateSummary(state);
+ //--
+ LinkedHashMap>> tasksByConfigurations = task_states.get(state);
+ for (String configuration_id : tasksByConfigurations.keySet()) {
+ //--
+ DefaultMutableTreeNode configurationNode = null;
+ //--
+ LinkedHashMap> groups_tasks = tasksByConfigurations.get(configuration_id);
+ for (String group : groups_tasks.keySet()) {
+ //--
+ GroupSummary groupSummary = new GroupSummary(group);
+ //--
+ for (SapforTask task : groups_tasks.get(group)) {
+ //--
+ stateSummary.count++;
+ matchesSummary.count++;
+ root.count++;
+ //--
+ if (configurationNode == null) {
+ configurationNode = new ConfigurationSummary(configuration_id, task);
+ }
+ //--
+ groupSummary.add(task.getVersionsTree(new File(package_in.getLocalWorkspace(), configuration_id)));
+ }
+ if (configurationNode != null)
+ configurationNode.add(groupSummary);
+ }
+ stateSummary.add(configurationNode);
+ }
+ if (stateSummary.count > 0) {
+ matchesSummary.add(stateSummary);
+ }
+ }
+ //---
+ if (matchesSummary.count > 0) {
+ root.add(matchesSummary);
+ }
+ }
+ }
+ //----
public void SortTasks() {
sortedTasks.clear();
//--
@@ -159,43 +256,4 @@ public class SapforTasksResults_json {
res = String.join("\n", summary_lines);
return res;
}
-}
-//---
- /*
- public LinkedHashMap>>>> sortTasksForComparisonTree() {
- LinkedHashMap>>>> res = new LinkedHashMap<>();
- for (MatchState matchState : MatchState.values()) {
- LinkedHashMap>>> state_tasks = new LinkedHashMap<>();
- res.put(matchState, state_tasks);
- //--
- for (TaskState state : TaskState.values()) {
- LinkedHashMap>> configuration_tasks = new LinkedHashMap<>();
- state_tasks.put(state, configuration_tasks);
- //--
- for (SapforTask task : tasks) {
- if (task.match.equals(matchState) && task.state.equals(state)) {
- LinkedHashMap> groups_tasks = null;
- if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
- groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
- } else {
- groups_tasks = new LinkedHashMap<>();
- configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
- }
- Vector tasks = null;
- if (groups_tasks.containsKey(task.group_description)) {
- tasks = groups_tasks.get(task.group_description);
- } else {
- tasks = new Vector<>();
- groups_tasks.put(task.group_description, tasks);
- }
- tasks.add(task);
- }
- }
- }
- //--
- }
- //--
- //рассортировать задачи по конфигурациям.
- return res;
- }
- */
+}
\ No newline at end of file
diff --git a/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackage.java b/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackage.java
index 07538677..731fdb92 100644
--- a/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackage.java
+++ b/src/SapforTestingSystem/SapforTasksPackage/SapforTasksPackage.java
@@ -4,22 +4,14 @@ import Common.Database.DBObject;
import Common.Database.nDBObject;
import Common.Global;
import Common.Utils.Utils;
-import GlobalData.Tasks.TaskState;
import SapforTestingSystem.Json.SapforTasksResults_json;
import SapforTestingSystem.SapforTask.SapforTask;
-import SapforTestingSystem.SapforTasksPackage.UI.ConfigurationSummary;
-import SapforTestingSystem.SapforTasksPackage.UI.GroupSummary;
-import SapforTestingSystem.SapforTasksPackage.UI.PackageSummary;
-import SapforTestingSystem.SapforTasksPackage.UI.StateSummary;
import TestingSystem.TasksPackage.TasksPackageState;
import com.sun.org.glassfish.gmbal.Description;
-import javax.swing.tree.DefaultMutableTreeNode;
import java.io.File;
import java.nio.file.Paths;
import java.util.Comparator;
-import java.util.LinkedHashMap;
-import java.util.Vector;
public class SapforTasksPackage extends nDBObject {
@Description("DEFAULT ''")
public String testsNames = "";//имена тестов через ; для отображения
@@ -66,11 +58,6 @@ public class SapforTasksPackage extends nDBObject {
}
//---
@Description("IGNORE")
- public PackageSummary root = null;
- @Description("IGNORE")
- public DefaultMutableTreeNode comparison_root = null;
- //---
- @Description("IGNORE")
public SapforTasksResults_json results = null;
///---
public File getArchive() {
@@ -85,7 +72,7 @@ public class SapforTasksPackage extends nDBObject {
public boolean isLoaded() {
return getLoadedSign().exists();
}
- public void getLocalResults() {
+ public void readResults() {
File json_file = new File(getLocalWorkspace(), Constants.results_json);
results = null;
try {
@@ -98,108 +85,10 @@ public class SapforTasksPackage extends nDBObject {
//---
results.SortTasks(); //по состояниям конфигурациям и группам
//---
+ results.buildTree(this);
+ //---
} catch (Exception ex) {
ex.printStackTrace();
}
}
- public void buildTree() {
- //--
- if (results == null) {
- getLocalResults();
- }
- //--
- root = new PackageSummary();
- //---
- for (TaskState state : results.sortedTasks.keySet()) {
- //--
- StateSummary stateSummary = new StateSummary(state);
- //--
- LinkedHashMap>> tasksByConfigurations = results.sortedTasks.get(state);
- for (String configuration_id : tasksByConfigurations.keySet()) {
- //--
- DefaultMutableTreeNode configurationNode = null;
- //--
- LinkedHashMap> groups_tasks = tasksByConfigurations.get(configuration_id);
- for (String group : groups_tasks.keySet()) {
- //--
- GroupSummary groupSummary = new GroupSummary(group);
- //--
- for (SapforTask task : groups_tasks.get(group)) {
- //--
- stateSummary.count++;
- root.count++;
- //--
- if (configurationNode == null) {
- configurationNode = new ConfigurationSummary(configuration_id, task);
- }
- //--
- groupSummary.add(task.getVersionsTree(new File(getLocalWorkspace(), configuration_id)));
- }
- if (configurationNode != null)
- configurationNode.add(groupSummary);
- }
- stateSummary.add(configurationNode);
- }
- if (stateSummary.count > 0) {
- root.add(stateSummary);
- }
- }
- }
- /*
- public static DefaultMutableTreeNode buildTree_old(SapforTasksPackage package_in) {
- PackageSummary root = new PackageSummary();
-
- SapforTasksResults_json results_json = getLocalResults(package_in);
- LinkedHashMap>>>> sortedTasks =
- results_json.sortTasksForComparisonTree();
- //--
- for (MatchState match_state : sortedTasks.keySet()) {
- //--
- MatchesSummary matchesSummary = new MatchesSummary(match_state);
- //---
- LinkedHashMap>>> task_states = sortedTasks.get(match_state);
- //---
- for (TaskState state : task_states.keySet()) {
- //--
- StateSummary stateSummary = new StateSummary(state);
- //--
- LinkedHashMap>> tasksByConfigurations = task_states.get(state);
- for (String configuration_id : tasksByConfigurations.keySet()) {
- //--
- DefaultMutableTreeNode configurationNode = null;
- //--
- LinkedHashMap> groups_tasks = tasksByConfigurations.get(configuration_id);
- for (String group : groups_tasks.keySet()) {
- //--
- GroupSummary groupSummary = new GroupSummary(group);
- //--
- for (SapforTask task : groups_tasks.get(group)) {
- //--
- stateSummary.count++;
- matchesSummary.count++;
- root.count++;
- //--
- if (configurationNode == null) {
- configurationNode = new ConfigurationSummary(configuration_id, task);
- }
- //--
- groupSummary.add(task.getVersionsTree(new File(getLocalWorkspace(package_in), configuration_id)));
- }
- if (configurationNode != null)
- configurationNode.add(groupSummary);
- }
- stateSummary.add(configurationNode);
- }
- if (stateSummary.count > 0) {
- matchesSummary.add(stateSummary);
- }
- }
- //---
- if (matchesSummary.count > 0) {
- root.add(matchesSummary);
- }
- }
- return root;
- }
- */
}
diff --git a/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java b/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java
index 384162eb..dbdc8187 100644
--- a/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java
+++ b/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java
@@ -74,15 +74,17 @@ public class SapforPackagesComparisonForm {
}
//---
public void showCommonTree() {
- if (object.root == null) {
- object.buildTree();
- }
+ //---
treePanel.add(new JScrollPane(
- new SapforTasksPackageTree(object.root,
+ new SapforTasksPackageTree(object.results.root,
isMaster() ? Current.SapforEtalonVersion : Current.SapforVersion
)));
}
public void showComparisonTree() {
+ treePanel.add(new JScrollPane(
+ new SapforTasksPackageTree(object.results.comparison_root,
+ isMaster() ? Current.SapforEtalonVersion : Current.SapforVersion
+ )));
}
//---
public void showNoTree() {
@@ -91,6 +93,10 @@ public class SapforPackagesComparisonForm {
public void showObject() {
lObjectName.setText(object.getPK().toString() + (isMaster() ? "(эталон)" : ""));
lObjectName.setToolTipText(object.getPK().toString());
+ //--
+ if (object.results == null)
+ object.readResults();
+ //--
showCommonTree();
}
protected String getText() {
@@ -203,6 +209,12 @@ public class SapforPackagesComparisonForm {
//--
task1.checkMatch(task2);
}
+ //--
+ package1.results.SortTasksForComparison();
+ package2.results.SortTasksForComparison();
+ //-
+ package1.results.buildComparisonTree(package1);
+ package2.results.buildTree(package2);
}
@Override
protected boolean validate() {