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));