package SapforTestingSystem.SapforTasksPackage.UI; import Common.Current; import Common.UI.Trees.DataTree; import Common.UI.Trees.TreeRenderers; import Common.UI.UI; import SapforTestingSystem.Json.SapforVersion_json; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreePath; import java.util.Vector; public class SapforTasksPackageTree extends DataTree { Current current; SapforTasksPackageTree slave_tree = null; public void setSlaveTree(SapforTasksPackageTree slave_tree_in) { slave_tree = slave_tree_in; } public SapforTasksPackageTree(DefaultMutableTreeNode root_in, Current current_in) { super(root_in); current = current_in; } @Override protected int getStartLine() { return 1; } @Override public void LeftMouseAction2() { } @Override public TreeRenderers getRenderer() { return TreeRenderers.RendererSapforVersion; } @Override public Current getCurrent() { return current; } public void selectSamePath_r(TreePath example, int index, DefaultMutableTreeNode node, Vector res) { if (index < example.getPathCount()) { DefaultMutableTreeNode exampleNode = (DefaultMutableTreeNode) example.getPathComponent(index); // System.out.println("index = "+index); // System.out.println("example node="+exampleNode.toString()); // System.out.println("node-"+node.toString()); // System.out.println(""); if (exampleNode.toString().equals(node.toString())) { res.add(node); // System.out.println("+"); for (int i = 0; i < node.getChildCount(); ++i) selectSamePath_r(example, index+1, (DefaultMutableTreeNode) node.getChildAt(i), res); } } } public void selectSamePath(TreePath path_in) { // int i = path_in.getPath().length; // path_in.getPathComponent(i).toString(); // System.out.println("e = " + path_in); Vector pathNodes = new Vector<>(); selectSamePath_r(path_in, 0, root, pathNodes); // System.out.println("+"); TreePath path = new TreePath(pathNodes.toArray()); // System.out.println(path); setSelectionPath(path); // System.out.println("++"); } @Override public void SelectionAction(TreePath e) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.getLastPathComponent(); Object o = node.getUserObject(); //--- if (slave_tree != null) { slave_tree.selectSamePath(e); } //--- if (o instanceof SapforVersion_json) { SapforVersion_json version = (SapforVersion_json) o; Current.set(current, version); if (current.equals(Current.SapforEtalonVersion)) UI.getMainWindow().getTestingWindow().ShowCurrentSapforPackageVersionEtalon(); else UI.getMainWindow().getTestingWindow().ShowCurrentSapforPackageVersion(); //-- } } }