[brailleblaster] 2 new revisions pushed by brandon....@xxxxxxxxx on 2015-03-03 02:33 GMT

  • From: brailleblaster@xxxxxxxxxxxxxx
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Tue, 03 Mar 2015 02:33:36 +0000

2 new revisions:

Revision: 14716d1e93a9
Branch:   rt1447-MergeElements
Author:   Brandon Roller<brandon.r.roller@xxxxxxxxx>
Date:     Mon Mar  2 18:38:06 2015 UTC
Log:      Moved more code from views to selection handler
https://code.google.com/p/brailleblaster/source/detail?r=14716d1e93a9

Revision: 1b84efe0a2a5
Branch:   rt1447-MergeElements
Author:   Brandon Roller<brandon.r.roller@xxxxxxxxx>
Date:     Mon Mar  2 20:07:37 2015 UTC
Log:      Began implementation of undo/redo for multiple element selection
https://code.google.com/p/brailleblaster/source/detail?r=1b84efe0a2a5

==============================================================================
Revision: 14716d1e93a9
Branch:   rt1447-MergeElements
Author:   Brandon Roller<brandon.r.roller@xxxxxxxxx>
Date:     Mon Mar  2 18:38:06 2015 UTC
Log:      Moved more code from views to selection handler
https://code.google.com/p/brailleblaster/source/detail?r=14716d1e93a9

Modified:
 /src/main/org/brailleblaster/perspectives/braille/messages/Message.java
/src/main/org/brailleblaster/perspectives/braille/stylers/SelectionHandler.java
 /src/main/org/brailleblaster/perspectives/braille/views/wp/BrailleView.java
 /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java

=======================================
--- /src/main/org/brailleblaster/perspectives/braille/messages/Message.java Sun Mar 1 18:00:25 2015 UTC +++ /src/main/org/brailleblaster/perspectives/braille/messages/Message.java Mon Mar 2 18:38:06 2015 UTC
@@ -141,9 +141,9 @@
                return m;
        }

-       public static Message createSelectionMessage(int start, int end){
+ public static Message createSelectionMessage(String replacementText, int start, int end){
                Message m = new Message(BBEvent.SELECTION);
-               //m.put("replacementText", replacementText);
+               m.put("replacementText", replacementText);
                m.put("start", start);
                m.put("end", end);

=======================================
--- /src/main/org/brailleblaster/perspectives/braille/stylers/SelectionHandler.java Sun Mar 1 20:50:50 2015 UTC +++ /src/main/org/brailleblaster/perspectives/braille/stylers/SelectionHandler.java Mon Mar 2 18:38:06 2015 UTC
@@ -26,6 +26,7 @@
     public void removeSelection(Message m){
        int startPos = (Integer)m.getValue("start");
         int endPos = (Integer)m.getValue("end");
+        String replacementText = (String)m.getValue("replacementText");
         int startIndex = getIndex(startPos);
         int endIndex = getIndex(endPos);
         Element firstEl = getBlockElement(startIndex);
@@ -48,15 +49,15 @@
                                                nodes = nodeIndexes(first.n, 
firstEl);
                                        }
                                        else
-                                               updateElement(first, endPos, 
first.end);
+                                               updateElement(first, endPos, 
first.end, replacementText);
                                }
                                else
-                                       updateElement(first, first.start, 
startPos);
+                                       updateElement(first, first.start, 
startPos, replacementText);
                        }

                        list.setCurrent(endIndex);
                        if(!first.equals(last))
-                               updateElement(last, endPos, last.end);
+                               updateElement(last, endPos, last.end, "");
                }

                for(int i = startIndex + 1; i < endIndex; i++)
@@ -67,7 +68,7 @@
                        textStart = startPos;
                }

- clearViewRanges(textStart, brailleStart, last, startIndex, endPos - startPos, endPos); + clearViewRanges(textStart, brailleStart, last, startIndex, endPos - startPos, endPos, replacementText);
                ArrayList<Integer> indexes = tree.getItemPath();
                removeTreeItem(startIndex, firstEl);
                clearListItems(firstList);
@@ -99,18 +100,23 @@
                }

                if(!readOnly(first)){
-                       if(startPos != first.end){
-                               if(first.start > startPos){
+                       if(startPos != first.end || replacementText.length() > 
0){
+                               if(first.start > startPos && 
replacementText.length() == 0){
                                        if(endPos > first.end){
                                                clearText(first);
                                                emptyNode = true;
                                                nodes = nodeIndexes(first.n, 
firstEl);
                                        }
+                                       else {
+                                               updateElement(first, endPos, 
first.end, replacementText);
+                                       }
+                               }
+                               else {
+                                       if(startPos < first.start)
+ updateElement(first, first.start, first.start, replacementText);
                                        else
-                                               updateElement(first, endPos, 
first.end);
+                                               updateElement(first, 
first.start, startPos, replacementText);
                                }
-                               else
-                                       updateElement(first, first.start, 
startPos);
                        }
int removed = clearElement(list.indexOf(first) + 1, list.indexOf(firstList.get(firstList.size() - 1)) + 1);
                        endIndex -= removed;
@@ -137,7 +143,7 @@

                if(!readOnly(last) && !clearAll){
                        list.setCurrent(endIndex);
-                       updateElement(last, endPos, last.end);
+                       updateElement(last, endPos, last.end, "");
int removed = clearElement(list.indexOf(lastList.get(0)), list.indexOf(last));
                        endIndex -= removed;
                }
@@ -153,7 +159,7 @@
                        textStart = startPos;
                }

- clearViewRanges(textStart, brailleStart, list.get(endIndex), startIndex, endPos - startPos, endPos); + clearViewRanges(textStart, brailleStart, list.get(endIndex), startIndex, endPos - startPos, endPos, replacementText);
                ArrayList<Integer> indexes = tree.getItemPath();
                list.setCurrent(endIndex);
                ArrayList<Integer> indexes2 = tree.getItemPath();
@@ -229,13 +235,18 @@
        return textList;
     }

-    private void updateElement(TextMapElement t, int start, int end){
+ private void updateElement(TextMapElement t, int start, int end, String replacementText){
        int offset = start - t.start;
        if(end < start)
                start = 0;

-       int linebreaks = (t.end - t.start) - t.textLength();
- String newText = t.getText().substring(offset, offset + (end - start) - linebreaks);
+       int linebreaks;
+       if(start != end)
+               linebreaks = (t.end - t.start) - t.textLength();
+       else
+               linebreaks = 0;
+
+ String newText = t.getText().substring(offset, offset + (end - start) - linebreaks) + replacementText;
        Text textNode = (Text)t.n;
        textNode.setValue(newText);
     }
@@ -314,7 +325,7 @@
                vi.remove(list, list.indexOf(elList.get(i)));
     }

- private void clearViewRanges(int start, int brailleStart, TextMapElement last, int index, int length, int endPos){ + private void clearViewRanges(int start, int brailleStart, TextMapElement last, int index, int length, int endPos, String replacementText){
                int end = last.end;
                int brailleEnd = last.brailleList.getLast().end;
                if(endPos > end){
@@ -322,7 +333,7 @@
                        end = endPos;
                }

-               text.replaceTextRange(start, (end - length) - start, "");
+ text.replaceTextRange(start, (end - length) - start + replacementText.length(), "");
                braille.replaceTextRange(brailleStart, brailleEnd - brailleStart, 
"");
list.shiftOffsetsFromIndex(index, -(end - start), -(brailleEnd - brailleStart));
        }
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/views/wp/BrailleView.java Sun Mar 1 18:11:14 2015 UTC +++ /src/main/org/brailleblaster/perspectives/braille/views/wp/BrailleView.java Mon Mar 2 18:38:06 2015 UTC
@@ -1016,7 +1016,6 @@
public void resetSelectionElement(Message m, MapList list, TextMapElement t, BrailleMapElement b, int pos){
                Styles style = stylesTable.makeStylesElement(t.parentElement(), 
t.n);
boolean isFirst = t instanceof PageMapElement || t instanceof BrlOnlyMapElement || isFirst(b.n); - boolean isLast = t instanceof PageMapElement || t instanceof BrlOnlyMapElement || isLast(b.n);
                int margin = 0;
                int lineBreaks = 0;
                int originalPosition = view.getCaretOffset();
@@ -1024,8 +1023,7 @@
                Element parent = (Element)b.n.getParent();
                int index = parent.indexOf(b.n);
                setListenerLock(true);
-               view.setCaretOffset(pos);
-
+               view.setCaretOffset(pos);

                if(t instanceof BrlOnlyMapElement || t instanceof 
PageMapElement){
                        index = list.indexOf(t);
@@ -1086,19 +1084,9 @@
b.setOffsets(lineBreaks + start, lineBreaks + start + b.n.getValue().length()); list.shiftOffsetsFromIndex(list.indexOf(t) + 1, 0, b.n.getValue().length() + lineBreaks);

-                       //      WhiteSpaceManager wsp = new 
WhiteSpaceManager(manager, this, list);
-                               int linesBefore = 0;
-                       //      if(isFirst)
- // linesBefore = wsp.setLinesBeforeBraille(t, b, lineBreaks + start, style);
-
-                               int linesAfter = 0;
-                       //      if(isLast)
- // linesAfter = wsp.setLinesAfterBraille(t, b, lineBreaks + start + b.n.getValue().length() + linesBefore, style);
-
-
- b.setOffsets(lineBreaks + linesBefore + start, lineBreaks + start + b.n.getValue().length() + linesBefore);
-                               m.put("brailleLength", linesBefore + 
linesAfter);
- m.put("brailleOffset", start + b.n.getValue().length() + linesBefore + linesAfter + lineBreaks); + b.setOffsets(lineBreaks + start, lineBreaks + start + b.n.getValue().length());
+                               m.put("brailleLength", 0);
+                               m.put("brailleOffset", start + 
b.n.getValue().length() + lineBreaks);


                                //reset margin in case it is not applied
@@ -1114,7 +1102,7 @@
                                        
setFirstLineIndent(t.brailleList.getFirst().start, style);

                                if(style.contains(StylesType.format))
- setAlignment(start + linesBefore,start + b.n.getValue().length(),style);
+                                       setAlignment(start,start + 
b.n.getValue().length(),style);

                                view.setCaretOffset(originalPosition);
                }
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java Sun Mar 1 18:11:14 2015 UTC +++ /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java Mon Mar 2 18:38:06 2015 UTC
@@ -1046,8 +1046,6 @@
                setListenerLock(false);
        }
public void resetSelectionElement(Message m, ViewInitializer vi, MapList list, int listIndex, int start, TextMapElement t){
-               int linesBefore = 0;
-               int linesAfter = 0;
Styles style = stylesTable.makeStylesElement((Element)t.n.getParent(), t.n);
                String reformattedText;
                setListenerLock(true);
@@ -1063,60 +1061,50 @@
                        if(listIndex > 0 && list.get(listIndex - 1).end == 
start){
if(listIndex < list.size() - 1 && list.get(listIndex + 1).start > start){
                                        view.insert("\n" + reformattedText);
- t.setOffsets(1 + start + linesBefore, 1 + linesBefore + start + reformattedText.length());
+                                       t.setOffsets(1 + start, 1 + start + 
reformattedText.length());
list.shiftOffsetsFromIndex(listIndex + 1, reformattedText.length(), 0);
-                                       m.put("textLength",linesBefore + 
linesAfter + 1);
- m.put("textOffset", reformattedText.length() + linesBefore + linesAfter + start + 1);
+                                       m.put("textLength", 1);
+                                       m.put("textOffset", 
reformattedText.length() + start + 1);
                                }
                                else {
                                        view.insert("\n" + reformattedText + 
"\n");
- t.setOffsets(1 + start + linesBefore, 1 + linesBefore + start + reformattedText.length());
+                                       t.setOffsets(1 + start , 1 + start + 
reformattedText.length());
list.shiftOffsetsFromIndex(listIndex + 1, reformattedText.length(), 0);
-                                       m.put("textLength",linesBefore + 
linesAfter + 2);
- m.put("textOffset", reformattedText.length() + linesBefore + linesAfter + start + 2);
+                                       m.put("textLength", 2);
+                                       m.put("textOffset", 
reformattedText.length() + start + 2);
                                }
                        }
                        else {
if((listIndex < list.size() - 1 && list.get(listIndex + 1).start > start) || listIndex == list.size() - 1){
                                        view.insert(reformattedText);
- t.setOffsets(start + linesBefore, linesBefore + start + reformattedText.length());
+                                       t.setOffsets(start, start + 
reformattedText.length());
list.shiftOffsetsFromIndex(listIndex + 1, reformattedText.length(), 0);
-                                       m.put("textLength",linesBefore + 
linesAfter);
- m.put("textOffset", reformattedText.length() + linesBefore + linesAfter + start);
+                                       m.put("textLength", 0);
+                                       m.put("textOffset", 
reformattedText.length() + start);
                                }
                                else{
                                        view.insert(reformattedText + "\n");
- t.setOffsets(start + linesBefore, linesBefore + start + reformattedText.length());
+                                       t.setOffsets(start, start + 
reformattedText.length());
list.shiftOffsetsFromIndex(listIndex + 1, reformattedText.length(), 0);
-                                       m.put("textLength",linesBefore + 
linesAfter + 1);
- m.put("textOffset", reformattedText.length() + linesBefore + linesAfter + start + 1);
+                                       m.put("textLength", 1);
+                                       m.put("textOffset", 
reformattedText.length() + start + 1);
                                }
                        }
                        view.setLineIndent(view.getLineAtOffset(t.start), 1, 0);
                }
                else {
boolean isFirst = t instanceof PageMapElement || t instanceof BrlOnlyMapElement || isFirst(t.n); - boolean isLast = t instanceof PageMapElement || t instanceof BrlOnlyMapElement || isLast(t.n);
                        view.insert(reformattedText);

                        t.setOffsets(start, start + reformattedText.length());
                        list.shiftOffsetsFromIndex(listIndex + 1, 
reformattedText.length(), 0);

-                       int margin = 0;
+                       int margin = 0;
+                       t.setOffsets(start, start + reformattedText.length());
+                       m.put("textLength", 0);
+                       m.put("textOffset", reformattedText.length() + start);

-                       WhiteSpaceManager wsp = new WhiteSpaceManager(manager, 
this, list);
-
-       //              if(isFirst)
-       //                      linesBefore = wsp.setLinesBefore(t, start, 
style);
-
-       //              if(isLast)
- // linesAfter = wsp.setLinesAfter(t, start + reformattedText.length() + linesBefore, style);
-
- t.setOffsets(start + linesBefore, linesBefore + start + reformattedText.length());
-                       m.put("textLength", linesBefore + linesAfter);
- m.put("textOffset", reformattedText.length() + linesBefore + linesAfter + start);
-
-                       start += linesBefore;
+                       //start += linesBefore;
                        //reset margin in case it is not applied
                        if(start == 
view.getOffsetAtLine(view.getLineAtOffset(start)))
                                handleLineWrap(start, reformattedText, 0, 
false);
@@ -1352,46 +1340,13 @@

        private void handleTextEdit(ExtendedModifyEvent e){
                int changes = e.length;
-               int placeholder;
                if(e.replacedText.length() > 0){
                        if(e.start < stateObj.getCurrentStart()){
                                setCurrent(e.start);
                        }

                        if(e.start + e.replacedText.length() > 
stateObj.getCurrentEnd()){
-                               view.setCaretOffset(e.start);
-                               setCurrent(view.getCaretOffset());
-
-                               if(selection.getSelectionStart() < 
stateObj.getCurrentStart())
- sendAdjustRangeMessage("start", stateObj.getCurrentStart() - selection.getSelectionStart());
-                               else if(selection.getSelectionStart() > 
stateObj.getCurrentEnd())
- sendAdjustRangeMessage("end", selection.getSelectionStart()- stateObj.getCurrentEnd());
-
-                               placeholder = stateObj.getCurrentStart();
-                               if(e.length < e.replacedText.length()){
- setSelection(selection.getSelectionStart() + e.length, selection.getSelectionLength() - e.length);
-                                       changes = stateObj.getCurrentEnd() - 
selection.getSelectionStart();
-                                       makeTextChange(-changes);
-                                       
selection.adjustSelectionLength(-changes);
-                                       sendUpdate();
-                                       setCurrent(view.getCaretOffset());
-
-                               //      if(stateObj.getNextStart() == -1)
-                                               
selection.setSelectionStart(stateObj.getCurrentEnd());
-                               //      else {
-                               //              
selection.setSelectionStart(stateObj.getNextStart());
-
-                               }
-                               else {
- selection.adjustSelectionLength(-(stateObj.getCurrentEnd() - e.start));
-                                       makeTextChange(changes - 
(stateObj.getCurrentEnd() - e.start));
-                                       sendUpdate();
-                                       setCurrent(view.getCaretOffset());
-                                       
selection.setSelectionStart(stateObj.getCurrentEnd());
-                               }
-
                                deleteSelection(e);
-                               setCurrent(placeholder);
                                view.setCaretOffset(e.start + e.length);
                        }
                        else {
@@ -1506,7 +1461,7 @@
                        recordEvent(e, false);
                }
                else {
- manager.dispatch(Message.createSelectionMessage(selection.getSelectionStart(), selection.getSelectionEnd())); + manager.dispatch(Message.createSelectionMessage(view.getTextRange(e.start, e.length) , selection.getSelectionStart(), selection.getSelectionEnd()));
                }

                setSelection(-1, -1);

==============================================================================
Revision: 1b84efe0a2a5
Branch:   rt1447-MergeElements
Author:   Brandon Roller<brandon.r.roller@xxxxxxxxx>
Date:     Mon Mar  2 20:07:37 2015 UTC
Log:      Began implementation of undo/redo for multiple element selection
https://code.google.com/p/brailleblaster/source/detail?r=1b84efe0a2a5

Modified:
/src/main/org/brailleblaster/perspectives/braille/eventQueue/EventTypes.java
 /src/main/org/brailleblaster/perspectives/braille/eventQueue/RedoQueue.java
 /src/main/org/brailleblaster/perspectives/braille/eventQueue/UndoQueue.java
/src/main/org/brailleblaster/perspectives/braille/stylers/SelectionHandler.java

=======================================
--- /src/main/org/brailleblaster/perspectives/braille/eventQueue/EventTypes.java Fri Jan 23 17:19:49 2015 UTC +++ /src/main/org/brailleblaster/perspectives/braille/eventQueue/EventTypes.java Mon Mar 2 20:07:37 2015 UTC
@@ -3,6 +3,7 @@
 public enum EventTypes {
        Update,
        Edit,
+       Selection,
        Merge,
        Whitespace,
        Delete,
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/eventQueue/RedoQueue.java Fri Jan 23 17:19:49 2015 UTC +++ /src/main/org/brailleblaster/perspectives/braille/eventQueue/RedoQueue.java Mon Mar 2 20:07:37 2015 UTC
@@ -7,6 +7,7 @@
 import org.brailleblaster.perspectives.braille.stylers.MergeElementHandler;
import org.brailleblaster.perspectives.braille.stylers.RemoveElementHandler;
 import org.brailleblaster.perspectives.braille.stylers.HideActionHandler;
+import org.brailleblaster.perspectives.braille.stylers.SelectionHandler;
 import org.brailleblaster.perspectives.braille.stylers.StyleHandler;
 import org.brailleblaster.perspectives.braille.stylers.TextUpdateHandler;
 import org.brailleblaster.perspectives.braille.stylers.WhiteSpaceHandler;
@@ -33,6 +34,10 @@
                                        TextUpdateHandler tuh = new 
TextUpdateHandler(manager, vi, list);
                                        tuh.redoText(frame);
                                        break;
+                               case Selection:
+                                       SelectionHandler selH = new 
SelectionHandler(manager, vi, list);
+                                       selH.redoSelection(frame);
+                                       break;
                                case Merge:
                                        MergeElementHandler meh = new 
MergeElementHandler(manager, vi, list);
                                        meh.redoMerge(frame);
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/eventQueue/UndoQueue.java Mon Jan 26 21:27:33 2015 UTC +++ /src/main/org/brailleblaster/perspectives/braille/eventQueue/UndoQueue.java Mon Mar 2 20:07:37 2015 UTC
@@ -6,6 +6,7 @@
import org.brailleblaster.perspectives.braille.stylers.InsertElementHandler;
 import org.brailleblaster.perspectives.braille.stylers.MergeElementHandler;
import org.brailleblaster.perspectives.braille.stylers.RemoveElementHandler;
+import org.brailleblaster.perspectives.braille.stylers.SelectionHandler;
 import org.brailleblaster.perspectives.braille.stylers.StyleHandler;
 import org.brailleblaster.perspectives.braille.stylers.TextUpdateHandler;
 import org.brailleblaster.perspectives.braille.stylers.WhiteSpaceHandler;
@@ -32,6 +33,10 @@
                                        TextUpdateHandler tuh = new 
TextUpdateHandler(manager, vi, list);
                                        tuh.undoText(frame);
                                        break;
+                               case Selection:
+                                       SelectionHandler selH = new 
SelectionHandler(manager, vi, list);
+                                       selH.undoSelection(frame);
+                                       break;
                                case Merge:
                                        MergeElementHandler meh = new 
MergeElementHandler(manager, vi, list);
                                        meh.undoMerge(frame);
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/stylers/SelectionHandler.java Mon Mar 2 18:38:06 2015 UTC +++ /src/main/org/brailleblaster/perspectives/braille/stylers/SelectionHandler.java Mon Mar 2 20:07:37 2015 UTC
@@ -9,6 +9,7 @@
 import nu.xom.Text;

 import org.brailleblaster.perspectives.braille.Manager;
+import org.brailleblaster.perspectives.braille.eventQueue.EventFrame;
import org.brailleblaster.perspectives.braille.mapping.elements.BrailleMapElement; import org.brailleblaster.perspectives.braille.mapping.elements.BrlOnlyMapElement; import org.brailleblaster.perspectives.braille.mapping.elements.PageMapElement;
@@ -439,4 +440,12 @@

        return nodes;
     }
+
+    public void undoSelection(EventFrame frame){
+
+    }
+
+    public void redoSelection(EventFrame frame){
+
+    }
 }

Other related posts:

  • » [brailleblaster] 2 new revisions pushed by brandon....@xxxxxxxxx on 2015-03-03 02:33 GMT - brailleblaster