[jboss-svn-commits] JBL Code SVN: r10915 - labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Apr 11 20:48:48 EDT 2007


Author: KrisVerlaenen
Date: 2007-04-11 20:48:48 -0400 (Wed, 11 Apr 2007)
New Revision: 10915

Modified:
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/AgendaView.java
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/AgendaViewContentProvider.java
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/DroolsDebugEventHandlerView.java
Log:
JBRULES-775: tree views should remember open/close toggle
 - Debug views now have a field that holds last expanded elements
   (to ignore null inputs)
 - Auto-expand level of Agenda-view diminished to 1
 - Agenda view now uses special agenda group nodes that are equal when their
   name is equal (even when their content isn't), to allow re-expanding agenda
   group nodes

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/AgendaView.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/AgendaView.java	2007-04-11 22:48:08 UTC (rev 10914)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/AgendaView.java	2007-04-12 00:48:48 UTC (rev 10915)
@@ -14,6 +14,6 @@
     }
     
     protected int getAutoExpandLevel() {
-    	return 2;
+    	return 1;
     }
 }

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/AgendaViewContentProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/AgendaViewContentProvider.java	2007-04-11 22:48:08 UTC (rev 10914)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/AgendaViewContentProvider.java	2007-04-12 00:48:48 UTC (rev 10915)
@@ -91,7 +91,7 @@
             	// because the debug view does not handle spaces well, all spaces
             	// in the agenda group name are replaced with '_'s.
             	name = replaceSpaces(name);
-	            result.add(new VariableWrapper(name + "[" + (active ? "focus" : "nofocus") + "]", 
+	            result.add(new MyVariableWrapper(name + "[" + (active ? "focus" : "nofocus") + "]", 
 	            		new ObjectWrapper((IJavaObject) agendaGroup,
 	        				(IJavaVariable[]) activationsResult.toArray(new IJavaVariable[activationsResult.size()]))));
 	        }
@@ -102,4 +102,28 @@
     private String replaceSpaces(String name) {
     	return name.replace(' ', '_');
     }
+
+    /**
+     * Special VariableWrapper that considers variables with the same name
+     * as equal.
+     */
+    private class MyVariableWrapper extends VariableWrapper {
+    	
+    	public MyVariableWrapper(String name, IJavaValue value) {
+    		super(name, value);
+    	}
+    	
+    	public boolean equals(Object obj) {
+            if (obj instanceof VariableWrapper) {
+                VariableWrapper var = (VariableWrapper) obj;
+                return var.getName().equals(getName());
+            }
+            return false;
+        }
+
+        public int hashCode() {
+            return getName().hashCode();
+        }
+    	
+    }
 }

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/DroolsDebugEventHandlerView.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/DroolsDebugEventHandlerView.java	2007-04-11 22:48:08 UTC (rev 10914)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/DroolsDebugEventHandlerView.java	2007-04-12 00:48:48 UTC (rev 10915)
@@ -44,6 +44,7 @@
 
     private VariablesViewModelPresentation modelPresentation;
     private boolean showLogical = true;
+    private Object[] oldExpandedElements = new Object[0];
 
     public void dispose() {
 		DebugContextManager.getDefault().removeDebugContextListener(this, getSite().getWorkbenchWindow());
@@ -109,10 +110,13 @@
 			return;
 		}
 
-		Object[] expandedElements = ((TreeViewer) getViewer()).getExpandedElements();
+		Object[] newExpandedElements = ((TreeViewer) getViewer()).getExpandedElements();
+		if (newExpandedElements.length != 0) {
+			oldExpandedElements = newExpandedElements;
+		}
 		getViewer().setInput(input);
 		if (input != null) {
-			((TreeViewer) getViewer()).setExpandedElements(expandedElements);
+			((TreeViewer) getViewer()).setExpandedElements(oldExpandedElements);
 			((TreeViewer) getViewer()).expandToLevel(getAutoExpandLevel());
 		}
     }




More information about the jboss-svn-commits mailing list