Package org.jbpm.ui.common.part.graph

Source Code of org.jbpm.ui.common.part.graph.LabeledNodeGraphicalEditPart

package org.jbpm.ui.common.part.graph;

import java.beans.PropertyChangeEvent;

import org.eclipse.draw2d.IFigure;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.Request;
import org.eclipse.gef.RequestConstants;
import org.eclipse.gef.tools.CellEditorLocator;
import org.eclipse.gef.tools.DirectEditManager;
import org.eclipse.jface.viewers.TextCellEditor;
import org.jbpm.ui.common.figure.NodeFigure;
import org.jbpm.ui.common.policy.NodeDirectEditPolicy;
import org.jbpm.ui.util.LabelCellEditorLocator;
import org.jbpm.ui.util.LabelDirectEditManager;

public class LabeledNodeGraphicalEditPart extends NodeGraphicalEditPart {

    private DirectEditManager directEditManager;

    @Override
    public NodeFigure getFigure() {
        return (NodeFigure) super.getFigure();
    }
   
    @Override
    protected IFigure createFigure() {
        NodeFigure figure = (NodeFigure) super.createFigure();
        figure.setName(getModel().getName());
        updateTooltip(figure);
        return figure;
    }

    @Override
    protected void createEditPolicies() {
        super.createEditPolicies();
        installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new NodeDirectEditPolicy());
    }

    private void performDirectEdit() {
        if (directEditManager == null) {
            CellEditorLocator locator = new LabelCellEditorLocator(getFigure().getLabel());
            directEditManager = new LabelDirectEditManager(this, TextCellEditor.class, locator);
        }
        if (getFigure().getLabel().isVisible()) {
            directEditManager.show();
        }
    }

    @Override
    public void performRequest(Request request) {
        if (request.getType() == RequestConstants.REQ_DIRECT_EDIT) {
            performDirectEdit();
        } else if (request.getType() == RequestConstants.REQ_OPEN) {
            performDirectEdit();
        }
    }

    @Override
    public void propertyChange(PropertyChangeEvent evt) {
        super.propertyChange(evt);
        if (PROPERTY_NAME.equals(evt.getPropertyName())) {
            getFigure().setName(getModel().getName());
        }
    }

}
TOP

Related Classes of org.jbpm.ui.common.part.graph.LabeledNodeGraphicalEditPart

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.