blob: de78157c5cccc304d8f538ab56420cea9d5e3d7b [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 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.authoring.gef.edit;
import org.eclipse.draw2d.Label;
import org.eclipse.epf.authoring.gef.figures.Images;
import org.eclipse.epf.diagram.model.NamedNode;
import org.eclipse.epf.diagram.model.Node;
import org.eclipse.epf.diagram.model.WorkProductNode;
import org.eclipse.epf.library.edit.util.Suppression;
import org.eclipse.epf.library.edit.util.TngUtil;
import org.eclipse.epf.uma.WorkProductDescriptor;
import org.eclipse.gef.tools.DirectEditManager;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.swt.graphics.Image;
/**
* Provides support for {@link WorkProductDescriptor}.
* @author Shashidhar Kannoori
* @since 1.0
*/
public class WorkProductNodeEditPart extends NamedNodeEditPart {
public WorkProductNodeEditPart(NamedNode model) {
super(model);
}
/**
* @see org.eclipse.epf.authoring.gef.edit.NamedNodeEditPart#getImage()
*/
protected Image getImage() {
Object model = getModel();
if (model instanceof WorkProductNode) {
WorkProductNode node = (WorkProductNode) model;
switch (node.getType()) {
case WorkProductNode.ARTIFACT:
return Images.WORK_PRODUCT_DESCRIPTOR_16;
case WorkProductNode.DELIVERABLE:
return Images.DELIVERABLE;
case WorkProductNode.OUTCOME:
return Images.OUTCOME;
}
return Images.WORK_PRODUCT_DESCRIPTOR_16;
}
return null;
}
/**
* @see org.eclipse.epf.authoring.gef.edit.NamedNodeEditPart#createDirectEditPolicy()
*/
protected DirectEditManager createDirectEditManager() {
Label l = (Label) getFigure();
return new ValidatingDirectEditManager(this, TextCellEditor.class,
new LabelTextCellEditorLocator(l), l) {
protected String validate(String txt) {
Object obj = getEditPart().getModel();
if (obj instanceof WorkProductNode) {
Node node = (Node) obj;
Object e = node.getObject();
Suppression suppression = node.getDiagram().getSuppression();
return TngUtil.checkWorkProductDescriptorPresentationName(
e, txt, suppression);
}
return super.validate(txt);
}
};
}
}