blob: 65df048366b06c2268a9c4b7525c2971842c1f5f [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.wpdd.edit.parts;
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;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.epf.diagram.core.part.util.DiagramEditorUtil;
import org.eclipse.epf.diagram.wpdd.edit.policies.WorkProductDependencyDiagramCanonicalEditPolicy;
import org.eclipse.epf.diagram.wpdd.edit.policies.WorkProductDependencyDiagramItemSemanticEditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
/**
* @generated
*/
public class WorkProductDependencyDiagramEditPart extends DiagramEditPart {
/**
* @generated
*/
public static final String MODEL_ID = "WPDD"; //$NON-NLS-1$
/**
* @generated
*/
public static final int VISUAL_ID = 79;
/**
* @generated
*/
public WorkProductDependencyDiagramEditPart(View view) {
super(view);
}
/**
* @generated
*/
protected void createDefaultEditPolicies() {
super.createDefaultEditPolicies();
installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
new WorkProductDependencyDiagramItemSemanticEditPolicy());
installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
new WorkProductDependencyDiagramCanonicalEditPolicy());
}
@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);
}
@Override
public void activate() {
super.activate();
Object model = getModel();
if (model instanceof View) {
EObject e = ((View) model).getElement();
if (e instanceof org.eclipse.epf.diagram.model.Node) {
((org.eclipse.epf.diagram.model.Node) e).addConsumer(this);
}
}
}
@Override
public void deactivate() {
super.deactivate();
Object model = getModel();
if (model instanceof View) {
EObject e = ((View) model).getElement();
if (e instanceof org.eclipse.epf.diagram.model.Node) {
((org.eclipse.epf.diagram.model.Node) e).removeConsumer(this);
}
}
}
}