Revision: e570fcb24a99 Branch: default Author: Brandon Roller <brandon.r.roller@xxxxxxxxx> Date: Wed Sep 11 17:46:32 2013 UTC Log: Fixed more bugs with applying styles http://code.google.com/p/brailleblaster/source/detail?r=e570fcb24a99&repo=newdesign Modified: /src/main/org/brailleblaster/document/BBDocument.java /src/main/org/brailleblaster/document/ElementDivider.java /src/main/org/brailleblaster/views/BrailleView.java /src/main/org/brailleblaster/views/TextView.java =======================================--- /src/main/org/brailleblaster/document/BBDocument.java Wed Sep 11 14:00:18 2013 UTC +++ /src/main/org/brailleblaster/document/BBDocument.java Wed Sep 11 17:46:32 2013 UTC
@@ -528,7 +528,7 @@ String semPath; if(dm.getWorkingPath() == null){- semPath = BBIni.getProgramDataPath() + BBIni.getFileSep() + "xmlTemplates" + BBIni.getFileSep() + "dtbook.xml"; + semPath = BBIni.getTempFilesPath() + BBIni.getFileSep() + "outFile.utd";
} else {semPath = BBIni.getTempFilesPath() + BBIni.getFileSep() + fu.getFileName(dm.getWorkingPath()) + ".xml";
=======================================--- /src/main/org/brailleblaster/document/ElementDivider.java Wed Sep 11 14:00:18 2013 UTC +++ /src/main/org/brailleblaster/document/ElementDivider.java Wed Sep 11 17:46:32 2013 UTC
@@ -42,20 +42,17 @@ Element grandParent = (Element)parent.getParent(); int parentIndex = grandParent.indexOf(parent); - if(!isDefaultStyle(parent)){- firstElement.addAttribute(new Attribute("id", parent.getAttributeValue("id")));
- Message styleMessage = new Message(null);- styleMessage.put("Style", table.get(table.getKeyFromAttribute(parent)));
- doc.changeSemanticAction(styleMessage, secondElement); - } + checkElementStyle(parent, firstElement, secondElement); replaceElement(els, grandParent, parent, firstElement); insertElement(els, grandParent, secondElement, parentIndex + 1); } else if(e.getChildCount() > 2 && nodeIndex > 0){ + checkElementStyle(e, firstElement, secondElement); replaceElement(els, parent, e, firstElement); insertElement(els, parent, secondElement, index + 1); } else { + checkElementStyle(e, firstElement, secondElement); replaceElement(els, parent, e, firstElement); insertElement(els, parent,secondElement, index + 1); } @@ -94,18 +91,22 @@ Element grandParent = (Element)parent.getParent(); int parentIndex = grandParent.indexOf(parent); + + checkElementStyle(parent, firstElement, secondElement); + replaceElement(els, grandParent, parent, firstElement); + insertElement(els, grandParent, secondElement, parentIndex + 1); + + return els; + } ++ private void checkElementStyle(Element parent, Element firstElement, Element secondElement){
if(!isDefaultStyle(parent)){firstElement.addAttribute(new Attribute("id", parent.getAttributeValue("id")));
Message styleMessage = new Message(null); styleMessage.put("Style", table.get(table.getKeyFromAttribute(parent))); doc.changeSemanticAction(styleMessage, secondElement); } - - replaceElement(els, grandParent, parent, firstElement); - insertElement(els, grandParent, secondElement, parentIndex + 1); - - return els; }private Element createFirstElement(TextMapElement t, Element parent, Element e, int textPosition){
=======================================--- /src/main/org/brailleblaster/views/BrailleView.java Wed Sep 11 14:00:18 2013 UTC +++ /src/main/org/brailleblaster/views/BrailleView.java Wed Sep 11 17:46:32 2013 UTC
@@ -353,7 +353,9 @@ insertBefore(currentStart - (currentStart - prev), textBefore); currentStart += offset; currentEnd += offset; - nextStart += offset; + if(nextStart != -1) + nextStart += offset; + view.setLineIndent(view.getLineAtOffset(currentStart), 1, indent); restoreStyleState(currentStart, currentEnd); } @@ -377,7 +379,9 @@ textBefore = makeInsertionString(spaces + 1,'\n'); insertBefore(currentEnd, textBefore); offset = (spaces + 1) - length; - nextStart += offset; + if(nextStart != 1) + nextStart += offset; + if(nextStart != -1){ view.setLineIndent(view.getLineAtOffset(nextStart), 1, indent); restoreStyleState(currentStart, currentEnd); @@ -424,7 +428,7 @@ length = currentStart - prev; } - if(isFirst(t.brailleList.getFirst().n) && previousEnd != -1){ + if(isFirst(t.brailleList.getFirst().n)){ spaces = 1; textBefore = makeInsertionString(spaces,'\n'); offset = spaces - length; @@ -443,14 +447,22 @@ }if(!style.contains(StylesType.linesAfter) && previousStyle.contains(StylesType.linesAfter)){
- if(currentEnd != nextStart && nextStart != -1){ + if(currentEnd != nextStart){ + int removedSpaces; + if(nextStart != -1) + removedSpaces = nextStart - currentEnd; + else + removedSpaces = view.getCharCount() - currentEnd; + saveStyleState(currentStart); - indent = view.getLineIndent(view.getLineAtOffset(nextStart)); - view.replaceTextRange(currentEnd, (nextStart - currentEnd), ""); - length = nextStart - currentEnd; + if(nextStart != -1) + indent = view.getLineIndent(view.getLineAtOffset(nextStart)); + + view.replaceTextRange(currentEnd, removedSpaces, ""); + length = removedSpaces; } - if(isLast(t.brailleList.getLast().n)){ + if(isLast(t.brailleList.getLast().n) && nextStart != -1){ spaces = 1; textBefore = makeInsertionString(1,'\n'); insertBefore(currentEnd, textBefore); =======================================--- /src/main/org/brailleblaster/views/TextView.java Wed Sep 11 14:00:18 2013 UTC +++ /src/main/org/brailleblaster/views/TextView.java Wed Sep 11 17:46:32 2013 UTC
@@ -1101,7 +1101,8 @@ m.put("linesBeforeOffset", offset); currentStart += offset; currentEnd += offset; - nextStart += offset; + if(nextStart != -1) + nextStart += offset; view.setLineIndent(view.getLineAtOffset(currentStart), 1, indent); restoreStyleState(currentStart, currentEnd); } @@ -1126,7 +1127,8 @@ insertBefore(currentEnd, textBefore); offset = (spaces + 1) - length; m.put("linesAfterOffset", offset); - nextStart += offset; + if(nextStart != -1) + nextStart += offset; if(nextStart != -1){ view.setLineIndent(view.getLineAtOffset(nextStart), 1, indent); restoreStyleState(currentStart, currentEnd); @@ -1134,7 +1136,7 @@ } break; case format:- view.setLineAlignment(view.getLineAtOffset(currentStart), getLineNumber(currentStart, view.getTextRange(currentStart, (currentEnd - currentStart))), Integer.valueOf(entry.getValue())); + view.setLineAlignment(view.getLineAtOffset(currentStart), getLineNumber(currentStart, view.getTextRange(currentStart, (currentEnd - currentStart))), Integer.valueOf(entry.getValue()));
break; case firstLineIndent:if(isFirst && (Integer.valueOf(entry.getValue()) > 0 || style.contains(StylesType.leftMargin))){
@@ -1174,7 +1176,7 @@ length = currentStart - prev; } - if(isFirst && previousEnd != -1){ + if(isFirst){ spaces = 1; textBefore = makeInsertionString(spaces,'\n'); offset = spaces - length; @@ -1194,14 +1196,22 @@ }if(!style.contains(StylesType.linesAfter) && previousStyle.contains(StylesType.linesAfter) && isLast){
- if(currentEnd != nextStart && nextStart != -1){ + if(currentEnd != nextStart){ + int removedSpaces; + if(nextStart != -1) + removedSpaces = nextStart - currentEnd; + else + removedSpaces = view.getCharCount() - currentEnd; + saveStyleState(currentStart); - indent = view.getLineIndent(view.getLineAtOffset(nextStart)); - view.replaceTextRange(currentEnd, (nextStart - currentEnd), ""); - length = nextStart - currentEnd; + if(nextStart != -1) + indent = view.getLineIndent(view.getLineAtOffset(nextStart)); + + view.replaceTextRange(currentEnd, removedSpaces, ""); + length = removedSpaces; } - if(isLast){ + if(isLast && nextStart != -1){ spaces = 1; textBefore = makeInsertionString(1,'\n'); insertBefore(currentEnd, textBefore);