blob: 768072dc771208a345837b04a211fd889435ab1f [file] [log] [blame]
/*
* Copyright (c) 2005, 2007 IBM 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:
* IBM Corporation - initial implementation
*
*/
package org.eclipse.epf.diagram.ad.edit.parts;
import java.util.Iterator;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.epf.diagram.ad.custom.policies.ActivityCreationEditPolicy;
import org.eclipse.epf.diagram.ad.custom.policies.ActivityXYLayoutEditPolicy;
import org.eclipse.epf.diagram.ad.edit.policies.ActivityCanonicalEditPolicy;
import org.eclipse.epf.diagram.ad.edit.policies.ActivityItemSemanticEditPolicy;
import org.eclipse.epf.diagram.core.part.util.DiagramEditorUtil;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
import org.eclipse.gmf.runtime.notation.Node;
import org.eclipse.gmf.runtime.notation.NotationPackage;
import org.eclipse.gmf.runtime.notation.View;
/**
* @generated
*/
public class ActivityEditPart extends DiagramEditPart {
/**
* @generated
*/
public static final String MODEL_ID = "AD"; //$NON-NLS-1$
/**
* @generated
*/
public static final int VISUAL_ID = 79;
/**
* @generated
*/
public ActivityEditPart(View view) {
super(view);
}
/**
* @modified
*/
protected void createDefaultEditPolicies() {
super.createDefaultEditPolicies();
installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
new ActivityItemSemanticEditPolicy());
installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
new ActivityCanonicalEditPolicy());
// modified START
installEditPolicy(EditPolicy.LAYOUT_ROLE,
new ActivityXYLayoutEditPolicy());
installEditPolicy(
EditPolicyRoles.CREATION_ROLE,
new ActivityCreationEditPolicy());
// modified END
}
@Override
protected void handleNotificationEvent(Notification event) {
if (NotationPackage.Literals.VIEW__VISIBLE.equals(event.getFeature())) {
Object notifier = event.getNotifier();
if (notifier == getModel())
refreshVisibility();
else if (event.getNotifier() instanceof Node) {
refreshChildren();
DiagramEditorUtil.refreshConnectionEditParts(this);
}
} else
super.handleNotificationEvent(event);
}
/**
* Moves complete diagram children to given delta.
* @param int (X-axis delta)
* @param int (Y-axis delta)
*
*/
public void moveFigure(int moveX, int moveY) {
for (Iterator iter = this.getChildren().iterator(); iter.hasNext();) {
Object child = iter.next();
if (child instanceof GraphicalEditPart) {
GraphicalEditPart part = (GraphicalEditPart) child;
Rectangle bounds = part.getFigure().getBounds();
Rectangle r = new Rectangle(new Point(bounds.x + moveX,
bounds.y + moveY), bounds.getSize());
// also need to move the bend points
// List list = part.getSourceConnections();
// for (Iterator itor = list.iterator(); itor.hasNext();) {
// ControlFlowEditPart linkpart = (ControlFlowEditPart) itor.next();
// Link link = (Link) linkpart.getModel();
// if (link.getBendpoints().size() > 0) {
// PointList plist = ((PolylineConnection) linkpart
// .getFigure()).getPoints();
// List points = new ArrayList();
// for (int i = 1; i < plist.size() - 1; i++) {
// Point p = plist.getPoint(i);
// p = p.translate(new Point(moveX, moveY));
//
// org.eclipse.draw2d.AbsoluteBendpoint bp = new org.eclipse.draw2d.AbsoluteBendpoint(
// p);
// points.add(bp);
// }
//
// linkpart.getConnectionFigure().setRoutingConstraint(
// points);
// }
// }
this.setLayoutConstraint(part, part.getFigure(), r);
} else {
// System.out.println("Part not moved: " + child); //$NON-NLS-1$
}
}
}
}