/** * Copyright (c) 2002-2010 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 - Initial API and implementation */ package org.eclipse.emf.edit; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.eclipse.emf.common.EMFPlugin; import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.edit.provider.ComposedAdapterFactory; import org.eclipse.emf.edit.provider.IChildCreationExtender; import com.google.gwt.core.client.GWT; /** * The <b>Plugin</b> for the model EMF.Edit library. * EMF must run * within an Eclipse workbench, * within a headless Eclipse workspace, * or just stand-alone as part of some other application. * To support this, all resource access should be directed to the resource locator, * which can redirect the service as appropriate to the runtime. * During stand-alone invocation no plugin initialization takes place. * In this case, emf.edit.resources.jar must be on the CLASSPATH. * @see #INSTANCE */ public final class EMFEditPlugin extends EMFPlugin { /** * The singleton instance of the plugin. */ public static final EMFEditPlugin INSTANCE = new EMFEditPlugin(); /** * Creates the singleton instance. */ private EMFEditPlugin() { super(new ResourceLocator[] {}); } /* * Javadoc copied from base class. */ @Override public ResourceLocator getPluginResourceLocator() { return null; } /** * The singleton instance of an {@link ComposedAdapterFactory.Descriptor.Registry item provider adapter factory registry}. */ private static ComposedAdapterFactory.Descriptor.Registry.Impl composedAdapterFactoryDescriptorRegistry; /** * Returns a populated instance of an {@link ComposedAdapterFactory.Descriptor.Registry item provider adapter factory registry}. * @return a populated instance of an item provider adapter factory registry. */ public static ComposedAdapterFactory.Descriptor.Registry getComposedAdapterFactoryDescriptorRegistry() { if (composedAdapterFactoryDescriptorRegistry == null) { composedAdapterFactoryDescriptorRegistry = new ComposedAdapterFactory.Descriptor.Registry.Impl(null) { private static final long serialVersionUID = 1L; @Override public ComposedAdapterFactory.Descriptor delegatedGetDescriptor(Collection<?> types) { List<Object> stringTypes = new ArrayList<Object>(types.size()); for (Object key : types) { if (key instanceof EPackage) { stringTypes.add(((EPackage)key).getNsURI()); } else if (key instanceof Class<?>) { stringTypes.add(((Class<?>)key).getName()); } else { return null; } } ComposedAdapterFactory.Descriptor descriptor = (ComposedAdapterFactory.Descriptor)get(stringTypes); if (descriptor != null) { put(types, descriptor); return descriptor; } return super.delegatedGetDescriptor(types); } }; } return composedAdapterFactoryDescriptorRegistry; } /** * The singleton instance of a {@link IChildCreationExtender.Descriptor.Registry child creation extender registry}. */ private static IChildCreationExtender.Descriptor.Registry.Impl childCreationExtenderDescriptorRegistry; /** * Returns a populated instance of a {@link IChildCreationExtender.Descriptor.Registry child creation extender registry}. * @return a populated instance of child creation extender registry. */ public static IChildCreationExtender.Descriptor.Registry getChildCreationExtenderDescriptorRegistry() { if (childCreationExtenderDescriptorRegistry == null) { childCreationExtenderDescriptorRegistry = new IChildCreationExtender.Descriptor.Registry.Impl(null) { private static final long serialVersionUID = 1L; @Override public Collection<IChildCreationExtender.Descriptor> delegatedGetDescriptors(String namespace) { Collection<IChildCreationExtender.Descriptor> descriptors = get(namespace); return descriptors != null ? descriptors : super.delegatedGetDescriptors(namespace); } }; } return childCreationExtenderDescriptorRegistry; } protected static final EMFEditPluginProperties PROPERTIES = GWT.create(EMFEditPluginProperties.class); @Override public String getString(String key, boolean translate) { if ("_UI_AddCommand_label".equals(key)) return PROPERTIES.addCommandLabel(); else if ("_UI_AddCommand_description".equals(key)) return PROPERTIES.addCommandDescription(); else if ("_UI_AddCommand_description_for_list".equals(key)) return PROPERTIES.addCommandDescriptionForList(); else if ("_UI_CopyCommand_label".equals(key)) return PROPERTIES.copyCommandLabel(); else if ("_UI_CopyCommand_description".equals(key)) return PROPERTIES.copyCommandDescription(); else if ("_UI_CopyToClipboardCommand_label".equals(key)) return PROPERTIES.copyToClipboardCommandLabel(); else if ("_UI_CopyToClipboardCommand_description".equals(key)) return PROPERTIES.copyToClipboardCommandDescription(); else if ("_UI_CreateCopyCommand_label".equals(key)) return PROPERTIES.createCopyCommandLabel(); else if ("_UI_CreateCopyCommand_description".equals(key)) return PROPERTIES.createCopyCommandDescription(); else if ("_UI_CutToClipboardCommand_label".equals(key)) return PROPERTIES.cutToClipboardCommandLabel(); else if ("_UI_CutToClipboardCommand_description".equals(key)) return PROPERTIES.cutToClipboardCommandDescription(); else if ("_UI_DragAndDropCommand_label".equals(key)) return PROPERTIES.dragAndDropCommandLabel(); else if ("_UI_DragAndDropCommand_description".equals(key)) return PROPERTIES.dragAndDropCommandDescription(); else if ("_UI_InitializeCopyCommand_label".equals(key)) return PROPERTIES.initializeCopyCommandLabel(); else if ("_UI_InitializeCopyCommand_description".equals(key)) return PROPERTIES.initializeCopyCommandDescription(); else if ("_UI_MoveCommand_label".equals(key)) return PROPERTIES.moveCommandLabel(); else if ("_UI_MoveCommand_description".equals(key)) return PROPERTIES.moveCommandDescription(); else if ("_UI_MoveCommand_description_for_list".equals(key)) return PROPERTIES.moveCommandDescriptionForList(); else if ("_UI_PasteFromClipboardCommand_label".equals(key)) return PROPERTIES.pasteFromClipboardCommandLabel(); else if ("_UI_PasteFromClipboardCommand_description".equals(key)) return PROPERTIES.pasteFromClipboardCommandDescription(); else if ("_UI_RemoveCommand_label".equals(key)) return PROPERTIES.removeCommandLabel(); else if ("_UI_RemoveCommand_description".equals(key)) return PROPERTIES.removeCommandDescription(); else if ("_UI_RemoveCommand_description_for_list".equals(key)) return PROPERTIES.removeCommandDescriptionForList(); else if ("_UI_ReplaceCommand_label".equals(key)) return PROPERTIES.replaceCommandLabel(); else if ("_UI_ReplaceCommand_description".equals(key)) return PROPERTIES.replaceCommandDescription(); else if ("_UI_SetCommand_label".equals(key)) return PROPERTIES.setCommandLabel(); else if ("_UI_SetCommand_description".equals(key)) return PROPERTIES.setCommandDescription(); else if ("_UI_CreateChildCommand_description".equals(key)) return PROPERTIES.createChildCommandDescription(); else if ("_UI_Unknown_type".equals(key)) return PROPERTIES.unknownType(); else if ("_UI_Unknown_feature".equals(key)) return PROPERTIES.unknownFeature(); else if ("_UI_ResourceSet_label".equals(key)) return PROPERTIES.resourceSetLabel(); else if ("_UI_ValueProperty_name".equals(key)) return PROPERTIES.valuePropertyName(); else if ("_UI_ValueProperty_description".equals(key)) return PROPERTIES.valuePropertyDescription(); else if ("_UI_Unknown_datatype".equals(key)) return PROPERTIES.unknownDatatype(); else if ("_UI_ItemProviderAdapterFactory_extensionpoint".equals(key)) return PROPERTIES.itemProviderAdapterFactoryExtensionpoint(); else if ("_UI_DeleteCommand_label".equals(key)) return PROPERTIES.deleteCommandLabel(); else if ("_UI_DeleteCommand_description".equals(key)) return PROPERTIES.deleteCommandDescription(); else if ("_UI_ChildCreationExtender_extensionpoint".equals(key)) return PROPERTIES.childCreationExtenderExtensionpoint(); else return key; } @Override public String getString(String key, Object [] substitutions, boolean translate) { if ("_EXC_Method_not_implemented".equals(key)) return PROPERTIES.excMethodNotImplemented(substitutions[0]); else if ("_UI_CreateChild_text".equals(key)) return PROPERTIES.createChildText(substitutions[0]); else if ("_UI_CreateChild_tooltip".equals(key)) return PROPERTIES.createChildTooltip(substitutions[0], substitutions[1]); else if ("_UI_CreateChild_description".equals(key)) return PROPERTIES.createChildDescription(substitutions[0], substitutions[1], substitutions[2]); else if ("_UI_CreateSibling_description".equals(key)) return PROPERTIES.createSiblingDescription(substitutions[0], substitutions[1], substitutions[2]); else if ("_UI_CreateChildCommand_label".equals(key)) return PROPERTIES.createChildCommandLabel(substitutions[0]); else if ("_UI_Property_description".equals(key)) return PROPERTIES.propertyDescription(substitutions[0], substitutions[1]); else if ("_UI_CreateChild_text2".equals(key)) return PROPERTIES.createChildText2(substitutions[0], substitutions[1]); else if ("_UI_CreateChild_text3".equals(key)) return PROPERTIES.createChildText3(substitutions[1]); else return key; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected static final EMFEditPluginImages IMAGES = GWT.create(EMFEditPluginImages.class); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Object getImage(String key) { if ("full/obj16/Resource".equals(key)) return IMAGES.resource(); else if ("full/obj16/ResourceSet".equals(key)) return IMAGES.resourceSet(); else return key; } }