Revision: 5b6faa2c8d38 Branch: rt1835-UndoRemoveElement Author: Brandon Roller<brandon.r.roller@xxxxxxxxx> Date: Mon Dec 22 19:03:56 2014 UTC Log: Added redo event for removing whitespace https://code.google.com/p/brailleblaster/source/detail?r=5b6faa2c8d38 Modified: /src/main/org/brailleblaster/perspectives/braille/eventQueue/RedoQueue.java/src/main/org/brailleblaster/perspectives/braille/stylers/WhiteSpaceHandler.java
=======================================--- /src/main/org/brailleblaster/perspectives/braille/eventQueue/RedoQueue.java Mon Dec 22 15:26:49 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/eventQueue/RedoQueue.java Mon Dec 22 19:03:56 2014 UTC
@@ -7,6 +7,7 @@ import org.brailleblaster.perspectives.braille.stylers.HideActionHandler; import org.brailleblaster.perspectives.braille.stylers.StyleHandler; import org.brailleblaster.perspectives.braille.stylers.TextUpdateHandler; +import org.brailleblaster.perspectives.braille.stylers.WhiteSpaceHandler;import org.brailleblaster.perspectives.braille.viewInitializer.ViewInitializer;
public class RedoQueue extends EventQueue{ @@ -40,6 +41,10 @@ StyleHandler s = new StyleHandler(manager, vi, list); s.redoStyle(frame); break; + case Whitespace: + WhiteSpaceHandler wsh = new WhiteSpaceHandler(manager, list); + wsh.redoDelete(frame); + break; default: break; } =======================================--- /src/main/org/brailleblaster/perspectives/braille/stylers/WhiteSpaceHandler.java Mon Dec 22 18:32:06 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/stylers/WhiteSpaceHandler.java Mon Dec 22 19:03:56 2014 UTC
@@ -17,6 +17,7 @@ TextView text; BrailleView braille; MapList list; + EventFrame eventFrame; public WhiteSpaceHandler(Manager manager, MapList list){ this.manager = manager; @@ -26,6 +27,7 @@ } public void removeWhitespace(Message message){ + eventFrame = new EventFrame(); int brailleStart = 0; list.checkList(); if(!list.empty()){ @@ -54,12 +56,18 @@ else braille.removeWhitespace(0, (Integer)message.getValue("length"));- addUndoEvent((Integer)message.getValue("offset"), brailleStart, (String)message.getValue("replacedText")); + eventFrame.addEvent(new ViewEvent(EventTypes.Whitespace, (Integer)message.getValue("offset"), brailleStart, (String)message.getValue("replacedText")));
+ manager.addUndoEvent(eventFrame); } public void UndoDelete(EventFrame frame){- while(!frame.empty() && frame.peek().getEventType().equals(EventTypes.Whitespace))
- insertWhitespace((ViewEvent)frame.pop()); + eventFrame = new EventFrame();+ while(!frame.empty() && frame.peek().getEventType().equals(EventTypes.Whitespace)){
+ ViewEvent ev = (ViewEvent)frame.pop(); + insertWhitespace(ev); + eventFrame.addEvent(ev); + } + manager.addRedoEvent(eventFrame); } private void insertWhitespace(ViewEvent ev){ @@ -80,9 +88,13 @@ } } - private void addUndoEvent(int textStart, int brailleStart, String text){ - EventFrame frame = new EventFrame();- frame.addEvent( new ViewEvent(EventTypes.Whitespace, textStart, brailleStart, text));
- manager.addUndoEvent(frame); + public void redoDelete(EventFrame frame){+ while(!frame.empty() && frame.peek().getEventType().equals(EventTypes.Whitespace))
+ removeWhitespace((ViewEvent)frame.pop()); + } + + private void removeWhitespace(ViewEvent ev){+ text.setCurrentSelection(ev.getTextOffset(), ev.getTextOffset() + ev.getText().length());
+ text.cut(); } }