Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java196
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();
- }
-}

Back to the top