diff --git a/dev/org.eclipse.codewind.ui/src/org/eclipse/codewind/ui/internal/actions/GetStartedAction.java b/dev/org.eclipse.codewind.ui/src/org/eclipse/codewind/ui/internal/actions/GetStartedAction.java index 4d8968645..98d12c285 100644 --- a/dev/org.eclipse.codewind.ui/src/org/eclipse/codewind/ui/internal/actions/GetStartedAction.java +++ b/dev/org.eclipse.codewind.ui/src/org/eclipse/codewind/ui/internal/actions/GetStartedAction.java @@ -11,9 +11,14 @@ package org.eclipse.codewind.ui.internal.actions; +import org.eclipse.codewind.core.internal.Logger; import org.eclipse.codewind.ui.internal.messages.Messages; import org.eclipse.codewind.ui.internal.views.ViewHelper; import org.eclipse.jface.action.Action; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.intro.IIntroManager; import org.eclipse.ui.intro.IIntroPart; @@ -33,12 +38,30 @@ public void run() { manager.closeIntro(introPart); } + // Open the J2EE perspective + try { + IWorkbench workbench = PlatformUI.getWorkbench(); + workbench.showPerspective("org.eclipse.jst.j2ee.J2EEPerspective", workbench.getActiveWorkbenchWindow()); + } catch (Exception e) { + Logger.logError("An error occurred trying to open the J2EE perspective", e); + } + + // Open the Codewind welcome page + IEditorPart part = OpenWelcomePageAction.openWelcomePage(); + // Open the Codewind Explorer view ViewHelper.openCodewindExplorerViewNoExec(); - - // Open the Codewind welcome page - // Make sure this done last so that it has focus - OpenWelcomePageAction.openWelcomePage(); + + // Make the welcome page the focus + if (part != null) { + IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); + if (window != null) { + IWorkbenchPage page = window.getActivePage(); + if (page != null) { + page.activate(part); + } + } + } } } diff --git a/dev/org.eclipse.codewind.ui/src/org/eclipse/codewind/ui/internal/actions/OpenWelcomePageAction.java b/dev/org.eclipse.codewind.ui/src/org/eclipse/codewind/ui/internal/actions/OpenWelcomePageAction.java index b2331b12e..7da2f8184 100644 --- a/dev/org.eclipse.codewind.ui/src/org/eclipse/codewind/ui/internal/actions/OpenWelcomePageAction.java +++ b/dev/org.eclipse.codewind.ui/src/org/eclipse/codewind/ui/internal/actions/OpenWelcomePageAction.java @@ -52,19 +52,23 @@ public void run() { openWelcomePage(); } - public static void openWelcomePage() { + public static IEditorPart openWelcomePage() { IWorkbenchWindow workbenchWindow = CodewindUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow(); IWorkbenchPage page = workbenchWindow.getActivePage(); + IEditorPart editorPart = null; try { WelcomePageEditorInput input = new WelcomePageEditorInput(); - IEditorPart editorPart = page.openEditor(input, WelcomePageEditorInput.EDITOR_ID); + editorPart = page.openEditor(input, WelcomePageEditorInput.EDITOR_ID); if (!(editorPart instanceof WelcomePageEditorPart)) { // This should not happen Logger.logError("Welcome page editor part is the wrong type: " + editorPart.getClass()); //$NON-NLS-1$ + editorPart = null; } } catch (Exception e) { Logger.logError("An error occurred opening the welcome page editor", e); //$NON-NLS-1$ } + + return editorPart; } }