You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/11/05 13:29:03 UTC

[06/10] cayenne git commit: Fixed ruin tree on expand after tree refresh.

Fixed ruin tree on expand after tree refresh.


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/ea120536
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/ea120536
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/ea120536

Branch: refs/heads/master
Commit: ea120536fccc0e84fdc3f97a84d7a47b7cbadcde
Parents: aa62c10
Author: kkomyak <co...@gmail.com>
Authored: Mon Nov 5 15:52:59 2018 +0300
Committer: kkomyak <co...@gmail.com>
Committed: Mon Nov 5 15:52:59 2018 +0300

----------------------------------------------------------------------
 .../modeler/editor/dbimport/DbImportTree.java   |  7 +++--
 .../dbimport/ReverseEngineeringTreePanel.java   | 31 ++++++++++++++++----
 2 files changed, 30 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea120536/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
index 109049f..68656a4 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/DbImportTree.java
@@ -52,6 +52,7 @@ public class DbImportTree extends JTree {
 
     public DbImportTree(TreeNode node) {
         super(node);
+        createTreeExpandListener();
     }
 
     public void translateReverseEngineeringToTree(ReverseEngineering reverseEngineering, boolean isTransferable) {
@@ -69,7 +70,6 @@ public class DbImportTree extends JTree {
         printParams(reverseEngineering.getExcludeColumns(), root);
         printParams(reverseEngineering.getIncludeProcedures(), root);
         printParams(reverseEngineering.getExcludeProcedures(), root);
-        createTreeExpandListener();
         model.reload();
     }
 
@@ -89,11 +89,14 @@ public class DbImportTree extends JTree {
                 if (table == null) {
                     return;
                 }
-                table.removeAllChildren();
+                if (table.getChildCount() != 0) {
+                    table.removeAllChildren();
+                }
                 newTable.getIncludeColumns().forEach(column ->
                         table.add(new DbImportTreeNode(column)));
                 table.setLoaded(true);
                 model.reload(table);
+                System.out.println(table.getChildCount());
             });
         });
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea120536/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
index 5f4e081..877bd0f 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbimport/ReverseEngineeringTreePanel.java
@@ -127,12 +127,31 @@ class ReverseEngineeringTreePanel extends JScrollPane {
                         popupMenu.show(e.getComponent(), e.getX(), e.getY());
                     }
                 } else if (reverseEngineeringTree.getSelectionPath() != null) {
-                    DbImportTreeNode findedNode = dbSchemaTree.findNode(
-                            dbSchemaTree.getRootNode(), reverseEngineeringTree.getSelectedNode(), 0
-                    );
-                    if (findedNode != null) {
-                        dbSchemaTree.expandPath(new TreePath(((DbImportTreeNode) findedNode.getParent()).getPath()));
-                        scrollToNode(dbSchemaTree, findedNode);
+                    DbImportTreeNode selectedNode = reverseEngineeringTree.getSelectedNode();
+
+                    if( selectedNode.isExcludeColumn() || selectedNode.isIncludeColumn()) {
+                        DbImportTreeNode expandNode = (DbImportTreeNode) selectedNode.getParent();
+
+                        DbImportTreeNode parentPath = dbSchemaTree.findNode(
+                                dbSchemaTree.getRootNode(), expandNode, 0
+                        );
+
+                        if (parentPath != null) {
+                            dbSchemaTree.expandPath(new TreePath((parentPath).getPath()));
+                            scrollToNode(dbSchemaTree, parentPath);
+                        }
+
+                    } else {
+
+                        DbImportTreeNode findNode = dbSchemaTree.findNode(
+                                dbSchemaTree.getRootNode(), selectedNode, 0
+                        );
+
+
+                        if (findNode != null) {
+                            dbSchemaTree.expandPath(new TreePath(((DbImportTreeNode) findNode.getParent()).getPath()));
+                            scrollToNode(dbSchemaTree, findNode);
+                        }
                     }
                 }
             }