repaintAndWait(3);
}
private void modifyWorkflow(Workflow workflow) throws ComponentException, ComponentRegistryException,
GraphException {
WSGraph graph = workflow.getGraph();
OutputComponent outputComponent = new OutputComponent();
LocalComponentRegistry registry = new LocalComponentRegistry(XBayaPathConstants.WSDL_DIRECTORY);
Component adderComponent = registry.getComponent(Adder.WSDL_PATH);
Component multiplierComponent = registry.getComponent(Multiplier.WSDL_PATH);
NodeImpl c = graph.getNode("c");
NodeImpl d = graph.getNode("d");
NodeImpl adder = graph.getNode("Adder_add");
NodeImpl adder2 = graph.getNode("Adder_add_2");
NodeImpl multiplier = graph.getNode("Multiplier_multiply");
// Remove Adder_2 and replace with Multiplier_2.
graph.removeNode(adder2);
repaintAndWait(1);
Node multiplier2 = workflow.addNode(multiplierComponent);
multiplier2.setPosition(new Point(170, 210));
repaintAndWait(1);
graph.addEdge(c.getOutputPort(0), multiplier2.getInputPort(0));
repaintAndWait(1);
graph.addEdge(d.getOutputPort(0), multiplier2.getInputPort(1));
repaintAndWait(1);
graph.addEdge(multiplier2.getOutputPort(0), multiplier.getInputPort(1));
repaintAndWait(1);
// Add one more adder and an output.
Node adder3 = workflow.addNode(adderComponent);
adder3.setPosition(new Point(320, 300));
repaintAndWait(1);
graph.addEdge(adder.getOutputPort(0), adder3.getInputPort(0));
repaintAndWait(1);
graph.addEdge(multiplier2.getOutputPort(0), adder3.getInputPort(1));
repaintAndWait(1);
Node output2 = workflow.addNode(outputComponent);
output2.setPosition(new Point(500, 300));
repaintAndWait(1);
graph.addEdge(adder3.getOutputPort(0), output2.getInputPort(0));
repaintAndWait(1);
}