use of org.knime.workbench.editor2.commands.DropNodeCommand in project knime-core by knime.
the class NewWorkflowContainerEditPolicy method getCreateCommand.
/**
* {@inheritDoc}
*/
@Override
protected Command getCreateCommand(final CreateRequest request) {
// point where the command occurred
// The node/description should be initially located here
boolean snapToGrid = WorkflowEditor.getActiveEditorSnapToGrid();
WorkflowRootEditPart workflowPart = (WorkflowRootEditPart) this.getHost();
if (!Wrapper.wraps(workflowPart.getWorkflowManager(), WorkflowManager.class)) {
// adding new nodes not supported yet by UI-interfaces and implemenations
LOGGER.error("Adding new nodes not supported by '" + workflowPart.getWorkflowManager().getClass().getSimpleName() + "'.");
return null;
}
WorkflowManager manager = Wrapper.unwrapWFM(workflowPart.getWorkflowManager());
if (request instanceof CreateDropRequest) {
Object obj = request.getNewObject();
CreateDropRequest cdr = (CreateDropRequest) request;
if (obj instanceof NodeFactory) {
return handleNodeDrop(manager, (NodeFactory<? extends NodeModel>) obj, cdr);
} else if (obj instanceof AbstractExplorerFileStore) {
AbstractExplorerFileStore fs = (AbstractExplorerFileStore) obj;
if (AbstractExplorerFileStore.isWorkflowTemplate(fs)) {
return handleMetaNodeTemplateDrop(manager, cdr, fs);
}
} else if (obj instanceof WorkflowPersistor) {
return handleMetaNodeDrop(manager, (WorkflowPersistor) obj, cdr);
} else if (obj instanceof ReaderNodeSettings) {
ReaderNodeSettings settings = (ReaderNodeSettings) obj;
return new DropNodeCommand(manager, settings.getFactory(), new NodeCreationContext(settings.getUrl()), request.getLocation(), snapToGrid);
} else {
LOGGER.error("Illegal drop object: " + obj);
}
}
return null;
}
Aggregations