| //------------------------------------------------------------------------------ |
| // Copyright (c) 2005, 2007 IBM Corporation and others. |
| // All rights reserved. This program and the accompanying materials |
| // are made available under the terms of the Eclipse Public License v1.0 |
| // which accompanies this distribution, and is available at |
| // http://www.eclipse.org/legal/epl-v10.html |
| // |
| // Contributors: |
| // IBM Corporation - initial implementation |
| //------------------------------------------------------------------------------ |
| package org.eclipse.epf.authoring.ui; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| import org.eclipse.epf.authoring.ui.views.ConfigurationView; |
| import org.eclipse.epf.authoring.ui.views.LibraryView; |
| import org.eclipse.epf.authoring.ui.wizards.NewConfigurationWizard; |
| import org.eclipse.epf.authoring.ui.wizards.NewLibraryWizard; |
| import org.eclipse.epf.authoring.ui.wizards.NewPluginWizard; |
| import org.eclipse.epf.ui.wizards.WizardCategories; |
| import org.eclipse.search.ui.NewSearchUI; |
| import org.eclipse.ui.IFolderLayout; |
| import org.eclipse.ui.IPageLayout; |
| import org.eclipse.ui.IPerspectiveDescriptor; |
| import org.eclipse.ui.IPerspectiveFactory; |
| import org.eclipse.ui.IPerspectiveRegistry; |
| import org.eclipse.ui.IPlaceholderFolderLayout; |
| import org.eclipse.ui.IWorkbenchPage; |
| import org.eclipse.ui.PlatformUI; |
| import org.eclipse.ui.console.IConsoleConstants; |
| import org.eclipse.ui.progress.IProgressConstants; |
| import org.eclipse.ui.wizards.IWizardCategory; |
| import org.eclipse.ui.wizards.IWizardDescriptor; |
| import org.eclipse.ui.wizards.IWizardRegistry; |
| |
| /** |
| * The Method Authoring perspective. |
| * |
| * @author Kelvin Low |
| * @author Phong Nguyen Le |
| * @since 1.0 |
| */ |
| public class AuthoringPerspective implements IPerspectiveFactory { |
| |
| /** |
| * The Authoring perspective ID. |
| */ |
| public static final String PERSPECTIVE_ID = AuthoringPerspective.class |
| .getName(); |
| |
| private static List<String> newWizardShortcuts = new ArrayList<String>(); |
| |
| static { |
| newWizardShortcuts.add(NewLibraryWizard.WIZARD_ID); |
| newWizardShortcuts.add(NewPluginWizard.WIZARD_ID); |
| newWizardShortcuts.add(NewConfigurationWizard.WIZARD_ID); |
| } |
| |
| /** |
| * Opens this perspective. |
| * |
| * @return the previously active perspective |
| */ |
| public static IPerspectiveDescriptor open() { |
| IWorkbenchPage activePage = PlatformUI.getWorkbench() |
| .getActiveWorkbenchWindow().getActivePage(); |
| if (activePage != null) { |
| IPerspectiveRegistry registry = PlatformUI.getWorkbench() |
| .getPerspectiveRegistry(); |
| IPerspectiveDescriptor oldPerspective = activePage.getPerspective(); |
| if (!oldPerspective.getId().equals(PERSPECTIVE_ID)) { |
| IPerspectiveDescriptor perspective = registry |
| .findPerspectiveWithId(PERSPECTIVE_ID); |
| activePage.setPerspective(perspective); |
| } |
| return oldPerspective; |
| } |
| return null; |
| } |
| |
| /** |
| * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(IPageLayout) |
| */ |
| public void createInitialLayout(IPageLayout layout) { |
| layout.setEditorAreaVisible(true); |
| String editorArea = layout.getEditorArea(); |
| IFolderLayout topLeftFolder = layout.createFolder("topLeft", //$NON-NLS-1$ |
| IPageLayout.LEFT, 0.30f, editorArea); |
| |
| IFolderLayout bottomLeftFolder = layout.createFolder("bottomLeft", //$NON-NLS-1$ |
| IPageLayout.BOTTOM, 0.50f, "topLeft"); //$NON-NLS-1$ |
| |
| topLeftFolder.addView(LibraryView.VIEW_ID); |
| bottomLeftFolder.addView(ConfigurationView.VIEW_ID); |
| |
| IPlaceholderFolderLayout outputFolder = layout.createPlaceholderFolder( |
| "bottom", IPageLayout.BOTTOM, 0.65f, editorArea); //$NON-NLS-1$ |
| outputFolder.addPlaceholder(IPageLayout.ID_PROP_SHEET); |
| outputFolder.addPlaceholder(IPageLayout.ID_PROBLEM_VIEW); |
| outputFolder.addPlaceholder(NewSearchUI.SEARCH_VIEW_ID); |
| outputFolder.addPlaceholder(IConsoleConstants.ID_CONSOLE_VIEW); |
| outputFolder.addPlaceholder(IPageLayout.ID_BOOKMARKS); |
| outputFolder.addPlaceholder(IProgressConstants.PROGRESS_VIEW_ID); |
| |
| layout.addNewWizardShortcut(NewLibraryWizard.WIZARD_ID); |
| layout.addNewWizardShortcut(NewPluginWizard.WIZARD_ID); |
| layout.addNewWizardShortcut(NewConfigurationWizard.WIZARD_ID); |
| |
| IWizardRegistry newWizardRegistry = PlatformUI.getWorkbench() |
| .getNewWizardRegistry(); |
| IWizardCategory newWizardCategory = newWizardRegistry |
| .findCategory(WizardCategories.NEW_WIZARDS_CATEGORY); |
| IWizardDescriptor[] wizardDescriptors = newWizardCategory.getWizards(); |
| for (int i = 0; i < wizardDescriptors.length; i++) { |
| IWizardDescriptor wizardDescriptor = wizardDescriptors[i]; |
| String wizardId = wizardDescriptor.getId(); |
| if (!newWizardShortcuts.contains(wizardId)) { |
| layout.addNewWizardShortcut(wizardId); |
| } |
| } |
| |
| PerspectiveListUtil.addPerspectiveShortList(layout); |
| } |
| |
| } |