Bug 277836 [Compatibility] Setup Compatibility so you can run tests
Create a toolbar so the ConsoleView can come up
diff --git a/bundles/org.eclipse.e4.ui.workbench.fragment/src/org/eclipse/e4/extensions/LegacyViewFactory.java b/bundles/org.eclipse.e4.ui.workbench.fragment/src/org/eclipse/e4/extensions/LegacyViewFactory.java
index 669561c..a0a693a 100644
--- a/bundles/org.eclipse.e4.ui.workbench.fragment/src/org/eclipse/e4/extensions/LegacyViewFactory.java
+++ b/bundles/org.eclipse.e4.ui.workbench.fragment/src/org/eclipse/e4/extensions/LegacyViewFactory.java
@@ -14,6 +14,7 @@
 import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.e4.workbench.ui.internal.UISchedulerStrategy;
 import org.eclipse.e4.workbench.ui.renderers.swt.SWTPartFactory;
+import org.eclipse.jface.action.ToolBarManager;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
@@ -187,6 +188,9 @@
 			ViewSite site = new ViewSite(ref, impl, page);
 			site.setConfigurationElement(viewContribution);
 			impl.init(site, null);
+			final ToolBarManager tbm = (ToolBarManager) site.getActionBars()
+					.getToolBarManager();
+			/* final ToolBar tb = */tbm.createControl(parent);
 
 			impl.createPartControl(parent);
 
diff --git a/bundles/org.eclipse.e4.ui.workbench.fragment/src/org/eclipse/ui/internal/WorkbenchPage.java b/bundles/org.eclipse.e4.ui.workbench.fragment/src/org/eclipse/ui/internal/WorkbenchPage.java
index bbe9e10..10642bb 100644
--- a/bundles/org.eclipse.e4.ui.workbench.fragment/src/org/eclipse/ui/internal/WorkbenchPage.java
+++ b/bundles/org.eclipse.e4.ui.workbench.fragment/src/org/eclipse/ui/internal/WorkbenchPage.java
@@ -960,7 +960,7 @@
 	}
 
 	public IEditorPart[] getDirtyEditors() {
-		return null;
+		return new IEditorPart[0];
 	}
 
 	public ISaveablePart[] getDirtyParts() {
@@ -1551,16 +1551,41 @@
 		MPerspective<?> curPersp = (MPerspective<?>) e4Window.getActiveChild();
 		MPart ea = ModeledPageLayout.findPart(curPersp, ModeledPageLayout
 				.internalGetEditorArea());
-		MContributedPart<MPart<?>> editorPart = ApplicationFactory.eINSTANCE
-				.createMContributedPart();
-		editorPart.setId(editorID);
-		editorPart.setName(input.getName());
-		ea.getChildren().add(editorPart);
-		editorPart.getContext().set(IEditorInput.class.getName(), input);
+		MContributedPart<MPart<?>> editorPart = findEditor(ea, editorID, input);
+		if (editorPart == null) {
+			editorPart = ApplicationFactory.eINSTANCE.createMContributedPart();
+			editorPart.setId(editorID);
+			editorPart.setName(input.getName());
+			ea.getChildren().add(editorPart);
+			editorPart.getContext().set(IEditorInput.class.getName(), input);
+		}
 		ea.setActiveChild(editorPart);
 		return (IEditorPart) editorPart.getObject();
 	}
 
+	/**
+	 * @param ea
+	 * @param editorID
+	 * @param input2
+	 * @return
+	 */
+	private MContributedPart<MPart<?>> findEditor(MPart ea, String editorID,
+			IEditorInput input) {
+		final Iterator i = ea.getChildren().iterator();
+		while (i.hasNext()) {
+			MContributedPart<MPart<?>> part = (MContributedPart<MPart<?>>) i
+					.next();
+			if (editorID.equals(part.getId())) {
+				IEditorInput e = (IEditorInput) part.getContext().get(
+						IEditorInput.class.getName());
+				if (input.equals(e)) {
+					return part;
+				}
+			}
+		}
+		return null;
+	}
+
 	/*
 	 * Added to fix Bug 178235 [EditorMgmt] DBCS 3.3 - Cannot open file with
 	 * external program. Opens a new editor using the given input and
diff --git a/examples/org.eclipse.e4.ui.examples.legacy.workbench/src/org/eclipse/e4/ui/examples/legacy/workbench/TestPerspectiveFactory.java b/examples/org.eclipse.e4.ui.examples.legacy.workbench/src/org/eclipse/e4/ui/examples/legacy/workbench/TestPerspectiveFactory.java
index bb570b0..633c335 100755
--- a/examples/org.eclipse.e4.ui.examples.legacy.workbench/src/org/eclipse/e4/ui/examples/legacy/workbench/TestPerspectiveFactory.java
+++ b/examples/org.eclipse.e4.ui.examples.legacy.workbench/src/org/eclipse/e4/ui/examples/legacy/workbench/TestPerspectiveFactory.java
@@ -17,14 +17,14 @@
 		folder.addPlaceholder("org.eclipse.ui.navigator.ProjectExplorer"); //$NON-NLS-1$
 
 		IFolderLayout outputfolder= layout.createFolder("bottom", IPageLayout.BOTTOM, (float)0.75, editorArea); //$NON-NLS-1$
-//		outputfolder.addView("org.eclipse.pde.runtime.LogView"); //$NON-NLS-1$
 		outputfolder.addView(IPageLayout.ID_PROBLEM_VIEW);
 		outputfolder.addView("org.eclipse.jdt.ui.JavadocView"); //$NON-NLS-1$
 		outputfolder.addView("org.eclipse.team.ccvs.ui.RepositoriesView"); //$NON-NLS-1$
 		outputfolder.addView("org.eclipse.debug.ui.DebugView"); //$NON-NLS-1$
 //		outputfolder.addView("org.eclipse.jdt.ui.SourceView"); //$NON-NLS-1$
 //		outputfolder.addPlaceholder("org.eclipse.search.ui.views.SearchView"); //$NON-NLS-1$
-//		outputfolder.addPlaceholder("org.eclipse.ui.console.ConsoleView"); //$NON-NLS-1$
+		outputfolder.addPlaceholder("org.eclipse.ui.console.ConsoleView"); //$NON-NLS-1$
+		outputfolder.addView("org.eclipse.pde.runtime.LogView"); //$NON-NLS-1$
 //		outputfolder.addPlaceholder(IPageLayout.ID_BOOKMARKS);
 		outputfolder.addPlaceholder("org.eclipse.ui.views.ProgressView"); //$NON-NLS-1$
 //