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;
