/***************************************************************************** * Copyright (c) 2010 CEA LIST. * * * 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: * Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation */ package org.eclipse.papyrus.uml.diagram.clazz.edit.parts; import org.eclipse.draw2d.geometry.Dimension; import org.eclipse.draw2d.geometry.Rectangle; import org.eclipse.gef.EditPart; import org.eclipse.gef.EditPartFactory; import org.eclipse.gef.tools.CellEditorLocator; import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart; import org.eclipse.gmf.runtime.notation.View; import org.eclipse.gmf.tooling.runtime.directedit.locator.CellEditorLocatorAccess; import org.eclipse.jface.viewers.CellEditor; import org.eclipse.papyrus.uml.diagram.clazz.part.UMLVisualIDRegistry; import org.eclipse.papyrus.uml.diagram.common.figure.node.IMultilineEditableFigure; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Text; /** * @generated */ public class UMLEditPartFactory implements EditPartFactory { /** * @generated */ public EditPart createEditPart(EditPart context, Object model) { if(model instanceof View) { View view = (View)model; switch(UMLVisualIDRegistry.getVisualID(view)) { case ModelEditPart.VISUAL_ID: return new ModelEditPart(view); case DependencyNodeEditPart.VISUAL_ID: return new DependencyNodeEditPart(view); case MultiDependencyLabelEditPart.VISUAL_ID: return new MultiDependencyLabelEditPart(view); case AssociationClassEditPart.VISUAL_ID: return new AssociationClassEditPart(view); case AssociationClassNameEditPart.VISUAL_ID: return new AssociationClassNameEditPart(view); case AssociationNodeEditPart.VISUAL_ID: return new AssociationNodeEditPart(view); case InstanceSpecificationEditPart.VISUAL_ID: return new InstanceSpecificationEditPart(view); case InstanceSpecificationNameEditPart.VISUAL_ID: return new InstanceSpecificationNameEditPart(view); case ComponentEditPart.VISUAL_ID: return new ComponentEditPart(view); case ComponentNameEditPart.VISUAL_ID: return new ComponentNameEditPart(view); case SignalEditPart.VISUAL_ID: return new SignalEditPart(view); case SignalNameEditPart.VISUAL_ID: return new SignalNameEditPart(view); case InterfaceEditPart.VISUAL_ID: return new InterfaceEditPart(view); case InterfaceNameEditPart.VISUAL_ID: return new InterfaceNameEditPart(view); case ModelEditPartTN.VISUAL_ID: return new ModelEditPartTN(view); case ModelNameEditPartTN.VISUAL_ID: return new ModelNameEditPartTN(view); case EnumerationEditPart.VISUAL_ID: return new EnumerationEditPart(view); case EnumerationNameEditPart.VISUAL_ID: return new EnumerationNameEditPart(view); case PackageEditPart.VISUAL_ID: return new PackageEditPart(view); case PackageNameEditPart.VISUAL_ID: return new PackageNameEditPart(view); case InformationItemEditPart.VISUAL_ID: return new InformationItemEditPart(view); case InformationItemNameEditPart.VISUAL_ID: return new InformationItemNameEditPart(view); case ClassEditPart.VISUAL_ID: return new ClassEditPart(view); case ClassNameEditPart.VISUAL_ID: return new ClassNameEditPart(view); case PrimitiveTypeEditPart.VISUAL_ID: return new PrimitiveTypeEditPart(view); case PrimitiveTypeNameEditPart.VISUAL_ID: return new PrimitiveTypeNameEditPart(view); case DataTypeEditPart.VISUAL_ID: return new DataTypeEditPart(view); case DataTypeNameEditPart.VISUAL_ID: return new DataTypeNameEditPart(view); case ConstraintEditPart.VISUAL_ID: return new ConstraintEditPart(view); case ConstraintNameEditPart.VISUAL_ID: return new ConstraintNameEditPart(view); case ConstraintBodyEditPart.VISUAL_ID: return new ConstraintBodyEditPart(view); case CommentEditPart.VISUAL_ID: return new CommentEditPart(view); case CommentBodyEditPart.VISUAL_ID: return new CommentBodyEditPart(view); case ShortCutDiagramEditPart.VISUAL_ID: return new ShortCutDiagramEditPart(view); case DiagramNameEditPart.VISUAL_ID: return new DiagramNameEditPart(view); case DurationObservationEditPart.VISUAL_ID: return new DurationObservationEditPart(view); case DurationObservationNameEditPart.VISUAL_ID: return new DurationObservationNameEditPart(view); case DurationObservationStereotypeLabelEditPart.VISUAL_ID: return new DurationObservationStereotypeLabelEditPart(view); case TimeObservationEditPart.VISUAL_ID: return new TimeObservationEditPart(view); case TimeObservationNameEditPart.VISUAL_ID: return new TimeObservationNameEditPart(view); case TimeObservationStereotypeLabelEditPart.VISUAL_ID: return new TimeObservationStereotypeLabelEditPart(view); case DefaultNamedElementEditPart.VISUAL_ID: return new DefaultNamedElementEditPart(view); case DefaultNamedElementNameEditPart.VISUAL_ID: return new DefaultNamedElementNameEditPart(view); case ShapeNamedElementEditPart.VISUAL_ID: return new ShapeNamedElementEditPart(view); case ShapeNamedElementNameEditPart.VISUAL_ID: return new ShapeNamedElementNameEditPart(view); case PropertyForClassEditPart.VISUAL_ID: return new PropertyForClassEditPart(view); case PropertyForComponentEditPart.VISUAL_ID: return new PropertyForComponentEditPart(view); case PropertyForSignalEditPart.VISUAL_ID: return new PropertyForSignalEditPart(view); case PropertyForInterfaceEditPart.VISUAL_ID: return new PropertyForInterfaceEditPart(view); case PropertyforDataTypeEditPart.VISUAL_ID: return new PropertyforDataTypeEditPart(view); case NestedClassForClassEditPart.VISUAL_ID: return new NestedClassForClassEditPart(view); case NestedClassForComponentEditPart.VISUAL_ID: return new NestedClassForComponentEditPart(view); case NestedClassForInterfaceEditPart.VISUAL_ID: return new NestedClassForInterfaceEditPart(view); case OperationForClassEditPart.VISUAL_ID: return new OperationForClassEditPart(view); case OperationForComponentEditPart.VISUAL_ID: return new OperationForComponentEditPart(view); case OperationForInterfaceEditpart.VISUAL_ID: return new OperationForInterfaceEditpart(view); case OperationForDataTypeEditPart.VISUAL_ID: return new OperationForDataTypeEditPart(view); case ConnectableElementTemplateParameterEditPart.VISUAL_ID: return new ConnectableElementTemplateParameterEditPart(view); case OperationTemplateParameterEditPart.VISUAL_ID: return new OperationTemplateParameterEditPart(view); case ClassifierTemplateParameterEditPart.VISUAL_ID: return new ClassifierTemplateParameterEditPart(view); case TemplateParameterEditPart.VISUAL_ID: return new TemplateParameterEditPart(view); case EnumerationLiteralEditPart.VISUAL_ID: return new EnumerationLiteralEditPart(view); case ReceptionEditPart.VISUAL_ID: return new ReceptionEditPart(view); case ReceptionInInterfaceEditPart.VISUAL_ID: return new ReceptionInInterfaceEditPart(view); case SlotEditPart.VISUAL_ID: return new SlotEditPart(view); case RedefinableTemplateSignatureEditPart.VISUAL_ID: return new RedefinableTemplateSignatureEditPart(view); case ContainmentCircleEditPart.VISUAL_ID: return new ContainmentCircleEditPart(view); case TemplateSignatureEditPart.VISUAL_ID: return new TemplateSignatureEditPart(view); case InstanceSpecificationEditPartCN.VISUAL_ID: return new InstanceSpecificationEditPartCN(view); case InstanceSpecificationNameEditPartCN.VISUAL_ID: return new InstanceSpecificationNameEditPartCN(view); case ComponentEditPartCN.VISUAL_ID: return new ComponentEditPartCN(view); case ComponentNameEditPartCN.VISUAL_ID: return new ComponentNameEditPartCN(view); case SignalEditPartCN.VISUAL_ID: return new SignalEditPartCN(view); case SignalNameEditPartCN.VISUAL_ID: return new SignalNameEditPartCN(view); case InterfaceEditPartCN.VISUAL_ID: return new InterfaceEditPartCN(view); case InterfaceNameEditPartCN.VISUAL_ID: return new InterfaceNameEditPartCN(view); case ModelEditPartCN.VISUAL_ID: return new ModelEditPartCN(view); case ModelNameEditPartCN.VISUAL_ID: return new ModelNameEditPartCN(view); case EnumerationEditPartCN.VISUAL_ID: return new EnumerationEditPartCN(view); case EnumerationNameEditPartCN.VISUAL_ID: return new EnumerationNameEditPartCN(view); case PackageEditPartCN.VISUAL_ID: return new PackageEditPartCN(view); case PackageNameEditPartCN.VISUAL_ID: return new PackageNameEditPartCN(view); case InformationItemEditPartCN.VISUAL_ID: return new InformationItemEditPartCN(view); case InformationItemNameEditPartCN.VISUAL_ID: return new InformationItemNameEditPartCN(view); case ClassEditPartCN.VISUAL_ID: return new ClassEditPartCN(view); case ClassNameEditPartCN.VISUAL_ID: return new ClassNameEditPartCN(view); case PrimitiveTypeEditPartCN.VISUAL_ID: return new PrimitiveTypeEditPartCN(view); case PrimitiveTypeNameEditPartCN.VISUAL_ID: return new PrimitiveTypeNameEditPartCN(view); case DataTypeEditPartCN.VISUAL_ID: return new DataTypeEditPartCN(view); case DataTypeNameEditPartCN.VISUAL_ID: return new DataTypeNameEditPartCN(view); case CommentEditPartCN.VISUAL_ID: return new CommentEditPartCN(view); case CommentBodyEditPartCN.VISUAL_ID: return new CommentBodyEditPartCN(view); case ConstraintEditPartCN.VISUAL_ID: return new ConstraintEditPartCN(view); case ConstraintNameEditPartCN.VISUAL_ID: return new ConstraintNameEditPartCN(view); case ConstraintBodyEditPartCN.VISUAL_ID: return new ConstraintBodyEditPartCN(view); case NestedInterfaceForClassEditPart.VISUAL_ID: return new NestedInterfaceForClassEditPart(view); case NestedInterfaceForComponentEditPart.VISUAL_ID: return new NestedInterfaceForComponentEditPart(view); case NestedInterfaceForInterfaceEditPart.VISUAL_ID: return new NestedInterfaceForInterfaceEditPart(view); case ClassAttributeCompartmentEditPartCN.VISUAL_ID: return new ClassAttributeCompartmentEditPartCN(view); case ClassOperationCompartmentEditPartCN.VISUAL_ID: return new ClassOperationCompartmentEditPartCN(view); case ClassNestedClassifierCompartmentEditPartCN.VISUAL_ID: return new ClassNestedClassifierCompartmentEditPartCN(view); case ComponentAttributeCompartmentEditPartCN.VISUAL_ID: return new ComponentAttributeCompartmentEditPartCN(view); case ComponentOperationCompartmentEditPartCN.VISUAL_ID: return new ComponentOperationCompartmentEditPartCN(view); case ComponentNestedClassifierCompartmentEditPartCN.VISUAL_ID: return new ComponentNestedClassifierCompartmentEditPartCN(view); case SignalAttributeCompartmentEditPartCN.VISUAL_ID: return new SignalAttributeCompartmentEditPartCN(view); case InterfaceAttributeCompartmentEditPartCN.VISUAL_ID: return new InterfaceAttributeCompartmentEditPartCN(view); case InterfaceOperationCompartmentEditPartCN.VISUAL_ID: return new InterfaceOperationCompartmentEditPartCN(view); case InterfaceNestedClassifierCompartmentEditPartCN.VISUAL_ID: return new InterfaceNestedClassifierCompartmentEditPartCN(view); case DataTypeAttributeCompartmentEditPartCN.VISUAL_ID: return new DataTypeAttributeCompartmentEditPartCN(view); case DataTypeOperationCompartmentEditPartCN.VISUAL_ID: return new DataTypeOperationCompartmentEditPartCN(view); case ModelPackageableElementCompartmentEditPartCN.VISUAL_ID: return new ModelPackageableElementCompartmentEditPartCN(view); case PackagePackageableElementCompartmentEditPartCN.VISUAL_ID: return new PackagePackageableElementCompartmentEditPartCN(view); case EnumerationEnumerationLiteralCompartmentEditPartCN.VISUAL_ID: return new EnumerationEnumerationLiteralCompartmentEditPartCN(view); case InstanceSpecificationSlotCompartmentEditPartCN.VISUAL_ID: return new InstanceSpecificationSlotCompartmentEditPartCN(view); case ClassAttributeCompartmentEditPart.VISUAL_ID: return new ClassAttributeCompartmentEditPart(view); case ClassOperationCompartmentEditPart.VISUAL_ID: return new ClassOperationCompartmentEditPart(view); case ClassNestedClassifierCompartmentEditPart.VISUAL_ID: return new ClassNestedClassifierCompartmentEditPart(view); case ComponentAttributeCompartmentEditPart.VISUAL_ID: return new ComponentAttributeCompartmentEditPart(view); case ComponentOperationCompartmentEditPart.VISUAL_ID: return new ComponentOperationCompartmentEditPart(view); case ComponentNestedClassifierCompartmentEditPart.VISUAL_ID: return new ComponentNestedClassifierCompartmentEditPart(view); case InterfaceAttributeCompartmentEditPart.VISUAL_ID: return new InterfaceAttributeCompartmentEditPart(view); case InterfaceOperationCompartmentEditPart.VISUAL_ID: return new InterfaceOperationCompartmentEditPart(view); case InterfaceNestedClassifierCompartmentEditPart.VISUAL_ID: return new InterfaceNestedClassifierCompartmentEditPart(view); case DataTypeAttributeCompartmentEditPart.VISUAL_ID: return new DataTypeAttributeCompartmentEditPart(view); case DataTypeOperationCompartmentEditPart.VISUAL_ID: return new DataTypeOperationCompartmentEditPart(view); case AssociationClassAttributeCompartmentEditPart.VISUAL_ID: return new AssociationClassAttributeCompartmentEditPart(view); case InstanceSpecificationSlotCompartmentEditPart.VISUAL_ID: return new InstanceSpecificationSlotCompartmentEditPart(view); case SignalAttributeCompartmentEditPart.VISUAL_ID: return new SignalAttributeCompartmentEditPart(view); case ModelPackageableElementCompartmentEditPartTN.VISUAL_ID: return new ModelPackageableElementCompartmentEditPartTN(view); case PackagePackageableElementCompartmentEditPart.VISUAL_ID: return new PackagePackageableElementCompartmentEditPart(view); case EnumerationEnumerationLiteralCompartmentEditPart.VISUAL_ID: return new EnumerationEnumerationLiteralCompartmentEditPart(view); case AssociationClassOperationCompartmentEditPart.VISUAL_ID: return new AssociationClassOperationCompartmentEditPart(view); case AssociationClassNestedClassifierCompartmentEditPart.VISUAL_ID: return new AssociationClassNestedClassifierCompartmentEditPart(view); case RedefinableTemplateSignatureTemplateParameterCompartmentEditPart.VISUAL_ID: return new RedefinableTemplateSignatureTemplateParameterCompartmentEditPart(view); case TemplateSignatureTemplateParameterCompartmentEditPart.VISUAL_ID: return new TemplateSignatureTemplateParameterCompartmentEditPart(view); case AssociationClassDashedLinkEditPart.VISUAL_ID: return new AssociationClassDashedLinkEditPart(view); case AssociationClassLinkEditPart.VISUAL_ID: return new AssociationClassLinkEditPart(view); case AssociationClassRoleSourceEditPart.VISUAL_ID: return new AssociationClassRoleSourceEditPart(view); case AssociationClassRoleTargetEditPart.VISUAL_ID: return new AssociationClassRoleTargetEditPart(view); case AssociationEditPart.VISUAL_ID: return new AssociationEditPart(view); case AppliedStereotypeAssociationEditPart.VISUAL_ID: return new AppliedStereotypeAssociationEditPart(view); case AssociationNameEditPart.VISUAL_ID: return new AssociationNameEditPart(view); case AssociationTargetNameEditPart.VISUAL_ID: return new AssociationTargetNameEditPart(view); case AssociationSourceNameEditPart.VISUAL_ID: return new AssociationSourceNameEditPart(view); case AssociationMultiplicitySourceEditPart.VISUAL_ID: return new AssociationMultiplicitySourceEditPart(view); case AssociationMultiplicityTargetEditPart.VISUAL_ID: return new AssociationMultiplicityTargetEditPart(view); case AssociationBranchEditPart.VISUAL_ID: return new AssociationBranchEditPart(view); case AssociationBranchRoleEditPart.VISUAL_ID: return new AssociationBranchRoleEditPart(view); case AssociationBranchMutliplicityEditPart.VISUAL_ID: return new AssociationBranchMutliplicityEditPart(view); case GeneralizationEditPart.VISUAL_ID: return new GeneralizationEditPart(view); case AppliedStereotyperGeneralizationEditPart.VISUAL_ID: return new AppliedStereotyperGeneralizationEditPart(view); case InterfaceRealizationEditPart.VISUAL_ID: return new InterfaceRealizationEditPart(view); case AppliedStereotypeInterfaceRealizationEditPart.VISUAL_ID: return new AppliedStereotypeInterfaceRealizationEditPart(view); case InterfaceRealizationName2EditPart.VISUAL_ID: return new InterfaceRealizationName2EditPart(view); case SubstitutionEditPart.VISUAL_ID: return new SubstitutionEditPart(view); case AppliedStereotypeSubstitutionEditPart.VISUAL_ID: return new AppliedStereotypeSubstitutionEditPart(view); case SubstitutionNameEditPart.VISUAL_ID: return new SubstitutionNameEditPart(view); case RealizationEditPart.VISUAL_ID: return new RealizationEditPart(view); case AppliedStereotypeRealizationEditPart.VISUAL_ID: return new AppliedStereotypeRealizationEditPart(view); case RealizationNameEditPart.VISUAL_ID: return new RealizationNameEditPart(view); case AbstractionEditPart.VISUAL_ID: return new AbstractionEditPart(view); case AbstractionNameEditPart.VISUAL_ID: return new AbstractionNameEditPart(view); case AppliedStereotypeAbstractionEditPart.VISUAL_ID: return new AppliedStereotypeAbstractionEditPart(view); case UsageEditPart.VISUAL_ID: return new UsageEditPart(view); case UsageNameEditPart.VISUAL_ID: return new UsageNameEditPart(view); case AppliedStereotypeUsageEditPart.VISUAL_ID: return new AppliedStereotypeUsageEditPart(view); case DependencyEditPart.VISUAL_ID: return new DependencyEditPart(view); case DependencyNameEditPart.VISUAL_ID: return new DependencyNameEditPart(view); case AppliedStereotypeDependencyEditPart.VISUAL_ID: return new AppliedStereotypeDependencyEditPart(view); case DependencyBranchEditPart.VISUAL_ID: return new DependencyBranchEditPart(view); case ElementImportEditPart.VISUAL_ID: return new ElementImportEditPart(view); case ElementImportAliasEditPart.VISUAL_ID: return new ElementImportAliasEditPart(view); case AppliedStereotypeElementImportEditPart.VISUAL_ID: return new AppliedStereotypeElementImportEditPart(view); case PackageImportEditPart.VISUAL_ID: return new PackageImportEditPart(view); case AppliedStereotypePackageImportEditPart.VISUAL_ID: return new AppliedStereotypePackageImportEditPart(view); case PackageMergeEditPart.VISUAL_ID: return new PackageMergeEditPart(view); case AppliedStereotypePackageMergeEditPart.VISUAL_ID: return new AppliedStereotypePackageMergeEditPart(view); case ProfileApplicationEditPart.VISUAL_ID: return new ProfileApplicationEditPart(view); case CommentAnnotatedElementEditPart.VISUAL_ID: return new CommentAnnotatedElementEditPart(view); case ConstraintConstrainedElementEditPart.VISUAL_ID: return new ConstraintConstrainedElementEditPart(view); case TemplateBindingEditPart.VISUAL_ID: return new TemplateBindingEditPart(view); case BindingSubstitutionEditPart.VISUAL_ID: return new BindingSubstitutionEditPart(view); case AppliedStereotypeTemplateBindingEditPart.VISUAL_ID: return new AppliedStereotypeTemplateBindingEditPart(view); case GeneralizationSetEditPart.VISUAL_ID: return new GeneralizationSetEditPart(view); case ConstraintLabelEditPart.VISUAL_ID: return new ConstraintLabelEditPart(view); case AppliedStereotypeGeneralizationSetLabelEditPart.VISUAL_ID: return new AppliedStereotypeGeneralizationSetLabelEditPart(view); case InstanceSpecificationLinkEditPart.VISUAL_ID: return new InstanceSpecificationLinkEditPart(view); case SourceISLinkLabelEditPart.VISUAL_ID: return new SourceISLinkLabelEditPart(view); case TargetISLinkLabelEditPart.VISUAL_ID: return new TargetISLinkLabelEditPart(view); case ContainmentSubLinkEditPart.VISUAL_ID: return new ContainmentSubLinkEditPart(view); case ContainmentLinkEditPart.VISUAL_ID: return new ContainmentLinkEditPart(view); case ConnectorTimeObservationEditPart.VISUAL_ID: return new ConnectorTimeObservationEditPart(view); case ConnectorDurationObservationEditPart.VISUAL_ID: return new ConnectorDurationObservationEditPart(view); case InformationFlowEditPart.VISUAL_ID: return new InformationFlowEditPart(view); case InformationFlowConveyedLabelEditPart.VISUAL_ID: return new InformationFlowConveyedLabelEditPart(view); case InformationFlowAppliedStereotypeEditPart.VISUAL_ID: return new InformationFlowAppliedStereotypeEditPart(view); } } return createUnrecognizedEditPart(context, model); } /** * @generated */ private EditPart createUnrecognizedEditPart(EditPart context, Object model) { // Handle creation of unrecognized child node EditParts here return null; } /** * @generated */ public static CellEditorLocator getTextCellEditorLocator(ITextAwareEditPart source) { if(source.getFigure() instanceof IMultilineEditableFigure) { return new MultilineCellEditorLocator((IMultilineEditableFigure)source.getFigure()); } else { return CellEditorLocatorAccess.INSTANCE.getTextCellEditorLocator(source); } } /** * @generated */ static private class MultilineCellEditorLocator implements CellEditorLocator { /** * @generated */ private IMultilineEditableFigure multilineEditableFigure; /** * @generated */ public MultilineCellEditorLocator(IMultilineEditableFigure figure) { this.multilineEditableFigure = figure; } /** * @generated */ public IMultilineEditableFigure getMultilineEditableFigure() { return multilineEditableFigure; } /** * @generated */ public void relocate(CellEditor celleditor) { Text text = (Text)celleditor.getControl(); Rectangle rect = getMultilineEditableFigure().getBounds().getCopy(); rect.x = getMultilineEditableFigure().getEditionLocation().x; rect.y = getMultilineEditableFigure().getEditionLocation().y; getMultilineEditableFigure().translateToAbsolute(rect); if(getMultilineEditableFigure().getText().length() > 0) { rect.setSize(new Dimension(text.computeSize(rect.width, SWT.DEFAULT))); } if(!rect.equals(new Rectangle(text.getBounds()))) { text.setBounds(rect.x, rect.y, rect.width, rect.height); } } } }