Fixed expand/collapse menu
REOPENED - bug 395111: Option to expand the application model tree 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=395111
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java
index 8419240..e4991d9 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java
@@ -597,6 +597,7 @@
 	public String AreaIconDialogEditor_DialogMessage;
 
 	public String ModelEditor_Delete;
+	public String ModelEditor_ExpandSubtree;
 	public String ModelEditor_Form;
 	public String ModelEditor_XMI;
 	public String ModelEditor_ExternalizeStrings;
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties
index 9fb51c7..8ac1069 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties
@@ -598,6 +598,7 @@
 AreaIconDialogEditor_DialogMessage=Search for GIF, PNG and JPG icons in the current project
 
 ModelEditor_Delete=Remove
+ModelEditor_ExpandSubtree=Expand/Collapse (CTRL + Mouse)
 ModelEditor_Form=Form
 ModelEditor_XMI=XMI
 ModelEditor_ExternalizeStrings=Externalize Strings
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
index ba47957..4210e26 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
@@ -405,8 +405,8 @@
 				} while (m != null);
 
 				if (o instanceof MPart) {
-					System.err.println(o);
-					System.err.println(((EObject) o).eContainingFeature());
+					System.err.println(getClass().getName() + ".findAndHighLight: " + o);
+					System.err.println(getClass().getName() + ".findAndHighLight: " + ((EObject) o).eContainingFeature());
 				}
 
 				viewer.setSelection(new StructuredSelection(o));
@@ -458,7 +458,6 @@
 						e.printStackTrace();
 					}
 				}
-
 			}
 		});
 
@@ -781,6 +780,23 @@
 
 					});
 
+				if (addSeparator) {
+					manager.add(new Separator());
+				}
+
+				Action expandAction = new Action(messages.ModelEditor_ExpandSubtree) {
+					public void run() {
+						if (!s.isEmpty()) {
+							if (viewer.getExpandedState(s.getFirstElement())) {
+								viewer.collapseToLevel(s.getFirstElement(), TreeViewer.ALL_LEVELS);
+							} else {
+								viewer.expandToLevel(s.getFirstElement(), TreeViewer.ALL_LEVELS);
+							}
+						}
+					}
+				};
+
+				manager.add(expandAction);
 			}
 		});
 
@@ -925,8 +941,9 @@
 		treeArea.setBackgroundMode(SWT.INHERIT_DEFAULT);
 
 		// final FilteredTree viewParent = new FilteredTree(treeArea,
-		// SWT.H_SCROLL | SWT.V_SCROLL, new PatternFilter(), true);
-		// final TreeViewer viewer = ((FilteredTree) viewParent).getViewer();
+		// SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL, new
+		// PatternFilter(), true);
+		// final TreeViewer viewer = viewParent.getViewer();
 
 		final TreeViewer viewer = new TreeViewer(treeArea, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
 
@@ -1071,7 +1088,7 @@
 	}
 
 	private void registerDefaultEditors() {
-		System.err.println(resourcePool);
+		System.err.println(getClass().getName() + ".registerDefaultEditors: " + resourcePool);
 
 		registerEditor(ApplicationPackageImpl.Literals.APPLICATION, ContextInjectionFactory.make(ApplicationEditor.class, context));
 		registerEditor(ApplicationPackageImpl.Literals.ADDON, ContextInjectionFactory.make(AddonsEditor.class, context));