@Override protected void undoEditAction(DataflowImpl dataflow) { if (subEdits != null && subEdits.size() > 0) { for (int i = subEdits.size() - 1; i >= 0; i--) { Edit<?> edit = subEdits.get(i); if (edit.isApplied()) edit.undo(); } } }
@Override protected void undoEditAction(DataflowImpl dataflow) { if (linkEdits != null && linkEdits.size() > 0) { for (int i = linkEdits.size() - 1; i >= 0; i--) { Edit<?> edit = linkEdits.get(i); if (edit.isApplied()) edit.undo(); } } if (compoundEdits != null && compoundEdits.size() > 0) { for (int i = compoundEdits.size() - 1; i >= 0; i--) { Edit<?> edit = compoundEdits.get(i); if (edit.isApplied()) edit.undo(); } } }
@Override public void undo() { if (!applied) { throw new RuntimeException( "Attempt to undo edit that was never applied"); } if (linkUpEdit.isApplied()) linkUpEdit.undo(); if (compoundEdit1.isApplied()) compoundEdit1.undo(); applied = false; }
@Override protected void undoEditAction(DataflowImpl dataflow) { if (linkUpEdit.isApplied()) linkUpEdit.undo(); if (compoundEdit1.isApplied()) compoundEdit1.undo(); }
public void notify(Observable<EditManagerEvent> sender, EditManagerEvent message) throws Exception { events.add(message); if (message instanceof DataflowEditEvent) { DataflowEditEvent dataflowEdit = (DataflowEditEvent) message; assertTrue("Edit was not applied on edit event", dataflowEdit .getEdit().isApplied()); } else if (message instanceof DataFlowUndoEvent) { DataFlowUndoEvent dataflowUndo = (DataFlowUndoEvent) message; assertFalse("Edit was applied on undo event", dataflowUndo .getEdit().isApplied()); } else if (message instanceof DataFlowRedoEvent) { DataFlowRedoEvent dataflowEdit = (DataFlowRedoEvent) message; assertTrue("Edit was not applied on edit event", dataflowEdit .getEdit().isApplied()); } else { fail("Unknown event: " + message); } } }
@Test public void addProcessor() throws Exception { EditManager editManager = EditManager.getInstance(); editManager.addObserver(editManagerObserver); Edits edits = editManager.getEdits(); Edit<Dataflow> edit = edits.getAddProcessorEdit(dataflow, processor); assertFalse("Edit was already applied", edit.isApplied()); assertTrue("Did already add processor", dataflow.getProcessors() .isEmpty()); editManager.doDataflowEdit(dataflow, edit); assertTrue("Edit was not applied", edit.isApplied()); assertEquals("Did not add processor", processor, dataflow .getProcessors().get(0)); // Should have received the edit event assertEquals("Incorrect number of events", 1, editManagerObserver.events.size()); EditManagerEvent event = editManagerObserver.events.get(0); assertTrue("Event was not a DataflowEditEvent", event instanceof DataflowEditEvent); DataflowEditEvent dataEditEvent = (DataflowEditEvent) event; assertEquals("Event did not have correct dataflow", dataflow, dataEditEvent.getDataFlow()); assertEquals("Event did not have correct edit", edit, dataEditEvent .getEdit()); }
@Test public void undoAddProcessor() throws Exception { EditManager editManager = EditManager.getInstance(); editManager.addObserver(editManagerObserver); Edits edits = editManager.getEdits(); Edit<Dataflow> edit = edits.getAddProcessorEdit(dataflow, processor); editManager.doDataflowEdit(dataflow, edit); assertFalse("Did not add processor", dataflow.getProcessors().isEmpty()); editManager.undoDataflowEdit(dataflow); assertTrue("Did not undo add processor", dataflow.getProcessors() .isEmpty()); // Should have received the undo event assertEquals("Incorrect number of events", 2, editManagerObserver.events.size()); EditManagerEvent event = editManagerObserver.events.get(1); assertTrue("Event was not a DataflowEditEvent", event instanceof DataFlowUndoEvent); DataFlowUndoEvent dataEditEvent = (DataFlowUndoEvent) event; assertEquals("Event did not have correct dataflow", dataflow, dataEditEvent.getDataFlow()); assertEquals("Event did not have correct edit", edit, dataEditEvent .getEdit()); assertFalse("Edit was still applied", edit.isApplied()); }