/***************************************************************************** * Copyright (c) 2009 Atos Origin. * * * 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: * Atos Origin - Initial API and implementation * *****************************************************************************/ package org.eclipse.papyrus.uml.diagram.sequence.providers; import java.util.HashSet; import java.util.IdentityHashMap; import java.util.Map; import java.util.Set; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EClassifier; import org.eclipse.emf.ecore.ENamedElement; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry; import org.eclipse.gmf.runtime.emf.type.core.IElementType; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.ActionExecutionSpecificationEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.BehaviorExecutionSpecificationEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.CombinedFragment2EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.CombinedFragmentEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.CommentAnnotatedElementEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.CommentEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.ConsiderIgnoreFragmentEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.ConstraintConstrainedElementEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.ConstraintEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.ContinuationEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.DestructionOccurrenceSpecificationEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.DurationConstraintEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.DurationConstraintInMessageEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.DurationObservationEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.GeneralOrderingEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.InteractionEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.InteractionOperandEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.InteractionUseEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.LifelineEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.Message2EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.Message3EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.Message4EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.Message5EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.Message6EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.Message7EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.PackageEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.StateInvariantEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.TimeConstraintEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.TimeObservationEditPart; import org.eclipse.papyrus.uml.diagram.sequence.part.UMLDiagramEditorPlugin; import org.eclipse.swt.graphics.Image; import org.eclipse.uml2.uml.UMLPackage; /** * @generated */ public class UMLElementTypes { /** * @generated */ private UMLElementTypes() { } /** * @generated */ private static Map<IElementType, ENamedElement> elements; /** * @generated */ private static ImageRegistry imageRegistry; /** * @generated */ private static Set<IElementType> KNOWN_ELEMENT_TYPES; /** * @generated */ public static final IElementType Package_1000 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.Package_1000"); //$NON-NLS-1$ /** * @generated */ public static final IElementType Interaction_2001 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.Interaction_2001"); //$NON-NLS-1$ /** * @generated */ public static final IElementType Lifeline_3001 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.Lifeline_3001"); //$NON-NLS-1$ /** * @generated */ public static final IElementType BehaviorExecutionSpecification_3003 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.BehaviorExecutionSpecification_3003"); //$NON-NLS-1$ /** * @generated */ public static final IElementType StateInvariant_3017 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.StateInvariant_3017"); //$NON-NLS-1$ /** * @generated */ public static final IElementType CombinedFragment_3018 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.CombinedFragment_3018"); //$NON-NLS-1$ /** * @generated */ public static final IElementType TimeConstraint_3019 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.TimeConstraint_3019"); //$NON-NLS-1$ /** * @generated */ public static final IElementType TimeObservation_3020 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.TimeObservation_3020"); //$NON-NLS-1$ /** * @generated */ public static final IElementType DurationConstraint_3021 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.DurationConstraint_3021"); //$NON-NLS-1$ /** * @generated */ public static final IElementType DestructionOccurrenceSpecification_3022 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.DestructionOccurrenceSpecification_3022"); //$NON-NLS-1$ /** * @generated */ public static final IElementType ActionExecutionSpecification_3006 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.ActionExecutionSpecification_3006"); //$NON-NLS-1$ /** * @generated */ public static final IElementType InteractionUse_3002 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.InteractionUse_3002"); //$NON-NLS-1$ /** * @generated */ public static final IElementType CombinedFragment_3004 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.CombinedFragment_3004"); //$NON-NLS-1$ /** * @generated */ public static final IElementType InteractionOperand_3005 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.InteractionOperand_3005"); //$NON-NLS-1$ /** * @generated */ public static final IElementType Continuation_3016 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.Continuation_3016"); //$NON-NLS-1$ /** * @generated */ public static final IElementType Constraint_3008 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.Constraint_3008"); //$NON-NLS-1$ /** * @generated */ public static final IElementType Comment_3009 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.Comment_3009"); //$NON-NLS-1$ /** * @generated */ public static final IElementType DurationConstraint_3023 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.DurationConstraint_3023"); //$NON-NLS-1$ /** * @generated */ public static final IElementType DurationObservation_3024 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.DurationObservation_3024"); //$NON-NLS-1$ /** * @generated */ public static final IElementType ConsiderIgnoreFragment_3007 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.ConsiderIgnoreFragment_3007"); //$NON-NLS-1$ /** * @generated */ public static final IElementType Message_4003 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.Message_4003"); //$NON-NLS-1$ /** * @generated */ public static final IElementType Message_4004 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.Message_4004"); //$NON-NLS-1$ /** * @generated */ public static final IElementType Message_4005 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.Message_4005"); //$NON-NLS-1$ /** * @generated */ public static final IElementType Message_4006 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.Message_4006"); //$NON-NLS-1$ /** * @generated */ public static final IElementType Message_4007 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.Message_4007"); //$NON-NLS-1$ /** * @generated */ public static final IElementType Message_4008 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.Message_4008"); //$NON-NLS-1$ /** * @generated */ public static final IElementType Message_4009 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.Message_4009"); //$NON-NLS-1$ /** * @generated */ public static final IElementType CommentAnnotatedElement_4010 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.CommentAnnotatedElement_4010"); //$NON-NLS-1$ /** * @generated */ public static final IElementType ConstraintConstrainedElement_4011 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.ConstraintConstrainedElement_4011"); //$NON-NLS-1$ /** * @generated */ public static final IElementType GeneralOrdering_4012 = getElementType("org.eclipse.papyrus.uml.diagram.sequence.GeneralOrdering_4012"); //$NON-NLS-1$ /** * @generated */ private static ImageRegistry getImageRegistry() { if(imageRegistry == null) { imageRegistry = new ImageRegistry(); } return imageRegistry; } /** * @generated */ private static String getImageRegistryKey(ENamedElement element) { return element.getName(); } /** * @generated */ private static ImageDescriptor getProvidedImageDescriptor(ENamedElement element) { if(element instanceof EStructuralFeature) { EStructuralFeature feature = ((EStructuralFeature)element); EClass eContainingClass = feature.getEContainingClass(); EClassifier eType = feature.getEType(); if(eContainingClass != null && !eContainingClass.isAbstract()) { element = eContainingClass; } else if(eType instanceof EClass && !((EClass)eType).isAbstract()) { element = eType; } } if(element instanceof EClass) { EClass eClass = (EClass)element; if(!eClass.isAbstract()) { return UMLDiagramEditorPlugin.getInstance().getItemImageDescriptor(eClass.getEPackage().getEFactoryInstance().create(eClass)); } } // TODO : support structural features return null; } /** * @generated */ public static ImageDescriptor getImageDescriptor(ENamedElement element) { String key = getImageRegistryKey(element); ImageDescriptor imageDescriptor = getImageRegistry().getDescriptor(key); if(imageDescriptor == null) { imageDescriptor = getProvidedImageDescriptor(element); if(imageDescriptor == null) { imageDescriptor = ImageDescriptor.getMissingImageDescriptor(); } getImageRegistry().put(key, imageDescriptor); } return imageDescriptor; } /** * @generated */ public static Image getImage(ENamedElement element) { String key = getImageRegistryKey(element); Image image = getImageRegistry().get(key); if(image == null) { ImageDescriptor imageDescriptor = getProvidedImageDescriptor(element); if(imageDescriptor == null) { imageDescriptor = ImageDescriptor.getMissingImageDescriptor(); } getImageRegistry().put(key, imageDescriptor); image = getImageRegistry().get(key); } return image; } /** * @generated */ public static ImageDescriptor getImageDescriptor(IAdaptable hint) { ENamedElement element = getElement(hint); if(element == null) { return null; } return getImageDescriptor(element); } /** * @generated */ public static Image getImage(IAdaptable hint) { ENamedElement element = getElement(hint); if(element == null) { return null; } return getImage(element); } /** * Returns 'type' of the ecore object associated with the hint. * * @generated */ public static ENamedElement getElement(IAdaptable hint) { Object type = hint.getAdapter(IElementType.class); if(elements == null) { elements = new IdentityHashMap<IElementType, ENamedElement>(); elements.put(Package_1000, UMLPackage.eINSTANCE.getPackage()); elements.put(Interaction_2001, UMLPackage.eINSTANCE.getInteraction()); elements.put(ConsiderIgnoreFragment_3007, UMLPackage.eINSTANCE.getConsiderIgnoreFragment()); elements.put(CombinedFragment_3004, UMLPackage.eINSTANCE.getCombinedFragment()); elements.put(InteractionOperand_3005, UMLPackage.eINSTANCE.getInteractionOperand()); elements.put(InteractionUse_3002, UMLPackage.eINSTANCE.getInteractionUse()); elements.put(Continuation_3016, UMLPackage.eINSTANCE.getContinuation()); elements.put(Lifeline_3001, UMLPackage.eINSTANCE.getLifeline()); elements.put(ActionExecutionSpecification_3006, UMLPackage.eINSTANCE.getActionExecutionSpecification()); elements.put(BehaviorExecutionSpecification_3003, UMLPackage.eINSTANCE.getBehaviorExecutionSpecification()); elements.put(StateInvariant_3017, UMLPackage.eINSTANCE.getStateInvariant()); elements.put(CombinedFragment_3018, UMLPackage.eINSTANCE.getCombinedFragment()); elements.put(TimeConstraint_3019, UMLPackage.eINSTANCE.getTimeConstraint()); elements.put(TimeObservation_3020, UMLPackage.eINSTANCE.getTimeObservation()); elements.put(DurationConstraint_3021, UMLPackage.eINSTANCE.getDurationConstraint()); elements.put(DestructionOccurrenceSpecification_3022, UMLPackage.eINSTANCE.getDestructionOccurrenceSpecification()); elements.put(Constraint_3008, UMLPackage.eINSTANCE.getConstraint()); elements.put(Comment_3009, UMLPackage.eINSTANCE.getComment()); elements.put(DurationConstraint_3023, UMLPackage.eINSTANCE.getDurationConstraint()); elements.put(DurationObservation_3024, UMLPackage.eINSTANCE.getDurationObservation()); elements.put(Message_4003, UMLPackage.eINSTANCE.getMessage()); elements.put(Message_4004, UMLPackage.eINSTANCE.getMessage()); elements.put(Message_4005, UMLPackage.eINSTANCE.getMessage()); elements.put(Message_4006, UMLPackage.eINSTANCE.getMessage()); elements.put(Message_4007, UMLPackage.eINSTANCE.getMessage()); elements.put(Message_4008, UMLPackage.eINSTANCE.getMessage()); elements.put(Message_4009, UMLPackage.eINSTANCE.getMessage()); elements.put(CommentAnnotatedElement_4010, UMLPackage.eINSTANCE.getComment_AnnotatedElement()); elements.put(ConstraintConstrainedElement_4011, UMLPackage.eINSTANCE.getConstraint_ConstrainedElement()); elements.put(GeneralOrdering_4012, UMLPackage.eINSTANCE.getGeneralOrdering()); } return (ENamedElement)elements.get(type); } /** * @generated */ private static IElementType getElementType(String id) { return ElementTypeRegistry.getInstance().getType(id); } /** * @generated */ public static boolean isKnownElementType(IElementType elementType) { if(KNOWN_ELEMENT_TYPES == null) { KNOWN_ELEMENT_TYPES = new HashSet<IElementType>(); KNOWN_ELEMENT_TYPES.add(Package_1000); KNOWN_ELEMENT_TYPES.add(Interaction_2001); KNOWN_ELEMENT_TYPES.add(ConsiderIgnoreFragment_3007); KNOWN_ELEMENT_TYPES.add(CombinedFragment_3004); KNOWN_ELEMENT_TYPES.add(InteractionOperand_3005); KNOWN_ELEMENT_TYPES.add(InteractionUse_3002); KNOWN_ELEMENT_TYPES.add(Continuation_3016); KNOWN_ELEMENT_TYPES.add(Lifeline_3001); KNOWN_ELEMENT_TYPES.add(ActionExecutionSpecification_3006); KNOWN_ELEMENT_TYPES.add(BehaviorExecutionSpecification_3003); KNOWN_ELEMENT_TYPES.add(StateInvariant_3017); KNOWN_ELEMENT_TYPES.add(CombinedFragment_3018); KNOWN_ELEMENT_TYPES.add(TimeConstraint_3019); KNOWN_ELEMENT_TYPES.add(TimeObservation_3020); KNOWN_ELEMENT_TYPES.add(DurationConstraint_3021); KNOWN_ELEMENT_TYPES.add(DestructionOccurrenceSpecification_3022); KNOWN_ELEMENT_TYPES.add(Constraint_3008); KNOWN_ELEMENT_TYPES.add(Comment_3009); KNOWN_ELEMENT_TYPES.add(DurationConstraint_3023); KNOWN_ELEMENT_TYPES.add(DurationObservation_3024); KNOWN_ELEMENT_TYPES.add(Message_4003); KNOWN_ELEMENT_TYPES.add(Message_4004); KNOWN_ELEMENT_TYPES.add(Message_4005); KNOWN_ELEMENT_TYPES.add(Message_4006); KNOWN_ELEMENT_TYPES.add(Message_4007); KNOWN_ELEMENT_TYPES.add(Message_4008); KNOWN_ELEMENT_TYPES.add(Message_4009); KNOWN_ELEMENT_TYPES.add(CommentAnnotatedElement_4010); KNOWN_ELEMENT_TYPES.add(ConstraintConstrainedElement_4011); KNOWN_ELEMENT_TYPES.add(GeneralOrdering_4012); } return KNOWN_ELEMENT_TYPES.contains(elementType); } /** * @generated */ public static IElementType getElementType(int visualID) { switch(visualID) { case PackageEditPart.VISUAL_ID: return Package_1000; case InteractionEditPart.VISUAL_ID: return Interaction_2001; case ConsiderIgnoreFragmentEditPart.VISUAL_ID: return ConsiderIgnoreFragment_3007; case CombinedFragmentEditPart.VISUAL_ID: return CombinedFragment_3004; case InteractionOperandEditPart.VISUAL_ID: return InteractionOperand_3005; case InteractionUseEditPart.VISUAL_ID: return InteractionUse_3002; case ContinuationEditPart.VISUAL_ID: return Continuation_3016; case LifelineEditPart.VISUAL_ID: return Lifeline_3001; case ActionExecutionSpecificationEditPart.VISUAL_ID: return ActionExecutionSpecification_3006; case BehaviorExecutionSpecificationEditPart.VISUAL_ID: return BehaviorExecutionSpecification_3003; case StateInvariantEditPart.VISUAL_ID: return StateInvariant_3017; case CombinedFragment2EditPart.VISUAL_ID: return CombinedFragment_3018; case TimeConstraintEditPart.VISUAL_ID: return TimeConstraint_3019; case TimeObservationEditPart.VISUAL_ID: return TimeObservation_3020; case DurationConstraintEditPart.VISUAL_ID: return DurationConstraint_3021; case DestructionOccurrenceSpecificationEditPart.VISUAL_ID: return DestructionOccurrenceSpecification_3022; case ConstraintEditPart.VISUAL_ID: return Constraint_3008; case CommentEditPart.VISUAL_ID: return Comment_3009; case DurationConstraintInMessageEditPart.VISUAL_ID: return DurationConstraint_3023; case DurationObservationEditPart.VISUAL_ID: return DurationObservation_3024; case MessageEditPart.VISUAL_ID: return Message_4003; case Message2EditPart.VISUAL_ID: return Message_4004; case Message3EditPart.VISUAL_ID: return Message_4005; case Message4EditPart.VISUAL_ID: return Message_4006; case Message5EditPart.VISUAL_ID: return Message_4007; case Message6EditPart.VISUAL_ID: return Message_4008; case Message7EditPart.VISUAL_ID: return Message_4009; case CommentAnnotatedElementEditPart.VISUAL_ID: return CommentAnnotatedElement_4010; case ConstraintConstrainedElementEditPart.VISUAL_ID: return ConstraintConstrainedElement_4011; case GeneralOrderingEditPart.VISUAL_ID: return GeneralOrdering_4012; } return null; } }