/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.workflow.parts;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.GraphicalEditPart;
import org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy;
import org.eclipse.gef.handles.MoveHandle;
import de.rcenvironment.core.component.model.api.ComponentShape;
import de.rcenvironment.core.component.workflow.model.api.WorkflowNode;
import de.rcenvironment.core.gui.workflow.editor.handlers.OvalBorderMoveHandle;
/**
* Read-only EditPart representing a {@link WorkflowNode}.
*
* @author Martin Misiak
*/
public class ReadOnlyWorkflowNodePart extends WorkflowNodePart {
private static final Log LOGGER = LogFactory.getLog(ReadOnlyWorkflowNodePart.class);
public ReadOnlyWorkflowNodePart() {}
@Override
protected void createEditPolicies() {
installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new SelectionHandlesEditPolicy() {
@Override
protected List<MoveHandle> createSelectionHandles() {
List<MoveHandle> list = new ArrayList<>();
GraphicalEditPart child = (GraphicalEditPart) getHost();
if (child instanceof WorkflowNodePart
&& ((WorkflowNode) ((WorkflowNodePart) child).getModel()).getComponentDescription().getComponentInstallation()
.getComponentRevision().getComponentInterface().getShape() == ComponentShape.CIRCLE) {
list.add(new OvalBorderMoveHandle(child));
} else {
list.add(new MoveHandle(child));
}
return list;
}
});
}
}