| /******************************************************************************* |
| * <copyright> |
| * |
| * Copyright (c) 2005, 2010 SAP AG. |
| * 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: |
| * SAP AG - initial API, implementation and documentation |
| * |
| * </copyright> |
| * |
| *******************************************************************************/ |
| package org.eclipse.graphiti.examples.common.perspective; |
| |
| import org.eclipse.graphiti.ui.internal.editor.ThumbNailView; |
| import org.eclipse.ui.IFolderLayout; |
| import org.eclipse.ui.IPageLayout; |
| import org.eclipse.ui.IPerspectiveFactory; |
| import org.eclipse.ui.PlatformUI; |
| import org.eclipse.ui.views.IViewDescriptor; |
| |
| /** |
| * The Class GFPerspective. Defines the Eclipse perspective for testing |
| * Graphiti. |
| */ |
| @SuppressWarnings("restriction") |
| public class GFPerspective implements IPerspectiveFactory { |
| |
| /** |
| * Instantiates a new perspective. |
| */ |
| public GFPerspective() { |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see |
| * org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui |
| * .IPageLayout) |
| */ |
| public void createInitialLayout(IPageLayout layout) { |
| defineActions(layout); |
| defineLayout(layout); |
| } |
| |
| /** |
| * Defines the initial actions for a page. |
| * |
| * @param layout |
| * The layout we are filling |
| */ |
| private void defineActions(IPageLayout layout) { |
| // Add "new wizards". |
| layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.folder");//$NON-NLS-1$ |
| layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.file");//$NON-NLS-1$ |
| |
| // Add "show views". |
| layout.addShowViewShortcut(IPageLayout.ID_PROJECT_EXPLORER); |
| layout.addShowViewShortcut(IPageLayout.ID_BOOKMARKS); |
| layout.addShowViewShortcut(IPageLayout.ID_OUTLINE); |
| layout.addShowViewShortcut(IPageLayout.ID_PROP_SHEET); |
| layout.addShowViewShortcut(IPageLayout.ID_PROBLEM_VIEW); |
| if (isViewAvailable(IPageLayout.ID_PROGRESS_VIEW)) { |
| layout.addShowViewShortcut(IPageLayout.ID_PROGRESS_VIEW); |
| } |
| layout.addShowViewShortcut(IPageLayout.ID_TASK_LIST); |
| |
| layout.addActionSet(IPageLayout.ID_NAVIGATE_ACTION_SET); |
| } |
| |
| /** |
| * Defines the initial layout for a page. |
| * |
| * @param layout |
| * The layout we are filling |
| */ |
| private void defineLayout(IPageLayout layout) { |
| // Editors are placed for free. |
| String editorArea = layout.getEditorArea(); |
| |
| // Top left. |
| IFolderLayout topLeft = layout.createFolder("topLeft", IPageLayout.LEFT, (float) 0.26, editorArea);//$NON-NLS-1$ |
| if (isViewAvailable("org.eclipse.jdt.ui.PackageExplorer")) { //$NON-NLS-1$ |
| topLeft.addView("org.eclipse.jdt.ui.PackageExplorer"); //$NON-NLS-1$ |
| } |
| if (isViewAvailable(IPageLayout.ID_PROJECT_EXPLORER)) { |
| topLeft.addView(IPageLayout.ID_PROJECT_EXPLORER); |
| } |
| topLeft.addPlaceholder(IPageLayout.ID_BOOKMARKS); |
| |
| // Bottom left. |
| IFolderLayout bottomLeft = layout.createFolder("bottomLeft", IPageLayout.BOTTOM, (float) 0.50,//$NON-NLS-1$ |
| "topLeft");//$NON-NLS-1$ |
| if (isViewAvailable(IPageLayout.ID_OUTLINE)) { |
| bottomLeft.addView(IPageLayout.ID_OUTLINE); |
| } |
| if (isViewAvailable(ThumbNailView.VIEW_ID)) { |
| bottomLeft.addView(ThumbNailView.VIEW_ID); //$NON-NLS-1$ |
| } |
| |
| // Bottom right. |
| IFolderLayout bottomRight = layout.createFolder("bottomRight", IPageLayout.BOTTOM, (float) 0.66,//$NON-NLS-1$ |
| editorArea); |
| if (isViewAvailable("org.eclipse.pde.runtime.LogView")) { //$NON-NLS-1$ |
| bottomRight.addView("org.eclipse.pde.runtime.LogView"); //$NON-NLS-1$ |
| } |
| if (isViewAvailable(IPageLayout.ID_PROP_SHEET)) { |
| bottomRight.addView(IPageLayout.ID_PROP_SHEET); |
| } |
| if (isViewAvailable(IPageLayout.ID_PROBLEM_VIEW)) { |
| bottomRight.addView(IPageLayout.ID_PROBLEM_VIEW); |
| } |
| } |
| |
| private static boolean isViewAvailable(String viewId) { |
| IViewDescriptor viewDesc = PlatformUI.getWorkbench().getViewRegistry().find(viewId); |
| return viewDesc != null; |
| } |
| } |