| /******************************************************************************* |
| * Copyright (c) 2004, 2008 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 API and implementation |
| * Jan-Hendrik Diederich, Bredex GmbH - bug 201052 |
| *******************************************************************************/ |
| package org.eclipse.ui.internal.registry; |
| |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.core.runtime.IConfigurationElement; |
| import org.eclipse.core.runtime.IStatus; |
| import org.eclipse.core.runtime.Status; |
| import org.eclipse.ui.IPageLayout; |
| import org.eclipse.ui.IPluginContribution; |
| import org.eclipse.ui.views.IStickyViewDescriptor; |
| |
| /** |
| * @since 3.0 |
| */ |
| public class StickyViewDescriptor implements IStickyViewDescriptor, |
| IPluginContribution { |
| |
| private IConfigurationElement configurationElement; |
| |
| private String id; |
| |
| /** |
| * Folder constant for right sticky views. |
| */ |
| public static final String STICKY_FOLDER_RIGHT = "stickyFolderRight"; //$NON-NLS-1$ |
| |
| /** |
| * Folder constant for left sticky views. |
| */ |
| public static final String STICKY_FOLDER_LEFT = "stickyFolderLeft"; //$NON-NLS-1$ |
| |
| /** |
| * Folder constant for top sticky views. |
| */ |
| public static final String STICKY_FOLDER_TOP = "stickyFolderTop"; //$NON-NLS-1$ |
| |
| /** |
| * Folder constant for bottom sticky views. |
| */ |
| public static final String STICKY_FOLDER_BOTTOM = "stickyFolderBottom"; //$NON-NLS-1$ |
| |
| /** |
| * @param element |
| * @throws CoreException |
| */ |
| public StickyViewDescriptor(IConfigurationElement element) |
| throws CoreException { |
| this.configurationElement = element; |
| id = configurationElement.getAttribute(IWorkbenchRegistryConstants.ATT_ID); |
| if (id == null) { |
| throw new CoreException(new Status(IStatus.ERROR, element |
| .getNamespace(), 0, |
| "Invalid extension (missing id) ", null));//$NON-NLS-1$ |
| } |
| } |
| |
| /** |
| * Return the configuration element. |
| * |
| * @return the configuration element |
| */ |
| public IConfigurationElement getConfigurationElement() { |
| return configurationElement; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.ui.views.IStickyViewDescriptor#getLocation() |
| */ |
| public int getLocation() { |
| int direction = IPageLayout.RIGHT; |
| |
| String location = configurationElement.getAttribute(IWorkbenchRegistryConstants.ATT_LOCATION); |
| if (location != null) { |
| if (location.equalsIgnoreCase("left")) { //$NON-NLS-1$ |
| direction = IPageLayout.LEFT; |
| } else if (location.equalsIgnoreCase("top")) { //$NON-NLS-1$ |
| direction = IPageLayout.TOP; |
| } else if (location.equalsIgnoreCase("bottom")) { //$NON-NLS-1$ |
| direction = IPageLayout.BOTTOM; |
| //no else for right - it is the default value; |
| } |
| } |
| return direction; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.ui.internal.registry.IStickyViewDescriptor#getId() |
| */ |
| public String getId() { |
| return id; |
| } |
| |
| public String getLocalId() { |
| return id; |
| } |
| |
| public String getPluginId() { |
| return configurationElement.getContributor().getName(); |
| } |
| |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.ui.internal.registry.IStickyViewDescriptor#isFixed() |
| */ |
| public boolean isCloseable() { |
| boolean closeable = true; |
| String closeableString = configurationElement.getAttribute(IWorkbenchRegistryConstants.ATT_CLOSEABLE); |
| if (closeableString != null) { |
| closeable = !closeableString.equals("false"); //$NON-NLS-1$ |
| } |
| return closeable; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.ui.internal.registry.IStickyViewDescriptor#isMoveable() |
| */ |
| public boolean isMoveable() { |
| boolean moveable = true; |
| String moveableString = configurationElement.getAttribute(IWorkbenchRegistryConstants.ATT_MOVEABLE); |
| if (moveableString != null) { |
| moveable = !moveableString.equals("false"); //$NON-NLS-1$ |
| } |
| return moveable; |
| } |
| } |