@Override public void refreshView() { mergeView = new JPanel(); mergeView.setLayout(new BoxLayout(mergeView, BoxLayout.PAGE_AXIS)); mergeView.setBorder(new EmptyBorder(5, 5, 5, 5)); mergeView.add(new JLabel("Merge: " + merge.getLocalName())); mergeView.add(Box.createRigidArea(new Dimension(0,5))); mergeView.add(new JLabel("Inputs: ")); for (MergeInputPort mergeInputPort : merge.getInputPorts()) { mergeView.add(new JLabel(mergeInputPort.getName())); } mergeView.add(Box.createRigidArea(new Dimension(0,5))); mergeView.add(new JLabel("Outputs: ")); mergeView.add(new JLabel(merge.getOutputPort().getName())); } }
private void transferMerge(List<Edit<?>> editList, Map<Object, Object> oldNewMapping, Dataflow nestedDataflow, Merge merge) throws EditException { editList.add(edits.getRemoveMergeEdit(currentDataflow, merge)); Merge newMerge = edits.createMerge(nestedDataflow); edits.getAddMergeEdit(nestedDataflow, newMerge).doEdit(); oldNewMapping.put(merge, newMerge); for (MergeInputPort mip : merge.getInputPorts()) { MergeInputPort newMip = edits.createMergeInputPort(newMerge, mip.getName(), mip.getDepth()); edits.getAddMergeInputPortEdit(newMerge, newMip).doEdit(); oldNewMapping.put(mip, newMip); } oldNewMapping.put(merge.getOutputPort(), newMerge.getOutputPort()); }
public void actionPerformed(ActionEvent e) { try { List<? extends MergeInputPort> inputPorts = merge.getInputPorts(); EventForwardingOutputPort outputPort = merge.getOutputPort(); List<Edit<?>> editList = new ArrayList<Edit<?>>(); for (MergeInputPort inputPort : inputPorts) { Datalink datalink = inputPort.getIncomingLink(); if (datalink != null) { editList.add(Tools.getDisconnectDatalinkAndRemovePortsEdit(datalink)); } } for (Datalink datalink : outputPort.getOutgoingLinks()) { editList.add(Tools.getDisconnectDatalinkAndRemovePortsEdit(datalink)); } if (editList.isEmpty()) { editManager.doDataflowEdit(dataflow, edits.getRemoveMergeEdit(dataflow, merge)); } else { editList.add(edits.getRemoveMergeEdit(dataflow, merge)); editManager.doDataflowEdit(dataflow, new CompoundEdit(editList)); } dataflowSelectionModel.removeSelection(merge); } catch (EditException e1) { logger.debug("Delete merge failed", e1); } }
Merge merge = (Merge) dataflowObject; if (sourceObject != null) { Set<? extends Datalink> outgoingLinks = merge.getOutputPort().getOutgoingLinks(); if (outgoingLinks.size() == 1) { Datalink datalink = outgoingLinks.iterator().next();
if (merge.getOutputPort().equals(port)) { return merge;
Merge m = ((MergeInputPortImpl) link.getSink()).getMerge(); effectiveLink = (Datalink) m .getOutputPort().getOutgoingLinks().toArray()[0]; dataLinkSinkType = determineDatalinkType(effectiveLink.getSink());
Merge m = ((MergeInputPortImpl) link.getSink()).getMergeInstance(); ProcessorPort processorPort = (ProcessorPort) ((Datalink) m .getOutputPort().getOutgoingLinks().toArray()[0]).getSink(); Element proc = new Element(PROCESSOR, T2_WORKFLOW_NAMESPACE); proc.setText(processorPort.getProcessor().getLocalName()); Merge m = ((MergeOutputPortImpl) link.getSource()).getMerge(); ProcessorPort processorPort = (ProcessorPort) ((Datalink) m .getOutputPort().getOutgoingLinks().toArray()[0]).getSink(); Element proc = new Element(PROCESSOR, T2_WORKFLOW_NAMESPACE); proc.setText(processorPort.getProcessor().getLocalName());
Set<? extends Datalink> outgoingLinks = merge.getOutputPort() .getOutgoingLinks(); if (outgoingLinks.size() == 1) {
@Test public void undo() throws Exception { Edit<Merge> theEdit = new ConnectMergedDatalinkEdit(merge,sourcePort,sinkPort); theEdit.doEdit(); theEdit.undo(); assertEquals(0,merge.getInputPorts().size()); assertEquals(0,merge.getOutputPort().getOutgoingLinks().size()); assertEquals(0,sourcePort.getOutgoingLinks().size()); assertNull(sinkPort.getIncomingLink()); }
OutputPort outputPort = merge.getOutputPort(); GraphNode portNode = createGraphNode(); portNode.setId("o" + outputPort.getName());
@Test public void redo() throws Exception { Edit<Merge> theEdit = new ConnectMergedDatalinkEdit(merge,sourcePort,sinkPort); theEdit.doEdit(); theEdit.undo(); theEdit.doEdit(); assertEquals(1,merge.getInputPorts().size()); assertTrue(merge.getInputPorts().get(0) instanceof MergeInputPort); assertSame(sourcePort,merge.getInputPorts().get(0).getIncomingLink().getSource()); assertEquals(1,merge.getOutputPort().getOutgoingLinks().size()); assertSame(sinkPort,merge.getOutputPort().getOutgoingLinks().toArray(new Datalink[]{})[0].getSink()); assertEquals(1,sourcePort.getOutgoingLinks().size()); assertTrue(sourcePort.getOutgoingLinks().toArray(new Datalink[]{})[0].getSink() instanceof MergeInputPort); assertTrue(sinkPort.getIncomingLink().getSource() instanceof MergeOutputPort); assertSame(merge.getInputPorts().get(0),sourcePort.getOutgoingLinks().toArray(new Datalink[]{})[0].getSink()); assertSame(sinkPort.getIncomingLink().getSource(),merge.getOutputPort()); }
.getSource(), mergeInputPort); editList.add(edits.getConnectDatalinkEdit(datalink)); datalink = edits.createDatalink(merge.getOutputPort(), incomingLink.getSink()); editList.add(edits.getConnectDatalinkEdit(datalink));
Edit<Merge> theEdit = new ConnectMergedDatalinkEdit(merge,sourcePort,sinkPort); assertEquals(0,merge.getInputPorts().size()); assertNotNull(merge.getOutputPort()); assertTrue(merge.getOutputPort() instanceof MergeOutputPort); assertEquals(0,merge.getOutputPort().getOutgoingLinks().size()); assertSame(merge,((MergeOutputPort)merge.getOutputPort()).getMerge()); assertSame(sourcePort,merge.getInputPorts().get(0).getIncomingLink().getSource()); assertEquals(1,merge.getOutputPort().getOutgoingLinks().size()); assertSame(sinkPort,merge.getOutputPort().getOutgoingLinks().toArray(new Datalink[]{})[0].getSink()); assertSame(sinkPort.getIncomingLink().getSource(),merge.getOutputPort()); assertEquals(1,merge.getOutputPort().getOutgoingLinks().size()); assertEquals(2,merge.getInputPorts().size()); assertTrue(merge.getInputPorts().get(1) instanceof MergeInputPort);
.getSource(), mergeInputPort); editList.add(edits.getConnectDatalinkEdit(datalink)); datalink = edits.createDatalink(merge.getOutputPort(), incomingLink.getSink()); editList.add(edits.getConnectDatalinkEdit(datalink));
/** * Check that the outgoing link to the sink port is retained when undoing a second merged input. */ @Test public void undoSecond() throws Exception { Edit<Merge> theEdit = new ConnectMergedDatalinkEdit(merge,sourcePort,sinkPort); theEdit.doEdit(); ProcessorImpl p3=new ProcessorImpl(); ProcessorOutputPortImpl sourcePort2=new ProcessorOutputPortImpl(p3,"source_port2",0,0); Edit<Merge> theEdit2 = new ConnectMergedDatalinkEdit(merge,sourcePort2,sinkPort); theEdit2.doEdit(); theEdit2.undo(); assertEquals(1,merge.getInputPorts().size()); assertEquals(1,merge.getOutputPort().getOutgoingLinks().size()); }
Object[] links = merge.getOutputPort().getOutgoingLinks().toArray();
} else { Port sinkPort = null; for (Datalink datalink : merge.getOutputPort() .getOutgoingLinks()) { sinkPort = datalink.getSink();