Revision: d4e2dcd7764f Branch: rt1835-UndoRemoveElement Author: Brandon Roller<brandon.r.roller@xxxxxxxxx> Date: Wed Dec 10 14:36:26 2014 UTC Log: Added redo for text updates https://code.google.com/p/brailleblaster/source/detail?r=d4e2dcd7764f Modified: /src/main/org/brailleblaster/perspectives/braille/Manager.java /src/main/org/brailleblaster/perspectives/braille/eventQueue/Event.java /src/main/org/brailleblaster/perspectives/braille/eventQueue/RedoQueue.java/src/main/org/brailleblaster/perspectives/braille/stylers/TextUpdateHandler.java
=======================================--- /src/main/org/brailleblaster/perspectives/braille/Manager.java Tue Dec 9 16:18:02 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/Manager.java Wed Dec 10 14:36:26 2014 UTC
@@ -59,6 +59,7 @@ import org.brailleblaster.perspectives.braille.document.BrailleDocument; import org.brailleblaster.perspectives.braille.eventQueue.EventFrame; import org.brailleblaster.perspectives.braille.eventQueue.EventQueue; +import org.brailleblaster.perspectives.braille.eventQueue.EventTypes; import org.brailleblaster.perspectives.braille.eventQueue.RedoQueue; import org.brailleblaster.perspectives.braille.eventQueue.UndoQueue;import org.brailleblaster.perspectives.braille.mapping.elements.BrlOnlyMapElement;
@@ -1689,10 +1690,14 @@ public void addUndoEvent(EventFrame f){ undoQueue.add(f); } + + public void addRedoEvent(EventFrame f){ + redoQueue.add(f); + } public void undo(){ EventFrame f = undoQueue.popEvent(vi, document, list, this); - if(f != null) + if(f != null && !f.get(0).getEventType().equals(EventTypes.Update)) redoQueue.add(f); } =======================================--- /src/main/org/brailleblaster/perspectives/braille/eventQueue/Event.java Thu Dec 4 16:29:20 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/eventQueue/Event.java Wed Dec 10 14:36:26 2014 UTC
@@ -55,4 +55,8 @@ public int getFirstSectionIndex(){ return firstSectionIndex; } + + public EventTypes getEventType(){ + return eventType; + } } =======================================--- /src/main/org/brailleblaster/perspectives/braille/eventQueue/RedoQueue.java Tue Dec 9 21:34:17 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/eventQueue/RedoQueue.java Wed Dec 10 14:36:26 2014 UTC
@@ -22,6 +22,8 @@ Event event = f.get(i); switch(event.eventType){ case Update: + TextUpdateHandler tuh = new TextUpdateHandler(manager, vi, list); + tuh.updateText(event); break; case Insert: break; =======================================--- /src/main/org/brailleblaster/perspectives/braille/stylers/TextUpdateHandler.java Tue Dec 9 21:34:17 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/stylers/TextUpdateHandler.java Wed Dec 10 14:36:26 2014 UTC
@@ -41,13 +41,8 @@ message.put("diff", 0); } else { - if(!message.contains("redoEvent")) - addEvent(); - document.updateDOM(list, message); - braille.updateBraille(list.getCurrent(), message); - text.reformatText(list.getCurrent().n, message, manager); - list.updateOffsets(list.getCurrentIndex(), message); - list.checkList(); + addUndoEvent(); + resetText(message); } manager.getArchiver().setDocumentEdited(true); } @@ -55,27 +50,34 @@ public void updateText(Event ev){ list.setCurrent(ev.getListIndex()); manager.dispatch(Message.createUpdateCursorsMessage(Sender.TREE)); + addRedoEvent();Message m = Message.createUpdateMessage(list.getCurrent().start, ev.getNode().getValue(), list.getCurrent().end - list.getCurrent().start);
- m.put("redoEvent", true); - updateText(m); - - /* - int start = list.getCurrent().start; - int end = list.getCurrent().end; + resetText(m); + } - text.setCurrentSelection(start, end); - - text.view.replaceTextRange(start, end - start, ev.getNode().getValue()); - text.update(true); - */ + private void resetText(Message message){ + document.updateDOM(list, message); + braille.updateBraille(list.getCurrent(), message); + text.reformatText(list.getCurrent().n, message, manager); + list.updateOffsets(list.getCurrentIndex(), message); + list.checkList(); + } + + private void addUndoEvent(){ + manager.addUndoEvent(addEvent()); + } + + private void addRedoEvent(){ + manager.addRedoEvent(addEvent()); } - private void addEvent(){ + private EventFrame addEvent(){ EventFrame f = new EventFrame(); TextMapElement t = list.getCurrent();Event e = new Event(EventTypes.Update, t.n, vi.getStartIndex(), list.getCurrentIndex(), t.start,
t.brailleList.getFirst().start, treeView.getItemPath()); f.addEvent(e); - manager.addUndoEvent(f); + + return f; } }