| /* |
| * Copyright (c) 2006, 2010 Borland Software 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: |
| * Dmitry Stadnik (Borland) - initial API and implementation |
| */ |
| |
| «IMPORT 'http://www.eclipse.org/gmf/2009/GenModel'» |
| «IMPORT 'http://www.eclipse.org/emf/2002/GenModel'» |
| «EXTENSION xpt::diagram::Utils» |
| |
| «DEFINE qualifiedClassName FOR gmfgen::GenDiagram»«providersPackageName».«elementTypesClassName»«ENDDEFINE» |
| |
| «DEFINE ElementTypes FOR gmfgen::GenDiagram-» |
| «EXPAND xpt::Common::copyright FOR editorGen-» |
| package «providersPackageName»; |
| |
| «EXPAND xpt::Common::generatedClassComment» |
| public class «elementTypesClassName» { |
| |
| «EXPAND _constructor-» |
| |
| «EXPAND attributes-» |
| |
| «EXPAND elementTypeField FOREACH getAllTypedElements()-» |
| |
| «EXPAND getNamedElementImageDescriptor-» |
| |
| «EXPAND getNamedElementImage-» |
| |
| «EXPAND getAdaptableImageDescriptor-» |
| |
| «EXPAND getAdaptableImage-» |
| |
| «EXPAND getElement-» |
| |
| «EXPAND getElementType-» |
| |
| «EXPAND isKnownElementType-» |
| |
| «EXPAND getElementTypeByVisualID-» |
| |
| «EXPAND typedInstance-» |
| |
| «EXPAND additions-» |
| } |
| «ENDDEFINE» |
| |
| «DEFINE _constructor FOR gmfgen::GenDiagram-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| private «elementTypesClassName»() { |
| } |
| «ENDDEFINE» |
| |
| «DEFINE attributes FOR gmfgen::GenDiagram-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| private static «EXPAND CodeStyle::G2('java.util.Map', 'org.eclipse.gmf.runtime.emf.type.core.IElementType', 'org.eclipse.emf.ecore.ENamedElement')» elements; |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| private static org.eclipse.gmf.tooling.runtime.providers.DiagramElementTypeImages elementTypeImages = new org.eclipse.gmf.tooling.runtime.providers.DiagramElementTypeImages(«-» |
| «editorGen.plugin.getActivatorQualifiedClassName()».getInstance().getItemProvidersAdapterFactory()); |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| private static «EXPAND CodeStyle::G('java.util.Set', 'org.eclipse.gmf.runtime.emf.type.core.IElementType')» KNOWN_ELEMENT_TYPES; |
| «ENDDEFINE» |
| |
| |
| «REM» |
| Since 3.1, GMFT delegates ImageRegistry-related code to non-generated DiagramElementTypeImages, so methods below are not generated anymore. |
| If you still need one, you always can get it from 'elementTypeImages.getXXX()' call. |
| The only exception is 'DEFINE loadProvidedImageDescriptor FOR gmfgen::GenDiagram', which is not compatible with the delegation and removed completely. |
| |
| «DEFINE getImageRegistry FOR gmfgen::GenDiagram»«ENDDEFINE» |
| «DEFINE getImageRegistryKey FOR gmfgen::GenDiagram»«ENDDEFINE» |
| «DEFINE getProvidedImageDescriptor FOR gmfgen::GenDiagram»«ENDDEFINE» |
| |
| «ENDREM» |
| «DEFINE getNamedElementImageDescriptor FOR gmfgen::GenDiagram-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public static org.eclipse.jface.resource.ImageDescriptor getImageDescriptor(org.eclipse.emf.ecore.ENamedElement element) { |
| return elementTypeImages.getImageDescriptor(element); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE getNamedElementImage FOR gmfgen::GenDiagram-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public static org.eclipse.swt.graphics.Image getImage(org.eclipse.emf.ecore.ENamedElement element) { |
| return elementTypeImages.getImage(element); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE getAdaptableImageDescriptor FOR gmfgen::GenDiagram-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public static org.eclipse.jface.resource.ImageDescriptor getImageDescriptor(org.eclipse.core.runtime.IAdaptable hint) { |
| return getImageDescriptor(getElement(hint)); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE getAdaptableImage FOR gmfgen::GenDiagram-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public static org.eclipse.swt.graphics.Image getImage(org.eclipse.core.runtime.IAdaptable hint) { |
| return getImage(getElement(hint)); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE getElement FOR gmfgen::GenDiagram-» |
| «EXPAND xpt::Common::generatedMemberComment('Returns \'type\' of the ecore object associated with the hint.\n')» |
| public static org.eclipse.emf.ecore.ENamedElement getElement(org.eclipse.core.runtime.IAdaptable hint) { |
| Object type = hint.getAdapter(org.eclipse.gmf.runtime.emf.type.core.IElementType.class); |
| if (elements == null) { |
| elements = new «EXPAND CodeStyle::G2('java.util.IdentityHashMap', 'org.eclipse.gmf.runtime.emf.type.core.IElementType', 'org.eclipse.emf.ecore.ENamedElement')»(); |
| «EXPAND bindUniqueIdentifierToNamedElement(getUniqueIdentifier()) FOR domainDiagramElement-» |
| «FOREACH getAllNodes() AS node-» |
| «EXPAND bindUniqueIdentifierToNamedElement(node.getUniqueIdentifier()) FOR node.modelFacet-» |
| «ENDFOREACH-» |
| «FOREACH links->asSequence() AS link-» |
| «EXPAND bindUniqueIdentifierToNamedElement(link.getUniqueIdentifier()) FOR link.modelFacet-» |
| «ENDFOREACH-» |
| } |
| return (org.eclipse.emf.ecore.ENamedElement) elements.get(type); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE bindUniqueIdentifierToNamedElement(id : String) FOR genmodel::GenClass» |
| elements.put(«id», «EXPAND MetaModel::MetaClass»); |
| «ENDDEFINE» |
| |
| «DEFINE bindUniqueIdentifierToNamedElement(id : String) FOR gmfgen::ModelFacet» |
| «ERROR 'Unsupported model facet: ' + self.repr()-» |
| «ENDDEFINE» |
| |
| «DEFINE bindUniqueIdentifierToNamedElement(id : String) FOR gmfgen::TypeModelFacet» |
| «EXPAND bindUniqueIdentifierToNamedElement(id) FOR metaClass-» |
| «ENDDEFINE» |
| |
| «DEFINE bindUniqueIdentifierToNamedElement(id : String) FOR gmfgen::FeatureLinkModelFacet» |
| elements.put(«id», «EXPAND MetaModel::MetaFeature FOR metaFeature»); |
| «ENDDEFINE» |
| |
| «DEFINE elementTypeField FOR gmfgen::GenCommonBase-» |
| «IF null <> elementType-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public static final org.eclipse.gmf.runtime.emf.type.core.IElementType «getUniqueIdentifier()» = getElementType("«elementType.uniqueIdentifier»"); «EXPAND xpt::Common::nonNLS» |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE accessElementType FOR gmfgen::GenCommonBase»«getDiagram().getElementTypesQualifiedClassName()».«getUniqueIdentifier()»«ENDDEFINE» |
| |
| «DEFINE getElementType FOR gmfgen::GenDiagram-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| private static org.eclipse.gmf.runtime.emf.type.core.IElementType getElementType(String id) { |
| return org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry.getInstance().getType(id); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE isKnownElementType FOR gmfgen::GenDiagram-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public static boolean isKnownElementType(org.eclipse.gmf.runtime.emf.type.core.IElementType elementType) { |
| if (KNOWN_ELEMENT_TYPES == null) { |
| KNOWN_ELEMENT_TYPES = new «EXPAND CodeStyle::G('java.util.HashSet', 'org.eclipse.gmf.runtime.emf.type.core.IElementType')»(); |
| «EXPAND addKnownElementType FOREACH getAllTypedElements()-» |
| } |
| return KNOWN_ELEMENT_TYPES.contains(elementType); |
| } |
| «ENDDEFINE» |
| |
| «DEFINE addKnownElementType FOR gmfgen::GenCommonBase-» |
| «IF null <> elementType-» |
| KNOWN_ELEMENT_TYPES.add(«getUniqueIdentifier()»); |
| «ENDIF-» |
| «ENDDEFINE» |
| |
| «DEFINE getElementTypeByVisualID FOR gmfgen::GenDiagram-» |
| «EXPAND xpt::Common::generatedMemberComment» |
| public static org.eclipse.gmf.runtime.emf.type.core.IElementType getElementType(int visualID) { |
| switch (visualID) { |
| «EXPAND caseElementType FOREACH getAllTypedElements()->select(el | el.elementType <> null)-» |
| } |
| return null; |
| } |
| «ENDDEFINE» |
| |
| «DEFINE caseElementType FOR gmfgen::GenCommonBase-» |
| «EXPAND xpt::Common::caseVisualID-» |
| return «getUniqueIdentifier()»; |
| «ENDDEFINE» |
| |
| «DEFINE typedInstanceName FOR gmfgen::GenDiagram»TYPED_INSTANCE«ENDDEFINE» |
| «DEFINE typedInstanceCall FOR gmfgen::GenDiagram»«EXPAND qualifiedClassName».«EXPAND typedInstanceName»«ENDDEFINE» |
| |
| «DEFINE typedInstance FOR gmfgen::GenDiagram-» |
| «EXPAND xpt::Common::generatedClassComment» |
| public static final org.eclipse.gmf.tooling.runtime.providers.DiagramElementTypes TYPED_INSTANCE |
| = new org.eclipse.gmf.tooling.runtime.providers.DiagramElementTypes(elementTypeImages) { |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| «EXPAND CodeStyle::override» |
| public boolean isKnownElementType(org.eclipse.gmf.runtime.emf.type.core.IElementType elementType) { |
| return «EXPAND qualifiedClassName».isKnownElementType(elementType); |
| } |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| «EXPAND CodeStyle::override» |
| public org.eclipse.gmf.runtime.emf.type.core.IElementType getElementTypeForVisualId(int visualID) { |
| return «EXPAND qualifiedClassName».getElementType(visualID); |
| } |
| |
| «EXPAND xpt::Common::generatedMemberComment» |
| «EXPAND CodeStyle::override» |
| public org.eclipse.emf.ecore.ENamedElement getDefiningNamedElement(org.eclipse.core.runtime.IAdaptable elementTypeAdapter) { |
| return «EXPAND qualifiedClassName».getElement(elementTypeAdapter); |
| } |
| }; |
| «ENDDEFINE» |
| |
| «DEFINE additions FOR gmfgen::GenDiagram-» |
| «ENDDEFINE» |