/******************************************************************************* * Copyright (c) 2015 Obeo. * 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: * Obeo - initial API and implementation *******************************************************************************/ package org.eclipse.eef.properties.ui.legacy.internal.extension.impl; import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.eef.properties.ui.legacy.internal.EEFPropertiesUiLegacyPlugin; import org.eclipse.eef.properties.ui.legacy.internal.Messages; import org.eclipse.eef.properties.ui.legacy.internal.extension.IItemDescriptor; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.ui.views.properties.tabbed.IActionProvider; import org.eclipse.ui.views.properties.tabbed.ISectionDescriptorProvider; import org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider; import org.eclipse.ui.views.properties.tabbed.ITypeMapper; /** * The property contributor descriptor. * * @author mbats */ public class LegacyPropertyContributorItemDescriptor implements IItemDescriptor { /** * The configuration element. */ private IConfigurationElement configurationElement; /** * The constructor. * * @param configurationElement * The configuration element */ public LegacyPropertyContributorItemDescriptor(IConfigurationElement configurationElement) { this.configurationElement = configurationElement; } /** * {@inheritDoc} * * @see IItemDescriptor#getId() */ @Override public String getId() { if (configurationElement != null) { return configurationElement.getAttribute(LegacyPropertyContributorRegistryEventListener.CONTRIBUTOR_ID_ATTR); } return null; } /** * Return the labelProvider. * * @return the labelProvider */ public ILabelProvider getLabelProvider() { ILabelProvider labelProvider = null; if (configurationElement != null && configurationElement.getAttribute(LegacyPropertyContributorRegistryEventListener.LABEL_PROVIDER_ATTR) != null) { try { labelProvider = (ILabelProvider) configurationElement .createExecutableExtension(LegacyPropertyContributorRegistryEventListener.LABEL_PROVIDER_ATTR); } catch (CoreException e) { String message = MessageFormat.format(Messages.RegistryEventListener_cannotInstantiateExtension, getId()); EEFPropertiesUiLegacyPlugin.getImplementation().logError(message, e); } } return labelProvider; } /** * Return the actionProvider. * * @return the actionProvider */ public IActionProvider getActionProvider() { IActionProvider actionProvider = null; if (configurationElement != null && configurationElement.getAttribute(LegacyPropertyContributorRegistryEventListener.ACTION_PROVIDER_ATTR) != null) { try { actionProvider = (IActionProvider) configurationElement .createExecutableExtension(LegacyPropertyContributorRegistryEventListener.ACTION_PROVIDER_ATTR); } catch (CoreException e) { String message = MessageFormat.format(Messages.RegistryEventListener_cannotInstantiateExtension, getId()); EEFPropertiesUiLegacyPlugin.getImplementation().logError(message, e); } } return actionProvider; } /** * Return the typeMapper. * * @return the typeMapper */ public ITypeMapper getTypeMapper() { ITypeMapper typeMapper = null; if (configurationElement != null && configurationElement.getAttribute(LegacyPropertyContributorRegistryEventListener.TYPE_MAPPER_ATTR) != null) { try { typeMapper = (ITypeMapper) configurationElement .createExecutableExtension(LegacyPropertyContributorRegistryEventListener.TYPE_MAPPER_ATTR); } catch (CoreException e) { String message = MessageFormat.format(Messages.RegistryEventListener_cannotInstantiateExtension, getId()); EEFPropertiesUiLegacyPlugin.getImplementation().logError(message, e); } } return typeMapper; } /** * Return the sectionDescriptorProvider. * * @return the sectionDescriptorProvider */ public ISectionDescriptorProvider getSectionDescriptorProvider() { ISectionDescriptorProvider sectionDescriptorProvider = null; if (configurationElement != null && configurationElement.getAttribute(LegacyPropertyContributorRegistryEventListener.SECTION_DESCRIPTOR_PROVIDER_ATTR) != null) { try { sectionDescriptorProvider = (ISectionDescriptorProvider) configurationElement .createExecutableExtension(LegacyPropertyContributorRegistryEventListener.SECTION_DESCRIPTOR_PROVIDER_ATTR); } catch (CoreException e) { String message = MessageFormat.format(Messages.RegistryEventListener_cannotInstantiateExtension, getId()); EEFPropertiesUiLegacyPlugin.getImplementation().logError(message, e); } } return sectionDescriptorProvider; } /** * Return the tabDescriptorProvider. * * @return the tabDescriptorProvider */ public ITabDescriptorProvider getTabDescriptorProvider() { ITabDescriptorProvider tabDescriptorProvider = null; if (configurationElement != null && configurationElement.getAttribute(LegacyPropertyContributorRegistryEventListener.TAB_DESCRIPTOR_PROVIDER_ATTR) != null) { try { tabDescriptorProvider = (ITabDescriptorProvider) configurationElement .createExecutableExtension(LegacyPropertyContributorRegistryEventListener.TAB_DESCRIPTOR_PROVIDER_ATTR); } catch (CoreException e) { String message = MessageFormat.format(Messages.RegistryEventListener_cannotInstantiateExtension, getId()); EEFPropertiesUiLegacyPlugin.getImplementation().logError(message, e); } } return tabDescriptorProvider; } /** * Return the overridableTabListContentProvider. * * @return the overridableTabListContentProvider */ public boolean isOverridableTabListContentProvider() { if (configurationElement != null && configurationElement .getAttribute(LegacyPropertyContributorRegistryEventListener.OVERRIDABLE_TAB_LIST_CONTENT_PROVIDER_ATTR) != null) { String attributeBoolean = configurationElement .getAttribute(LegacyPropertyContributorRegistryEventListener.OVERRIDABLE_TAB_LIST_CONTENT_PROVIDER_ATTR); return "true".equals(attributeBoolean); //$NON-NLS-1$ } return false; } /** * Get categories. * * @return The categories */ public List<String> getCategories() { List<String> categories = new ArrayList<String>(); if (configurationElement != null) { for (IConfigurationElement element : configurationElement .getChildren(LegacyPropertyContributorRegistryEventListener.TAG_PROPERTY_CATEGORY)) { categories.add(element.getAttribute(LegacyPropertyContributorRegistryEventListener.CATEGORY_ATTR)); } } return categories; } }