Search in sources :

Example 1 with CreateNewConnectedNodeCommand

use of org.knime.workbench.editor2.commands.CreateNewConnectedNodeCommand in project knime-core by knime.

the class WorkflowEditor method addNode.

/**
 * Listener interface method of the {@link NodeProvider}. Called when other
 * instances want to add a node to the workflow in the editor. <br>
 * The implementation only adds it if the editor is active and one node is
 * selected in the editor, to which the new node will then be connected to.
 * {@inheritDoc}
 */
@Override
public boolean addNode(final NodeFactory<? extends NodeModel> nodeFactory) {
    if (!isEditorActive()) {
        return false;
    }
    if (!getWorkflowManager().isPresent()) {
        return false;
    }
    NodeContainerEditPart preNode = getTheOneSelectedNode();
    Point nodeLoc = null;
    Command newNodeCmd = null;
    if (preNode == null) {
        nodeLoc = getViewportCenterLocation();
        // this command accepts/requires relative coordinates
        newNodeCmd = new CreateNodeCommand(unwrapWFM(m_manager), nodeFactory, nodeLoc, getEditorSnapToGrid());
    } else {
        nodeLoc = getLocationRightOf(preNode);
        newNodeCmd = new CreateNewConnectedNodeCommand(getViewer(), unwrapWFM(m_manager), nodeFactory, nodeLoc, preNode.getNodeContainer().getID());
    }
    getCommandStack().execute(newNodeCmd);
    // after adding a node the editor should get the focus
    // this is issued asynchronously, in order to avoid bug #3029
    Display.getDefault().asyncExec(new Runnable() {

        @Override
        public void run() {
            setFocus();
        }
    });
    return true;
}
Also used : NodeContainerEditPart(org.knime.workbench.editor2.editparts.NodeContainerEditPart) CreateNewConnectedNodeCommand(org.knime.workbench.editor2.commands.CreateNewConnectedNodeCommand) CreateNewConnectedNodeCommand(org.knime.workbench.editor2.commands.CreateNewConnectedNodeCommand) CreateNodeCommand(org.knime.workbench.editor2.commands.CreateNodeCommand) Command(org.eclipse.gef.commands.Command) CreateNewConnectedMetaNodeCommand(org.knime.workbench.editor2.commands.CreateNewConnectedMetaNodeCommand) Point(org.eclipse.draw2d.geometry.Point) PrecisionPoint(org.eclipse.draw2d.geometry.PrecisionPoint) CreateNodeCommand(org.knime.workbench.editor2.commands.CreateNodeCommand)

Aggregations

Point (org.eclipse.draw2d.geometry.Point)1 PrecisionPoint (org.eclipse.draw2d.geometry.PrecisionPoint)1 Command (org.eclipse.gef.commands.Command)1 CreateNewConnectedMetaNodeCommand (org.knime.workbench.editor2.commands.CreateNewConnectedMetaNodeCommand)1 CreateNewConnectedNodeCommand (org.knime.workbench.editor2.commands.CreateNewConnectedNodeCommand)1 CreateNodeCommand (org.knime.workbench.editor2.commands.CreateNodeCommand)1 NodeContainerEditPart (org.knime.workbench.editor2.editparts.NodeContainerEditPart)1