diff --git a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfMasterDetailBlock.java b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfMasterDetailBlock.java
index 31d9692..ed4a654 100644
--- a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfMasterDetailBlock.java
+++ b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfMasterDetailBlock.java
@@ -10,7 +10,7 @@
  *     Sebastien Moran <SMoran@sierrawireless.com> - bug 308802
  *     Jacques Lescot <JLescot@sierrawireless.com> - bug 314677
  *
- * $Id: EmfMasterDetailBlock.java,v 1.23 2010/04/12 08:51:10 bcabe Exp $
+ * $Id: EmfMasterDetailBlock.java,v 1.24 2010/06/16 16:25:46 bcabe Exp $
  */
 package org.eclipse.pde.emfforms.editor;
 
@@ -26,6 +26,7 @@
 import org.eclipse.jface.layout.GridLayoutFactory;
 import org.eclipse.jface.viewers.*;
 import org.eclipse.pde.emfforms.editor.actions.RemoveAction;
+import org.eclipse.pde.emfforms.internal.Activator;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.dnd.DND;
 import org.eclipse.swt.dnd.Transfer;
@@ -68,6 +69,13 @@
 	 */
 	public static final int USE_CUSTOM_PUSH_BUTTONS = 1 << 2;
 
+	/**
+	 * Style constant to indicate whether generic "Collapse All" and "Expand All" buttons should be displayed
+	 * in the toolbar or not. Note that this style is only relevant when the USE_GENERIC_TOOLBAR_BUTTONS style
+	 * is applied too, otherwise it has no effect. A separator is also added before adding those buttons.
+	 */
+	public static final int USE_EXPAND_COLLAPSE_BUTTONS = 1 << 3;
+
 	protected int buttonOption = USE_GENERIC_TOOLBAR_BUTTONS;
 
 	private String title;
@@ -138,6 +146,27 @@
 			if (removeAction != null) {
 				toolBarManager.add(removeAction);
 			}
+
+			if (showExpandCollapseButtons()) {
+				toolBarManager.add(new Separator());
+
+				toolBarManager.add(new Action("Expand All", Activator.getImageDescriptor("icons/obj16/expand.gif")) { //$NON-NLS-1$ //$NON-NLS-2$
+							@Override
+							public void run() {
+								treeViewer.getTree().setRedraw(false);
+								treeViewer.expandAll();
+								treeViewer.getTree().setRedraw(true);
+							}
+						});
+				toolBarManager.add(new Action("Collapse All", Activator.getImageDescriptor("icons/obj16/collapse.gif")) { //$NON-NLS-1$ //$NON-NLS-2$
+							@Override
+							public void run() {
+								treeViewer.getTree().setRedraw(false);
+								treeViewer.collapseAll();
+								treeViewer.getTree().setRedraw(true);
+							}
+						});
+			}
 			toolBarManager.update(true);
 			section.setTextClient(toolBarManager.getControl());
 		}
@@ -241,6 +270,10 @@
 		return (buttonOption & USE_GENERIC_TOOLBAR_BUTTONS) > 0;
 	}
 
+	private boolean showExpandCollapseButtons() {
+		return showToolbarButtons() && (buttonOption & USE_EXPAND_COLLAPSE_BUTTONS) > 0;
+	}
+
 	protected Action createCustomToolbarAddAction() {
 		// Subclass may override this method
 		return null;
