[brailleblaster] [brailleblaster.newdesign] push by brandon....@xxxxxxxxx - Fixed bug in style application on 2013-09-11 14:03 GMT

  • From: brailleblaster@xxxxxxxxxxxxxx
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Wed, 11 Sep 2013 14:03:51 +0000

Revision: 08252e5baff6
Branch:   default
Author:   Brandon Roller <brandon.r.roller@xxxxxxxxx>
Date:     Wed Sep 11 14:00:18 2013 UTC
Log:      Fixed bug in style application
http://code.google.com/p/brailleblaster/source/detail?r=08252e5baff6&repo=newdesign

Modified:
 /src/main/org/brailleblaster/document/BBDocument.java
 /src/main/org/brailleblaster/document/ElementDivider.java
 /src/main/org/brailleblaster/mapping/MapList.java
 /src/main/org/brailleblaster/views/BrailleView.java
 /src/main/org/brailleblaster/views/TextView.java
 /src/main/org/brailleblaster/wordprocessor/DocumentManager.java

=======================================
--- /src/main/org/brailleblaster/document/BBDocument.java Tue Sep 10 19:49:10 2013 UTC +++ /src/main/org/brailleblaster/document/BBDocument.java Wed Sep 11 14:00:18 2013 UTC
@@ -262,8 +262,8 @@
                Element p = makeElement("p", "semantics", "style,para");
                p.appendChild(new Text(""));

-               Element parent = (Element)current.n.getParent().getParent();
-               int nodeIndex = parent.indexOf(current.n.getParent());
+               Element parent = (Element)current.parentElement().getParent();
+               int nodeIndex = parent.indexOf(current.parentElement());
                parent.insertChild(p, nodeIndex + 1);

list.add(index, new TextMapElement(textOffset, textOffset, p.getChild(0)));
@@ -317,7 +317,7 @@
                }
                logger.log(Level.INFO, "Original Braille Node Value:\n" + 
logString);

-               Element parent = (Element)t.n.getParent();
+               Element parent = t.parentElement();
                Element child = (Element)t.brailleList.getFirst().n.getParent();
                while(!child.getParent().equals(parent)){
                        child = (Element)child.getParent();
@@ -369,7 +369,7 @@
                        }
                        logger.log(Level.INFO, "Original Braille Node Value:\n" 
+ logString);

-                       Element parent = (Element)t.n.getParent();
+                       Element parent = t.parentElement();
                        if(t.brailleList.size() > 0){
                                Element child = 
(Element)t.brailleList.getFirst().n.getParent();
                                while(!child.getParent().equals(parent)){
@@ -378,7 +378,7 @@
                                parent.replaceChild(child, e);
                        }
                        else {
-                               t.n.getParent().appendChild(e);
+                               t.parentElement().appendChild(e);
                        }

                        t.brailleList.clear();
@@ -407,7 +407,7 @@
                        brlParent.removeChild(e);
                }

-               t.n.getParent().appendChild(e);
+               t.parentElement().appendChild(e);
                int newOffset = startingOffset;

                boolean first = true;
@@ -471,7 +471,7 @@
        }

        public Document getStringTranslation(TextMapElement t, String text){
-               Element parent = (Element)t.n.getParent();
+               Element parent = t.parentElement();
                while(!parent.getAttributeValue("semantics").contains("style")){
                        
if(parent.getAttributeValue("semantics").equals("action,italicx")){
                                text = "<em>" + text + "</em>";
@@ -585,13 +585,13 @@
        }

        private void removeNode(TextMapElement t, Message message){
-               if(hasNonBrailleChildren((Element)t.n.getParent())){
+               if(hasNonBrailleChildren(t.parentElement())){
                        Element e = 
(Element)t.brailleList.getFirst().n.getParent();
-                       t.n.getParent().removeChild(e);
-                       t.n.getParent().removeChild(t.n);
+                       t.parentElement().removeChild(e);
+                       t.parentElement().removeChild(t.n);
                }
                else {
-                       Element parent = (Element)t.n.getParent();
+                       Element parent = t.parentElement();
                        
while(!parent.getAttributeValue("semantics").contains("style")){
                                
if(((Element)parent.getParent()).getChildElements().size() <= 1){
                                        parent = (Element)parent.getParent();
=======================================
--- /src/main/org/brailleblaster/document/ElementDivider.java Tue Sep 10 19:49:10 2013 UTC +++ /src/main/org/brailleblaster/document/ElementDivider.java Wed Sep 11 14:00:18 2013 UTC
@@ -27,7 +27,7 @@

        public ArrayList<Element>split(MapList list, TextMapElement t, Message 
m){
                ArrayList<Element>els = new ArrayList<Element>();
-               Element e = (Element)t.n.getParent();
+               Element e = t.parentElement();
                Element parent = (Element)e.getParent();
                setGlobalVariables(parent, e, t);

@@ -169,9 +169,9 @@
private Element makeElementWithTextNode(Element e, TextMapElement t, Integer start, int position){ Element splitElement = doc.makeElement(e.getLocalName(), "semantics", e.getAttributeValue("semantics"));
                if(start != null)
-                       insertTextNode(splitElement, 
t.n.getValue().substring(0, position));
+                       insertTextNode(splitElement, t.value().substring(0, 
position));
                else
-                       insertTextNode(splitElement, 
t.n.getValue().substring(position));
+                       insertTextNode(splitElement, 
t.value().substring(position));

                return splitElement;
        }
=======================================
--- /src/main/org/brailleblaster/mapping/MapList.java Fri Sep 6 18:16:34 2013 UTC +++ /src/main/org/brailleblaster/mapping/MapList.java Wed Sep 11 14:00:18 2013 UTC
@@ -154,8 +154,8 @@
                if(this.get(index).n.getValue().length() == 0)
                        return true;

- char firstChar = this.get(index).n.getValue().charAt(this.get(index).n.getValue().length() - 1);
-               String nextElementText = this.get(index + 1).n.getValue();
+ char firstChar = this.get(index).value().charAt(this.get(index).n.getValue().length() - 1);
+               String nextElementText = this.get(index + 1).value();
                if(nextElementText.length() > 0){
                        char nextChar =  nextElementText.charAt(0);
                        if( firstChar == ' ' && nextChar != ' '){
@@ -285,27 +285,27 @@

                        if(next < this.size()){
                                if(this.get(index).start == 
this.get(next).start){
- Message m = Message.createRemoveNodeMessage(index, this.get(index).n.getValue().length());
-                                       System.out.println("Node 1:\t" + 
this.get(index).n.getValue());
-                                       System.out.println("Node 2:\t" + 
this.get(next).n.getValue());
+ Message m = Message.createRemoveNodeMessage(index, this.get(index).textLength());
+                                       System.out.println("Node 1:\t" + 
this.get(index).value());
+                                       System.out.println("Node 2:\t" + 
this.get(next).value());
                                        dm.dispatch(m);
                                }
                        }

                        if(previous >= 0 && next < this.size()){
- if((this.get(previous).start + this.get(previous).n.getValue().length() + 1 == this.get(next).start && this.get(index).n.getValue().length() == 0) - || (this.get(previous).end == this.get(index).start && this.get(index).n.getValue().length() == 0)){ + if((this.get(previous).start + this.get(previous).textLength() + 1 == this.get(next).start && this.get(index).textLength() == 0) + || (this.get(previous).end == this.get(index).start && this.get(index).textLength() == 0)){ Message m = Message.createRemoveNodeMessage(index, this.get(index).n.getValue().length());
-                                       System.out.println("Node 1:\t" + 
this.get(index).n.getValue());
-                                       System.out.println("Node 2:\t" + 
this.get(next).n.getValue());
+                                       System.out.println("Node 1:\t" + 
this.get(index).value());
+                                       System.out.println("Node 2:\t" + 
this.get(next).value());
                                        dm.dispatch(m);
                                }
                        }

if(this.size() > 0 && this.get(this.size() - 1).n.getValue().length() == 0){ if(this.get(this.size() - 1).start == this.prevEnd || this.get(this.size() - 1).start == 0){ - Message m = Message.createRemoveNodeMessage(this.size() - 1, this.get(this.size() - 1).n.getValue().length()); - System.out.println("Node 1:\t" + this.get(this.size() - 1).n.getValue()); + Message m = Message.createRemoveNodeMessage(this.size() - 1, this.get(this.size() - 1).textLength()); + System.out.println("Node 1:\t" + this.get(this.size() - 1).textLength());
                                        System.out.println("Node 2:\t none");
                                        dm.dispatch(m);
                                }
=======================================
--- /src/main/org/brailleblaster/views/BrailleView.java Tue Sep 10 19:49:10 2013 UTC +++ /src/main/org/brailleblaster/views/BrailleView.java Wed Sep 11 14:00:18 2013 UTC
@@ -211,7 +211,7 @@

        public void setBraille(Node n, TextMapElement t){
                setListenerLock(true);
- Styles style = stylesTable.makeStylesElement((Element)t.n.getParent(), n);
+               Styles style = stylesTable.makeStylesElement(t.parentElement(), 
n);
                String textBefore = "";
                String text = n.getValue();
                int textLength = text.length();
@@ -222,7 +222,7 @@
                }

                view.append(textBefore + text);
-               handleStyle(style, n, (Element)t.n.getParent());
+               handleStyle(style, n, t.parentElement());

t.brailleList.add(new BrailleMapElement(spaceBeforeText + total, spaceBeforeText + total + textLength, n));
                total += spaceBeforeText + textLength + spaceAfterText;
@@ -320,6 +320,7 @@
                String textBefore = "";
                setViewData(m);
                Styles style = (Styles)m.getValue("Style");
+               Styles previousStyle = (Styles)m.getValue("previousStyle");

                setListenerLock(true);
if(isFirst(t.brailleList.getFirst().n) || (!isFirst(t.brailleList.getFirst().n) && view.getLineAtOffset(currentStart) != startLine))
@@ -411,7 +412,7 @@
                        }
                }

-               if(!style.contains(StylesType.linesBefore)){
+ if(!style.contains(StylesType.linesBefore) && previousStyle.contains(StylesType.linesBefore)){
                        if(-1 != previousEnd){
                                prev = previousEnd;
                        }
@@ -422,7 +423,8 @@
                                view.replaceTextRange(prev, (currentStart - prev), 
"");
                                length = currentStart - prev;
                        }
-                       if(isFirst(t.brailleList.getFirst().n)){
+
+                       if(isFirst(t.brailleList.getFirst().n) && previousEnd 
!= -1){
                                spaces = 1;
                                textBefore = makeInsertionString(spaces,'\n');
                                offset = spaces - length;
@@ -431,7 +433,8 @@
                                m.put("linesBeforeOffset", offset);
                                currentStart += offset;
                                currentEnd += offset;
-                               nextStart += offset;
+                               if(nextStart != -1)
+                                       nextStart += offset;
                                if(previousEnd != -1){
                                        
view.setLineIndent(view.getLineAtOffset(currentStart), 1, indent);
                                        restoreStyleState(currentStart, 
currentEnd);
@@ -439,7 +442,7 @@
                        }
                }

-               if(!style.contains(StylesType.linesAfter)){
+ if(!style.contains(StylesType.linesAfter) && previousStyle.contains(StylesType.linesAfter)){
                        if(currentEnd != nextStart && nextStart != -1){
                                saveStyleState(currentStart);
                                indent  = 
view.getLineIndent(view.getLineAtOffset(nextStart));
@@ -453,7 +456,8 @@
                                insertBefore(currentEnd, textBefore);
                                offset = spaces - length;
                                m.put("linesAfterOffset", offset);
-                               nextStart += offset;
+                               if(nextStart != -1)
+                                       nextStart += offset;
                                if(nextStart != -1){
                                        restoreStyleState(currentStart, 
currentEnd);
                                        
view.setLineIndent(view.getLineAtOffset(nextStart), 1, indent);
@@ -574,11 +578,11 @@
        }

        public void updateBraille(TextMapElement t, Message message){
- Styles style = stylesTable.makeStylesElement((Element)t.n.getParent(), t.n);
+               Styles style = stylesTable.makeStylesElement(t.parentElement(), 
t.n);
                int total = (Integer)message.getValue("brailleLength");
                int margin = 0;

-               System.out.println("Value: " + t.n.getValue());
+               System.out.println("Value: " + t.value());
                String insertionString = 
(String)message.getValue("newBrailleText");

                if(t.brailleList.getFirst().start != -1){
=======================================
--- /src/main/org/brailleblaster/views/TextView.java Tue Sep 10 19:49:10 2013 UTC +++ /src/main/org/brailleblaster/views/TextView.java Wed Sep 11 14:00:18 2013 UTC
@@ -1068,6 +1068,7 @@
                String textBefore = "";
                setViewData(m);
                Styles style = (Styles)m.getValue("Style");
+               Styles previousStyle = (Styles)m.getValue("previousStyle");

if(isFirst || (!isFirst && view.getLineAtOffset(currentStart) != startLine)) view.setLineIndent(view.getLineAtOffset(currentStart), getLineNumber(currentStart, view.getTextRange(currentStart, (currentEnd - currentStart))), 0);
@@ -1161,7 +1162,7 @@
                        }
                }

-               if(!style.contains(StylesType.linesBefore) && isFirst){
+ if(!style.contains(StylesType.linesBefore) && previousStyle.contains(StylesType.linesBefore) && isFirst){
                        if(-1 != previousEnd){
                                prev = previousEnd;
                        }
@@ -1173,7 +1174,7 @@
                                length = currentStart - prev;
                        }

-                       if(isFirst){
+                       if(isFirst && previousEnd != -1){
                                spaces = 1;
                                textBefore = makeInsertionString(spaces,'\n');
                                offset = spaces - length;
@@ -1183,7 +1184,8 @@
                                m.put("firstLine", startLine + offset);
                                currentStart += offset;
                                currentEnd += offset;
-                               nextStart += offset;
+                               if(nextStart != -1)
+                                       nextStart += offset;
                                if(previousEnd != -1){
                                        restoreStyleState(currentStart, 
currentEnd);
                                        
view.setLineIndent(view.getLineAtOffset(currentStart), 1, indent);
@@ -1191,7 +1193,7 @@
                        }
                }

-               if(!style.contains(StylesType.linesAfter) && isLast){
+ if(!style.contains(StylesType.linesAfter) && previousStyle.contains(StylesType.linesAfter) && isLast){
                        if(currentEnd != nextStart && nextStart != -1){
                                saveStyleState(currentStart);
                                indent  = 
view.getLineIndent(view.getLineAtOffset(nextStart));
@@ -1205,7 +1207,8 @@
                                insertBefore(currentEnd, textBefore);
                                offset = spaces - length;
                                m.put("linesAfterOffset", offset);
-                               nextStart += offset;
+                               if(nextStart != -1)
+                                       nextStart += offset;
                                if(nextStart != -1) {
                                        restoreStyleState(currentStart, 
currentEnd);
                                        
view.setLineIndent(view.getLineAtOffset(nextStart), 1, indent);
=======================================
--- /src/main/org/brailleblaster/wordprocessor/DocumentManager.java Tue Sep 10 19:49:10 2013 UTC +++ /src/main/org/brailleblaster/wordprocessor/DocumentManager.java Wed Sep 11 14:00:18 2013 UTC
@@ -718,6 +718,7 @@
                if(document.getDOM() != null){
                        group.setRedraw(false);
                        Element parent = 
document.getParent(list.getCurrent().n, true);
+ message.put("previousStyle", styles.get(styles.getKeyFromAttribute(parent))); ArrayList<TextMapElement> itemList = list.findTextMapElements(list.getCurrentIndex(), parent, true);

                        int start = list.getNodeIndex(itemList.get(0));

Other related posts:

  • » [brailleblaster] [brailleblaster.newdesign] push by brandon....@xxxxxxxxx - Fixed bug in style application on 2013-09-11 14:03 GMT - brailleblaster