Search in sources :

Example 1 with Edge

use of org.apache.airavata.workflow.model.graph.Edge in project airavata by apache.

the class GraphCanvas method connect.

/**
 * Connects two ports specified.
 *
 * @param fromPort
 * @param toPort
 */
private void connect(Port fromPort, Port toPort) {
    try {
        // check the validity of the connection.
        Edge edge = this.graph.addEdge(fromPort, toPort);
        selectEdge(edge);
    } catch (GraphException e) {
        logger.error(e.getMessage(), e);
        this.engine.getGUI().getErrorWindow().warning(e.getMessage());
    } catch (RuntimeException e) {
        logger.error(e.getMessage(), e);
        this.engine.getGUI().getErrorWindow().error(ErrorMessages.UNEXPECTED_ERROR);
    }
}
Also used : GraphException(org.apache.airavata.workflow.model.graph.GraphException) WorkflowRuntimeException(org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException) Edge(org.apache.airavata.workflow.model.graph.Edge)

Example 2 with Edge

use of org.apache.airavata.workflow.model.graph.Edge in project airavata by apache.

the class GraphCanvas method maybeShowPopup.

private void maybeShowPopup(MouseEvent event) {
    if (event.isPopupTrigger()) {
        GraphPiece piece = NodeController.getGUI(this.graph).getGraphPieceAt(event.getPoint());
        if (piece instanceof Node) {
            prepareNodePopupMenu((Node) piece);
            this.nodePopup.show(event.getComponent(), event.getX(), event.getY());
        } else if (piece instanceof Edge) {
            this.edgePopup.show(event.getComponent(), event.getX(), event.getY());
        }
    }
}
Also used : GraphPiece(org.apache.airavata.workflow.model.graph.GraphPiece) InputNode(org.apache.airavata.workflow.model.graph.system.InputNode) DynamicNode(org.apache.airavata.workflow.model.graph.dynamic.DynamicNode) Node(org.apache.airavata.workflow.model.graph.Node) StreamSourceNode(org.apache.airavata.workflow.model.graph.system.StreamSourceNode) Edge(org.apache.airavata.workflow.model.graph.Edge)

Example 3 with Edge

use of org.apache.airavata.workflow.model.graph.Edge in project airavata by apache.

the class GraphGUI method paint.

/**
 * @param g
 */
protected void paint(Graphics2D g) {
    // Calcurate the widge of the nodes.
    for (Node node : this.graph.getNodes()) {
        NodeController.getGUI(node).calculatePositions(g);
    }
    LinkedList<Node> nodes = new LinkedList<Node>(this.graph.getNodes());
    List<MemoNode> memoNodes = GraphUtil.getNodes(this.graph, MemoNode.class);
    nodes.removeAll(memoNodes);
    // Paints the edges before nodes.
    for (Edge edge : this.graph.getEdges()) {
        NodeController.getGUI(edge).paint(g);
    }
    // The ports are painted from inside of each node.
    for (Node node : nodes) {
        NodeController.getGUI(node).paint(g);
    }
    // Print memoNodes at last so that they stay on top of everything.
    for (MemoNode node : memoNodes) {
        NodeController.getGUI(node).paint(g);
    }
}
Also used : MemoNode(org.apache.airavata.workflow.model.graph.system.MemoNode) StreamSourceNode(org.apache.airavata.workflow.model.graph.system.StreamSourceNode) Node(org.apache.airavata.workflow.model.graph.Node) MemoNode(org.apache.airavata.workflow.model.graph.system.MemoNode) Edge(org.apache.airavata.workflow.model.graph.Edge) LinkedList(java.util.LinkedList)

Example 4 with Edge

use of org.apache.airavata.workflow.model.graph.Edge in project airavata by apache.

the class GraphImpl method removePort.

/**
 * @param port
 * @throws GraphException
 */
public void removePort(Port port) throws GraphException {
    if (port == null) {
        throw new IllegalArgumentException("null");
    }
    if (!this.ports.contains(port)) {
        throw new GraphException("The graph doesn't contain the port that is being removed.");
    }
    // copy it so that we can remove edge without worrying about the
    // iteration issue.
    ArrayList<Edge> edgesToBeRemoved = new ArrayList<Edge>(port.getEdges());
    for (Edge edge : edgesToBeRemoved) {
        removeEdge(edge);
    }
    this.ports.remove(port);
}
Also used : GraphException(org.apache.airavata.workflow.model.graph.GraphException) ArrayList(java.util.ArrayList) Edge(org.apache.airavata.workflow.model.graph.Edge) DataEdge(org.apache.airavata.workflow.model.graph.DataEdge)

Example 5 with Edge

use of org.apache.airavata.workflow.model.graph.Edge in project airavata by apache.

the class InputNode method edgeWasRemoved.

/**
 * Called whan an Edge was removed from the parameter port. Change the name of the node.
 *
 * @see org.apache.airavata.workflow.model.graph.impl.NodeImpl#edgeWasRemoved(org.apache.airavata.workflow.model.graph.impl.EdgeImpl)
 */
@Override
protected void edgeWasRemoved(Edge removedEdge) {
    super.edgeWasRemoved(removedEdge);
    // TODO organize this.
    List<DataEdge> edges = getEdges();
    if (edges.size() == 0) {
        setParameterType(null);
        if (!isConfigured()) {
            // Reset
            setName(getComponent().getName());
            setDescription("");
            setDefaultValue(null);
            setMetadata(null);
        }
    } else {
        Edge edge = edges.get(0);
        Port toPort = edge.getToPort();
        WSPort toWsPort = (WSPort) toPort;
        DataType toType = toWsPort.getType();
        setParameterType(toType);
        if (!isConfigured()) {
            // Copy
            copyDefaultConfiguration(toWsPort);
        }
    }
}
Also used : WSPort(org.apache.airavata.workflow.model.graph.ws.WSPort) DataEdge(org.apache.airavata.workflow.model.graph.DataEdge) DataPort(org.apache.airavata.workflow.model.graph.DataPort) WSPort(org.apache.airavata.workflow.model.graph.ws.WSPort) WSComponentPort(org.apache.airavata.workflow.model.component.ws.WSComponentPort) Port(org.apache.airavata.workflow.model.graph.Port) DataType(org.apache.airavata.model.appcatalog.appinterface.DataType) Edge(org.apache.airavata.workflow.model.graph.Edge) DataEdge(org.apache.airavata.workflow.model.graph.DataEdge)

Aggregations

Edge (org.apache.airavata.workflow.model.graph.Edge)11 Port (org.apache.airavata.workflow.model.graph.Port)6 DataEdge (org.apache.airavata.workflow.model.graph.DataEdge)5 Node (org.apache.airavata.workflow.model.graph.Node)5 DataPort (org.apache.airavata.workflow.model.graph.DataPort)4 StreamSourceNode (org.apache.airavata.workflow.model.graph.system.StreamSourceNode)4 WSPort (org.apache.airavata.workflow.model.graph.ws.WSPort)4 WSComponentPort (org.apache.airavata.workflow.model.component.ws.WSComponentPort)3 GraphPiece (org.apache.airavata.workflow.model.graph.GraphPiece)3 InputNode (org.apache.airavata.workflow.model.graph.system.InputNode)3 DataType (org.apache.airavata.model.appcatalog.appinterface.DataType)2 DataType (org.apache.airavata.model.application.io.DataType)2 GraphException (org.apache.airavata.workflow.model.graph.GraphException)2 DynamicNode (org.apache.airavata.workflow.model.graph.dynamic.DynamicNode)2 MemoNode (org.apache.airavata.workflow.model.graph.system.MemoNode)2 Point (java.awt.Point)1 ArrayList (java.util.ArrayList)1 LinkedList (java.util.LinkedList)1 WorkflowRuntimeException (org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException)1 EPRPort (org.apache.airavata.workflow.model.graph.EPRPort)1