Repository: cayenne
Updated Branches:
  refs/heads/master 01112fe60 -> 0b1f5af0f


CAY-2439


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

Branch: refs/heads/master
Commit: 30041fe958bbfc2a417732d22396081bd201621d
Parents: 22c2e78
Author: Arseni Bulatski <[email protected]>
Authored: Sat Jul 7 15:41:37 2018 +0300
Committer: Arseni Bulatski <[email protected]>
Committed: Sat Jul 7 15:41:37 2018 +0300

----------------------------------------------------------------------
 .../cayenne/modeler/ProjectTreeModel.java       | 48 +++++++++++++++-----
 .../modeler/dialog/datadomain/FilterDialog.java |  5 +-
 2 files changed, 38 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/30041fe9/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 c09b6c4..4c0e898 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
@@ -19,22 +19,16 @@
 
 package org.apache.cayenne.modeler;
 
-import java.util.Comparator;
-import java.util.Enumeration;
-import java.util.Map;
+import org.apache.cayenne.configuration.DataNodeDescriptor;
+import org.apache.cayenne.map.*;
+import org.apache.cayenne.project.Project;
 
 import javax.swing.tree.DefaultMutableTreeNode;
 import javax.swing.tree.DefaultTreeModel;
 import javax.swing.tree.MutableTreeNode;
-
-import org.apache.cayenne.configuration.DataNodeDescriptor;
-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 java.util.Comparator;
+import java.util.Enumeration;
+import java.util.Map;
 
 /**
  * ProjectTreeModel is a model of Cayenne project tree.
@@ -186,6 +180,36 @@ public class ProjectTreeModel extends DefaultTreeModel {
                return null;
        }
 
+       private int getCount(Object parent, Object item) {
+               int cnt = -1;
+               for(int i = 0; i < super.getChildCount(parent); i++) {
+                       DefaultMutableTreeNode child = (DefaultMutableTreeNode) 
super.getChild(parent, i);
+                       if(filter.pass(child)) {
+                               cnt++;
+                       }
+                       if(child == item){
+                               return cnt;
+                       }
+               }
+               return cnt;
+       }
+
+       public void removeNodeFromParent(MutableTreeNode node) {
+               MutableTreeNode parent = (MutableTreeNode)node.getParent();
+
+               if(parent == null) {
+                       throw new IllegalArgumentException("node does not have 
a parent.");
+               }
+
+               int[] childIndex = new int[1];
+               Object[] removedArray = new Object[1];
+
+               childIndex[0] = getCount(parent, node);
+               parent.remove(parent.getIndex(node));
+               removedArray[0] = node;
+               nodesWereRemoved(parent, childIndex, removedArray);
+       }
+
        class Filter {
                private Map<String, Boolean> filterMap;
                boolean pass = true;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/30041fe9/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 a34c72b..5be12a6 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,8 +21,7 @@ package org.apache.cayenne.modeler.dialog.datadomain;
 import org.apache.cayenne.modeler.ProjectController;
 import org.apache.cayenne.swing.BindingBuilder;
 
-import javax.swing.JCheckBox;
-import javax.swing.JPopupMenu;
+import javax.swing.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 
@@ -172,7 +171,7 @@ public class FilterDialog extends JPopupMenu {
                public void actionPerformed(ActionEvent e) {
                        filterController.getFilterMap().put(key, ((JCheckBox) 
e.getSource()).isSelected());
                        
filterController.getTreeModel().setFiltered(filterController.getFilterMap());
-            filterController.getTree().updateUI();
+                       filterController.getTree().updateUI();
             checkAllStates();
                }
        }

Reply via email to