CAY-2439. Adding entities when filter is set

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

Branch: refs/heads/master
Commit: 525a9890a5eed76b0090b3c4a25d8383f86ba0f1
Parents: 30041fe
Author: Arseni Bulatski <[email protected]>
Authored: Sat Jul 7 16:26:58 2018 +0300
Committer: Arseni Bulatski <[email protected]>
Committed: Sat Jul 7 16:29:05 2018 +0300

----------------------------------------------------------------------
 RELEASE-NOTES.txt                               |  1 +
 .../cayenne/modeler/ProjectTreeModel.java       | 24 ++++++++++++++++----
 .../modeler/dialog/datadomain/FilterDialog.java |  3 ++-
 3 files changed, 23 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/525a9890/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index b7d8a7c..d63d0f0 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -36,6 +36,7 @@ CAY-2415 Transaction isolation and propagation support
 CAY-2416 Change TreeMap for HashMap to store data in Cayenne model classes
 CAY-2422 Modeler: Open driver setup window on driver load error
 CAY-2440 cdbimport: allow cross-schema relationships
+CAY-2439 Error deleting dbEntity when show only dbEntities filter is set
 
 Bug Fixes:
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/525a9890/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeModel.java
----------------------------------------------------------------------
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeModel.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeModel.java
index 4c0e898..88c65c4 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeModel.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeModel.java
@@ -20,7 +20,12 @@
 package org.apache.cayenne.modeler;
 
 import org.apache.cayenne.configuration.DataNodeDescriptor;
-import org.apache.cayenne.map.*;
+import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.Embeddable;
+import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.map.Procedure;
+import org.apache.cayenne.map.QueryDescriptor;
 import org.apache.cayenne.project.Project;
 
 import javax.swing.tree.DefaultMutableTreeNode;
@@ -70,7 +75,6 @@ public class ProjectTreeModel extends DefaultTreeModel {
 
                        for (int i = 0; i < len; i++) {
                                DefaultMutableTreeNode node = 
(DefaultMutableTreeNode) parent.getChildAt(i);
-
                                // remember to remove node
                                if (node == treeNode) {
                                        rm = i;
@@ -111,6 +115,18 @@ public class ProjectTreeModel extends DefaultTreeModel {
                }
        }
 
+       public void insertNodeInto(MutableTreeNode newChild,
+                                                          MutableTreeNode 
parent, int index){
+               parent.insert(newChild, index);
+
+               int[] newIndexs = new int[1];
+
+               if(filter.pass((DefaultMutableTreeNode) newChild)) {
+                       newIndexs[0] = getPositionInTreeView(parent, newChild);
+                       nodesWereInserted(parent, newIndexs);
+               }
+       }
+
        /**
         * Returns root node cast into DefaultMutableTreeNode.
         */
@@ -180,7 +196,7 @@ public class ProjectTreeModel extends DefaultTreeModel {
                return null;
        }
 
-       private int getCount(Object parent, Object item) {
+       private int getPositionInTreeView(Object parent, Object item) {
                int cnt = -1;
                for(int i = 0; i < super.getChildCount(parent); i++) {
                        DefaultMutableTreeNode child = (DefaultMutableTreeNode) 
super.getChild(parent, i);
@@ -204,7 +220,7 @@ public class ProjectTreeModel extends DefaultTreeModel {
                int[] childIndex = new int[1];
                Object[] removedArray = new Object[1];
 
-               childIndex[0] = getCount(parent, node);
+               childIndex[0] = getPositionInTreeView(parent, node);
                parent.remove(parent.getIndex(node));
                removedArray[0] = node;
                nodesWereRemoved(parent, childIndex, removedArray);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/525a9890/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/datadomain/FilterDialog.java
----------------------------------------------------------------------
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/datadomain/FilterDialog.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/datadomain/FilterDialog.java
index 5be12a6..535e41c 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/datadomain/FilterDialog.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/datadomain/FilterDialog.java
@@ -21,7 +21,8 @@ package org.apache.cayenne.modeler.dialog.datadomain;
 import org.apache.cayenne.modeler.ProjectController;
 import org.apache.cayenne.swing.BindingBuilder;
 
-import javax.swing.*;
+import javax.swing.JCheckBox;
+import javax.swing.JPopupMenu;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 

Reply via email to