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);
}
}
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());
}
}
}
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);
}
}
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);
}
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);
}
}
}
Aggregations