diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/MapAsContribution.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/MapAsContribution.java | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/MapAsContribution.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/MapAsContribution.java deleted file mode 100644 index a480f51dc0..0000000000 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/menus/MapAsContribution.java +++ /dev/null @@ -1,196 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008, 2009 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.ui.internal.menus; - -import java.util.Comparator; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import org.eclipse.jface.action.IContributionItem; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jpt.core.JpaPlatform; -import org.eclipse.jpt.core.JpaResourceType; -import org.eclipse.jpt.core.JpaStructureNode; -import org.eclipse.jpt.ui.JpaPlatformUi; -import org.eclipse.jpt.ui.JptUiPlugin; -import org.eclipse.jpt.ui.details.DefaultMappingUiDefinition; -import org.eclipse.jpt.ui.details.MappingUiDefinition; -import org.eclipse.jpt.ui.internal.jface.ImageImageDescriptor; -import org.eclipse.jpt.utility.internal.ArrayTools; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CompositeIterator; -import org.eclipse.jpt.utility.internal.iterators.TransformationIterator; -import org.eclipse.ui.ISources; -import org.eclipse.ui.actions.CompoundContributionItem; -import org.eclipse.ui.handlers.IHandlerService; -import org.eclipse.ui.menus.CommandContributionItem; -import org.eclipse.ui.menus.CommandContributionItemParameter; -import org.eclipse.ui.menus.IWorkbenchContribution; -import org.eclipse.ui.services.IServiceLocator; -import com.ibm.icu.text.Collator; - -/** - * This menu contribution is responsible to populate the Map As menu with the - * registered mapping types defined in the <code>JptPlatformUi</code>. - * - * @see JpaPlatform - * @see JpaPlatformUi - * - * @version 2.0 - * @since 2.0 - */ -@SuppressWarnings("nls") -public abstract class MapAsContribution extends CompoundContributionItem - implements IWorkbenchContribution -{ - /** - * Keeps track of the <code>IServiceLocator</code> which is used to retrieve - * various services required for invoking the <code>PersistentAttributeMapAsHandler</code>. - */ - private IServiceLocator serviceLocator; - - - /** - * Creates a new <code>PersistentAttributeMapAsContribution</code>. - */ - public MapAsContribution() { - super(); - } - - - public void initialize(IServiceLocator serviceLocator) { - this.serviceLocator = serviceLocator; - } - - @Override - protected IContributionItem[] getContributionItems() { - // Retrieve the selection from the handler service - // which should be an IStructuredSelection of JpaStructureNodes - IHandlerService handlerService = - (IHandlerService) this.serviceLocator.getService(IHandlerService.class); - IStructuredSelection currentSelection = - (IStructuredSelection) handlerService.getCurrentState().getVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME); - - // Assume that all nodes are in the same project (which is very safe) - // and retrieve the mapping UI providers just from the first item - JpaStructureNode node = (JpaStructureNode) currentSelection.getFirstElement(); - - return - ArrayTools.array( - new TransformationIterator<MappingUiDefinition<?>, IContributionItem>(mappingUiDefinitions(node)) { - @Override - protected IContributionItem transform(MappingUiDefinition<?> next) { - return createContributionItem(next); - } - }, - new IContributionItem[0]); - } - - - protected Comparator<MappingUiDefinition<?>> getDefinitionsComparator() { - return new Comparator<MappingUiDefinition<?>>() { - public int compare(MappingUiDefinition<?> item1, MappingUiDefinition<?> item2) { - String displayString1 = item1.getLabel(); - String displayString2 = item2.getLabel(); - return Collator.getInstance().compare(displayString1, displayString2); - } - }; - } - - /** - * Retrieves the registered {@link MappingUiDefinition}s from the given node, - * using its {@link JpaPlatformUi}. - * - * @param node A test node to determine the {@link JpaPlatformUi} and type - * of providers to return - * @return The list of registered {@link MappingUiDefinition}s - */ - protected Iterator<? extends MappingUiDefinition<?>> mappingUiDefinitions(JpaStructureNode node) { - JpaPlatform jpaPlatform = node.getJpaProject().getJpaPlatform(); - JpaPlatformUi jpaPlatformUi = JptUiPlugin.instance().getJpaPlatformUi(jpaPlatform); - - Iterator<? extends MappingUiDefinition<?>> sortedMappingUiDefinitions = - CollectionTools.sort( - mappingUiDefinitions(jpaPlatformUi, node.getResourceType()), - getDefinitionsComparator()); - - DefaultMappingUiDefinition<?> defaultDefinition = getDefaultMappingUiDefinition(jpaPlatformUi, node); - if (defaultDefinition != null) { - return new CompositeIterator<MappingUiDefinition<?>>(defaultDefinition, sortedMappingUiDefinitions); - } - return sortedMappingUiDefinitions; - } - - /** - * Retrieves the registered {@link MappingUiDefinition}s from the given - * {@link JpaPlatformUi} and {@link JpaStructureNode} (to determine type of - * mapping providers to retrieve). - * - * @param jpaPlatformUi The active {@link JpaPlatformUi} from where the - * provider can be retrieved - * @param node A test node to determine type of providers to return - * @return The list of registered {@link MappingUiDefinition}s - */ - protected abstract Iterator<? extends MappingUiDefinition<?>> - mappingUiDefinitions(JpaPlatformUi platformUi, JpaResourceType resourceType); - - /** - * Creates the default provider responsible for clearing the mapping type. - * If not default provider, then return null - * - * @return A provider that acts as a default mapping provider - */ - protected abstract DefaultMappingUiDefinition<?> getDefaultMappingUiDefinition(JpaPlatformUi platformUi, JpaStructureNode node); - - protected IContributionItem createContributionItem(MappingUiDefinition<?> mappingUiProvider) { - return new CommandContributionItem(createParameter(mappingUiProvider)); - } - - protected CommandContributionItemParameter createParameter(MappingUiDefinition<?> mappingUiDefinition) { - CommandContributionItemParameter parameter = - new CommandContributionItemParameter( - this.serviceLocator, - createCommandContributionItemId(mappingUiDefinition), - getCommandId(), - CommandContributionItem.STYLE_CHECK); - parameter.label = mappingUiDefinition.getLabel(); - Map<String, String> parameters = new HashMap<String, String>(); - parameters.put(getCommandParameterId(), mappingUiDefinition.getKey()); - parameter.parameters = parameters; - parameter.icon = new ImageImageDescriptor(mappingUiDefinition.getImage()); - parameter.visibleEnabled = true; - return parameter; - } - - /** - * Retrieves the unique identifier of the command that will be invoked for - * changing the mapping type of the selected nodes. - * - * @return The unique identifier of the "map as" command - */ - protected abstract String getCommandId(); - - /** - * Retrieves the unique identifier of the mapping key command parameter that - * will be used for the new mapping type of the selected nodes. - * - * @return The unique identifier of the "map as" command parameter - */ - protected abstract String getCommandParameterId(); - - /** - * Returns an id for a {@link CommandContributionItem} in the form of - * "<commandId>.<mappingKey>" - * (for example "org.eclipse.jpt.core.ui.persistentTypeMapAs.entity") - */ - protected String createCommandContributionItemId(MappingUiDefinition<?> mappingUiDefinition) { - return getCommandId() + "." + mappingUiDefinition.getKey(); - } -} |