Adding class back. To be removed for M6
diff --git a/bundles/org.eclipse.ui/Eclipse UI/org/eclipse/ui/internal/OpenNewWindowAction.java b/bundles/org.eclipse.ui/Eclipse UI/org/eclipse/ui/internal/OpenNewWindowAction.java
new file mode 100644
index 0000000..93a2848
--- /dev/null
+++ b/bundles/org.eclipse.ui/Eclipse UI/org/eclipse/ui/internal/OpenNewWindowAction.java
@@ -0,0 +1,83 @@
+package org.eclipse.ui.internal;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved.
+ */
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.WorkbenchException;
+import org.eclipse.ui.help.WorkbenchHelp;
+
+/**
+ * Opens a new window. The initial perspective
+ * for the new window will be the same type as
+ * the active perspective in the window which this
+ * action is running in. The default input for the
+ * new window's page is the workspace root.
+ */
+public class OpenNewWindowAction extends Action {
+ private IWorkbenchWindow workbenchWindow;
+ private IAdaptable pageInput;
+
+ /**
+ * Creates a new <code>OpenNewWindowAction</code>. Sets
+ * the new window page's input to be the workspace root
+ * by default.
+ *
+ * @param window the workbench window containing this action
+ */
+ public OpenNewWindowAction(IWorkbenchWindow window) {
+ this(window, WorkbenchPlugin.getPluginWorkspace().getRoot());
+ }
+
+ /**
+ * Creates a new <code>OpenNewWindowAction</code>.
+ *
+ * @param window the workbench window containing this action
+ * @param input the input for the new window's page
+ */
+ public OpenNewWindowAction(IWorkbenchWindow window, IAdaptable input) {
+ super(WorkbenchMessages.getString("OpenNewWindowAction.text")); //$NON-NLS-1$
+ setToolTipText(WorkbenchMessages.getString("OpenNewWindowAction.toolTip")); //$NON-NLS-1$
+ workbenchWindow = window;
+ pageInput = input;
+ WorkbenchHelp.setHelp(this, new Object[] {IHelpContextIds.OPEN_NEW_WINDOW_ACTION});
+ }
+
+ /**
+ * Set the input to use for the new window's page.
+ */
+ public void setPageInput(IAdaptable input) {
+ pageInput = input;
+ }
+
+ /**
+ * The implementation of this <code>IAction</code> method
+ * opens a new window. The initial perspective
+ * for the new window will be the same type as
+ * the active perspective in the window which this
+ * action is running in.
+ */
+ public void run() {
+ try {
+ String perspId;
+
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ if (page != null && page.getPerspective() != null)
+ perspId = page.getPerspective().getId();
+ else
+ perspId = workbenchWindow.getWorkbench().getPerspectiveRegistry().getDefaultPerspective();
+
+ workbenchWindow.getWorkbench().openWorkbenchWindow(perspId, pageInput);
+ } catch (WorkbenchException e) {
+ MessageDialog.openError(
+ workbenchWindow.getShell(),
+ WorkbenchMessages.getString("OpenNewWindowAction.errorTitle"), //$NON-NLS-1$,
+ e.getMessage());
+ }
+ }
+}