/* * Kouretes Statechart Editor-KSE developed * by Angeliki Topalidou-Kyniazopoulou * for Kouretes Team. Code developed by Nikolaos Spanoudakis, Alex Parashos, * ibm, apache and eclipse is used. */ package statechart.diagram.edit.parts; import org.eclipse.draw2d.ColorConstants; import org.eclipse.draw2d.Connection; import org.eclipse.draw2d.PolylineDecoration; import org.eclipse.draw2d.RotatableDecoration; import org.eclipse.draw2d.geometry.PointList; import org.eclipse.gef.EditPart; import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart; import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart; import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx; import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel; import org.eclipse.gmf.runtime.notation.View; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.widgets.Display; import statechart.diagram.edit.policies.TransitionItemSemanticEditPolicy; /** * @generated */ public class TransitionEditPart extends ConnectionNodeEditPart implements ITreeBranchEditPart { /** * @generated */ public static final int VISUAL_ID = 4001; /** * @generated */ public TransitionEditPart(View view) { super(view); } /** * @generated */ protected void createDefaultEditPolicies() { super.createDefaultEditPolicies(); installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new TransitionItemSemanticEditPolicy()); } /** * @generated */ protected boolean addFixedChild(EditPart childEditPart) { if (childEditPart instanceof TransitionTEEditPart) { ((TransitionTEEditPart) childEditPart).setLabel(getPrimaryShape() .getFigureTransitionTEFigure()); return true; } return false; } /** * @generated */ protected void addChildVisual(EditPart childEditPart, int index) { if (addFixedChild(childEditPart)) { return; } super.addChildVisual(childEditPart, index); } /** * @generated */ protected boolean removeFixedChild(EditPart childEditPart) { if (childEditPart instanceof TransitionTEEditPart) { return true; } return false; } /** * @generated */ protected void removeChildVisual(EditPart childEditPart) { if (removeFixedChild(childEditPart)) { return; } super.removeChildVisual(childEditPart); } /** * Creates figure for this edit part. * * Body of this method does not depend on settings in generation model * so you may safely remove <i>generated</i> tag and modify it. * * @generated */ protected Connection createConnectionFigure() { return new TransitionFigure(); } /** * @generated */ public TransitionFigure getPrimaryShape() { return (TransitionFigure) getFigure(); } /** * @generated */ public class TransitionFigure extends PolylineConnectionEx { /** * @generated */ private WrappingLabel fFigureTransitionTEFigure; /** * @generated */ public TransitionFigure() { this.setLineWidth(2); this.setForegroundColor(ColorConstants.black); this.setBackgroundColor(ColorConstants.black); createContents(); setTargetDecoration(createTargetDecoration()); } /** * @generated */ private void createContents() { fFigureTransitionTEFigure = new WrappingLabel(); fFigureTransitionTEFigure.setText("<..>"); fFigureTransitionTEFigure.setFont(FFIGURETRANSITIONTEFIGURE_FONT); this.add(fFigureTransitionTEFigure); } /** * @generated */ private RotatableDecoration createTargetDecoration() { PolylineDecoration df = new PolylineDecoration(); df.setLineWidth(2); df.setForegroundColor(ColorConstants.black); df.setBackgroundColor(ColorConstants.black); PointList pl = new PointList(); pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(1)); pl.addPoint(getMapMode().DPtoLP(0), getMapMode().DPtoLP(0)); pl.addPoint(getMapMode().DPtoLP(-2), getMapMode().DPtoLP(-1)); df.setTemplate(pl); df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3)); return df; } /** * @generated */ public WrappingLabel getFigureTransitionTEFigure() { return fFigureTransitionTEFigure; } } /** * @generated */ static final Font FFIGURETRANSITIONTEFIGURE_FONT = new Font( Display.getCurrent(), "TransitionFont", 12, SWT.NORMAL); }