return (AbstractNode) input;
} else if (input instanceof AbstractNodeFacade) {
AbstractNodeFacade facade = (AbstractNodeFacade) input;
answer = facade.getAbstractNode();
} else if (input instanceof ContainerShapeEditPart) {
ContainerShapeEditPart editPart = (ContainerShapeEditPart) input;
PictogramElement element = editPart.getPictogramElement();
if (Activator.getDiagramEditor() != null) {
if (element != null && element instanceof Diagram) {
// route selected - this makes properties view work when route is
// selected in the diagram view
answer = Activator.getDiagramEditor().getSelectedRoute() != null ? Activator.getDiagramEditor().getSelectedRoute() : Activator.getDiagramEditor().getModel();
} else {
// select the node
answer = (AbstractNode)Activator.getDiagramEditor().getFeatureProvider().getBusinessObjectForPictogramElement(element);
}
}
} else if (input instanceof AbstractEditPart) {
AbstractEditPart editPart = (AbstractEditPart) input;
Object model = editPart.getModel();
answer = toAbstractNode(model);
} else if (input instanceof ContainerShape) {
ContainerShape shape = (ContainerShape) input;
answer = (AbstractNode)Activator.getDiagramEditor().getFeatureProvider().getBusinessObjectForPictogramElement(shape);
}