Revision: 26ea9bc780e4 Branch: rt1835-UndoRemoveElement Author: Brandon Roller<brandon.r.roller@xxxxxxxxx> Date: Wed Dec 10 20:14:45 2014 UTCLog: Added class for handling text changes to whitespace between elements
https://code.google.com/p/brailleblaster/source/detail?r=26ea9bc780e4 Added:/src/main/org/brailleblaster/perspectives/braille/stylers/WhiteSpaceHandler.java
Modified: /src/main/org/brailleblaster/perspectives/braille/Manager.java /src/main/org/brailleblaster/perspectives/braille/messages/BBEvent.java /src/main/org/brailleblaster/perspectives/braille/messages/Message.java /src/main/org/brailleblaster/settings/SettingsManager.java ======================================= --- /dev/null+++ /src/main/org/brailleblaster/perspectives/braille/stylers/WhiteSpaceHandler.java Wed Dec 10 20:14:45 2014 UTC
@@ -0,0 +1,54 @@ +package org.brailleblaster.perspectives.braille.stylers; + +import org.brailleblaster.perspectives.braille.Manager;+import org.brailleblaster.perspectives.braille.mapping.elements.TextMapElement;
+import org.brailleblaster.perspectives.braille.mapping.maps.MapList; +import org.brailleblaster.perspectives.braille.messages.Message; +import org.brailleblaster.perspectives.braille.views.wp.BrailleView; +import org.brailleblaster.perspectives.braille.views.wp.TextView; + +public class WhiteSpaceHandler { + + Manager manager; + TextView text; + BrailleView braille; + MapList list; + + public WhiteSpaceHandler(Manager manager, MapList list){ + this.manager = manager; + this.text = manager.getText(); + this.braille = manager.getBraille(); + this.list = list; + } + + public void removeWhitespace(Message message){ + int brailleStart = 0; + list.checkList(); + if(list.size() > 0){ + int start = (Integer)message.getValue("offset"); + int index = list.findClosest(message, 0, list.size() - 1); + TextMapElement t = list.get(index); + if(start < t.start){ + if(index > 0){ + if(t.brailleList.size() > 0)+ brailleStart = t.brailleList.getFirst().start + (Integer)message.getValue("length");
+ } + else{ + brailleStart = 0; + } + } + else if(t.brailleList.size() > 0) + brailleStart = t.brailleList.getLast().end; ++ braille.removeWhitespace(brailleStart, (Integer)message.getValue("length"));
+ + if(start >= t.end && index != list.size() - 1 && list.size() > 1)+ list.shiftOffsetsFromIndex(index + 1, (Integer)message.getValue("length"), (Integer)message.getValue("length")); + else if(index != list.size() -1 || (index == list.size() - 1 && start < t.start)) + list.shiftOffsetsFromIndex(index, (Integer)message.getValue("length"), (Integer)message.getValue("length"));
+ } + else + braille.removeWhitespace(0, (Integer)message.getValue("length")); + } + +} =======================================--- /src/main/org/brailleblaster/perspectives/braille/Manager.java Wed Dec 10 14:36:26 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/Manager.java Wed Dec 10 20:14:45 2014 UTC
@@ -78,6 +78,7 @@ import org.brailleblaster.perspectives.braille.stylers.ElementSplitter; import org.brailleblaster.perspectives.braille.stylers.HideActionHandler; import org.brailleblaster.perspectives.braille.stylers.TextUpdateHandler; +import org.brailleblaster.perspectives.braille.stylers.WhiteSpaceHandler; import org.brailleblaster.search.*; import org.brailleblaster.perspectives.braille.viewInitializer.ViewFactory;import org.brailleblaster.perspectives.braille.viewInitializer.ViewInitializer;
@@ -431,7 +432,7 @@ case GET_CURRENT: handleGetCurrent(message); break; - case TEXT_DELETION: + case WHITESPACE_DELETION: handleTextDeletion(message); break; case UPDATE: @@ -623,33 +624,8 @@ } private void handleTextDeletion(Message message){ - int brailleStart = 0; - list.checkList(); - if(list.size() > 0){ - int start = (Integer)message.getValue("offset"); - int index = list.findClosest(message, 0, list.size() - 1); - TextMapElement t = list.get(index); - if(start < t.start){ - if(index > 0){ - if(t.brailleList.size() > 0)- brailleStart = t.brailleList.getFirst().start + (Integer)message.getValue("length");
- } - else{ - brailleStart = 0; - } - } - else if(t.brailleList.size() > 0) - brailleStart = t.brailleList.getLast().end; -- braille.removeWhitespace(brailleStart, (Integer)message.getValue("length"));
- - if(start >= t.end && index != list.size() - 1 && list.size() > 1)- list.shiftOffsetsFromIndex(index + 1, (Integer)message.getValue("length"), (Integer)message.getValue("length")); - else if(index != list.size() -1 || (index == list.size() - 1 && start < t.start)) - list.shiftOffsetsFromIndex(index, (Integer)message.getValue("length"), (Integer)message.getValue("length"));
- } - else - braille.removeWhitespace(0, (Integer)message.getValue("length")); + WhiteSpaceHandler wsp = new WhiteSpaceHandler(this, list); + wsp.removeWhitespace(message); } private void handleUpdate(Message message){ @@ -683,12 +659,10 @@ text.update(false);ArrayList<Integer>posList = list.findTextMapElementRange(list.getCurrentIndex(), (Element)list.getCurrent().n.getParent(), true);
- if (arch.getCurrentConfig().equals("epub.cfg")){ + if (arch.getCurrentConfig().equals("epub.cfg"))text.insertNewNode(list.get(posList.get(posList.size() - 1)).end,"aside");
- } - else{ + elsetext.insertNewNode(list.get(posList.get(posList.size() - 1)).end,"prodnote");
- } Styles style = styles.get("trnote");Message styleMessage = Message.createUpdateStyleMessage(style, false, false);
=======================================--- /src/main/org/brailleblaster/perspectives/braille/messages/BBEvent.java Mon Dec 1 16:01:25 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/messages/BBEvent.java Wed Dec 10 20:14:45 2014 UTC
@@ -33,7 +33,7 @@ public enum BBEvent { INCREMENT, DECREMENT, - TEXT_DELETION, + WHITESPACE_DELETION, UPDATE, INSERT_NODE, REMOVE_NODE, =======================================--- /src/main/org/brailleblaster/perspectives/braille/messages/Message.java Mon Dec 1 16:01:25 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/messages/Message.java Wed Dec 10 20:14:45 2014 UTC
@@ -157,7 +157,7 @@ }public static Message createTextDeletionMessage(int offset, int length, boolean update){
- Message m = new Message(BBEvent.TEXT_DELETION); + Message m = new Message(BBEvent.WHITESPACE_DELETION); m.put("offset", offset); m.put("length", length); m.put("update", update); =======================================--- /src/main/org/brailleblaster/settings/SettingsManager.java Tue Nov 25 18:49:04 2014 UTC +++ /src/main/org/brailleblaster/settings/SettingsManager.java Wed Dec 10 20:14:45 2014 UTC
@@ -193,17 +193,17 @@ private void saveSettings(){ File f = new File(USER_SETTINGS); - try { - if(!f.exists()) - f.createNewFile(); + try { + if(!f.exists()) + f.createNewFile(); - PropertyFileManager pfm = new PropertyFileManager(USER_SETTINGS); - for(Entry<String, String>entry : outputMap.entrySet()){ - pfm.save(entry.getKey(), entry.getValue()); - } - } catch (IOException e) { - e.printStackTrace(); + PropertyFileManager pfm = new PropertyFileManager(USER_SETTINGS); + for(Entry<String, String>entry : outputMap.entrySet()){ + pfm.save(entry.getKey(), entry.getValue()); } + } catch (IOException e) { + e.printStackTrace(); + } } public HashMap<String, String> getMapClone(){