/*****************************************************************************
* Copyright (c) 2009 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
* Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Adapted code from the class diagram
*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.profile.custom.factory;
import org.eclipse.gef.EditPart;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.uml.diagram.profile.custom.edit.parts.AssociationEndSourceEditPart;
import org.eclipse.papyrus.uml.diagram.profile.custom.edit.parts.AssociationEndTargetEditPart;
import org.eclipse.papyrus.uml.diagram.profile.custom.edit.parts.CustomAssociationNodeEditPart;
import org.eclipse.papyrus.uml.diagram.profile.custom.edit.parts.CustomDependencyBranchEditPart;
import org.eclipse.papyrus.uml.diagram.profile.custom.edit.parts.CustomDependencyNodeEditPart;
import org.eclipse.papyrus.uml.diagram.profile.custom.edit.parts.CustomModelEditPart;
import org.eclipse.papyrus.uml.diagram.profile.custom.edit.parts.CustomModelEditPartCN;
import org.eclipse.papyrus.uml.diagram.profile.custom.edit.parts.CustomPackageEditPart;
import org.eclipse.papyrus.uml.diagram.profile.custom.edit.parts.CustomPackageEditPartCN;
import org.eclipse.papyrus.uml.diagram.profile.custom.edit.parts.CustomProfileEditPartCN;
import org.eclipse.papyrus.uml.diagram.profile.custom.edit.parts.CustomProfileEditPartTN;
import org.eclipse.papyrus.uml.diagram.profile.edit.parts.AssociationNodeEditPart;
import org.eclipse.papyrus.uml.diagram.profile.edit.parts.AssociationRoleSourceEditPart;
import org.eclipse.papyrus.uml.diagram.profile.edit.parts.AssociationRoleTargetEditPart;
import org.eclipse.papyrus.uml.diagram.profile.edit.parts.DependencyBranchEditPart;
import org.eclipse.papyrus.uml.diagram.profile.edit.parts.DependencyNodeEditPart;
import org.eclipse.papyrus.uml.diagram.profile.edit.parts.ModelEditPartCN;
import org.eclipse.papyrus.uml.diagram.profile.edit.parts.ModelEditPartTN;
import org.eclipse.papyrus.uml.diagram.profile.edit.parts.PackageEditPart;
import org.eclipse.papyrus.uml.diagram.profile.edit.parts.PackageEditPartCN;
import org.eclipse.papyrus.uml.diagram.profile.edit.parts.ProfileEditPartCN;
import org.eclipse.papyrus.uml.diagram.profile.edit.parts.ProfileEditPartTN;
import org.eclipse.papyrus.uml.diagram.profile.edit.parts.UMLEditPartFactory;
import org.eclipse.papyrus.uml.diagram.profile.part.UMLVisualIDRegistry;
/**
* this is custom editpart factory to create our own editpart
*/
public class CustomUMLeditPartFactory extends UMLEditPartFactory {
/**
*
* @see org.eclipse.papyrus.uml.diagram.profile.edit.parts.UMLEditPartFactory#createEditPart(org.eclipse.gef.EditPart, java.lang.Object)
*
* @param context
* @param model
* @return
*/
@Override
public EditPart createEditPart(EditPart context, Object model) {
if(model instanceof View) {
View view = (View)model;
switch(UMLVisualIDRegistry.getVisualID(view)) {
// redefined classes to modify the method createNodePlate
case PackageEditPart.VISUAL_ID:
return new CustomPackageEditPart(view);
case PackageEditPartCN.VISUAL_ID:
return new CustomPackageEditPartCN(view);
case ModelEditPartTN.VISUAL_ID:
return new CustomModelEditPart(view);
// case ContainmentCircleEditPart.VISUAL_ID:
// return new CContainmentCircleEditPart(view);
case ModelEditPartCN.VISUAL_ID:
return new CustomModelEditPartCN(view);
case AssociationNodeEditPart.VISUAL_ID:
return new CustomAssociationNodeEditPart(view);
case DependencyNodeEditPart.VISUAL_ID:
return new CustomDependencyNodeEditPart(view);
case AssociationRoleSourceEditPart.VISUAL_ID: //5 in class diagram
return new AssociationEndSourceEditPart(view);
case AssociationRoleTargetEditPart.VISUAL_ID: //3 in class diagramm
return new AssociationEndTargetEditPart(view);
case DependencyBranchEditPart.VISUAL_ID:
return new CustomDependencyBranchEditPart(view);
case ProfileEditPartTN.VISUAL_ID:
return new CustomProfileEditPartTN(view);
case ProfileEditPartCN.VISUAL_ID:
return new CustomProfileEditPartCN(view);
}
}
return super.createEditPart(context, model);
}
}