Revision: ba5770e4ade9 Branch: WithBrailleFormatting Author: Brandon Roller <brandon.r.roller@xxxxxxxxx> Date: Mon Jul 15 11:47:33 2013 Log: Added previousElement menu item method in document manager http://code.google.com/p/brailleblaster/source/detail?r=ba5770e4ade9&repo=newdesign Modified: /src/main/org/brailleblaster/abstractClasses/AbstractView.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/BBDocument.java /src/main/org/brailleblaster/wordprocessor/BBMenu.java /src/main/org/brailleblaster/wordprocessor/DocumentManager.java =======================================--- /src/main/org/brailleblaster/abstractClasses/AbstractView.java Mon Jul 15 07:48:47 2013 +++ /src/main/org/brailleblaster/abstractClasses/AbstractView.java Mon Jul 15 11:47:33 2013
@@ -83,6 +83,10 @@ location.bottom = new FormAttachment(bottom); view.setLayoutData(location); } + + public void increment(DocumentManager dm){ + sendIncrementCurrent(dm); + } protected void sendIncrementCurrent(DocumentManager dm){ Message message = new Message(BBEvent.INCREMENT); @@ -90,6 +94,9 @@ setViewData(message); } + public void decrement(DocumentManager dm){ + sendDecrementCurrent(dm); + } protected void sendDecrementCurrent(DocumentManager dm){ Message message = new Message(BBEvent.DECREMENT); dm.dispatch(message); @@ -122,7 +129,6 @@ } protected void setFontRange(int start, int length, int style){ - // System.out.println(view.getCharCount() + " " + (start + length)); StyleRange styleRange = new StyleRange(); styleRange.start = start; styleRange.length = length; @@ -200,7 +206,7 @@ while( i < text.length() && text.charAt(i) == '\n'){ i++; }- // this.view.setLineWrapIndent(this.view.getLineAtOffset(pos), 1, this.view.getLineIndent(this.view.getLineAtOffset(pos))+ (indent * getFontWidth()));
+ for(; i < text.length(); i++){ if(text.charAt(i) == '\n' && i != text.length() - 1){ i++; =======================================--- /src/main/org/brailleblaster/mapping/MapList.java Tue Jul 2 09:14:48 2013 +++ /src/main/org/brailleblaster/mapping/MapList.java Mon Jul 15 11:47:33 2013
@@ -128,9 +128,6 @@ return mid + 1; } else { - if(message.contains("char") && message.getValue("char").equals("\t")){ - return mid + 1; - } if(mid == nodeIndex){ return mid; } @@ -191,9 +188,6 @@ return i; } else { - if(message.contains("char") && message.getValue("char").equals("\t")){ - return i + 1; - } if(i == nodeIndex){ return i; } @@ -221,15 +215,9 @@ for(int i = 0; i < arr.length; i++){ if(i == arr.length - 1){ - // if(start == index + 1) - // arr[i] = new UpdaterThread(this, start, this.size(), offset, total); - // else arr[i] = new UpdaterThread(this, start, this.size(), offset, total); } else { - // if(start == index + 1 )- // arr[i] = new UpdaterThread(this, start, start + length , offset, total);
- // elsearr[i] = new UpdaterThread(this, start, start + length , offset, total);
} @@ -254,15 +242,9 @@ for(int i = 0; i < arr.length; i++){ if(i == arr.length - 1){ - //if(start == index)- //arr[i] = new UpdaterThread(this, start, this.size(), offset, offset);
- //else arr[i] = new UpdaterThread(this, start, this.size(), offset, offset); } else { - //if(start == index)- //arr[i] = new UpdaterThread(this, start, start + length , offset, offset);
- //elsearr[i] = new UpdaterThread(this, start, start + length , offset, offset);
} @@ -462,10 +444,17 @@ } public void incrementCurrent(Message message){ - if(this.currentIndex < this.size() - 1){ + if(this.currentIndex < this.size() - 1 && this.currentIndex > -1){ setCurrent(this.currentIndex + 1); getCurrentNodeData(message); } + else if(this.currentIndex == -1 && this.size() > 0){ + setCurrent(0); + getCurrentNodeData(message); + } + else { + getCurrentNodeData(message); + } } public void decrementCurrent(Message message){ @@ -473,6 +462,13 @@ setCurrent(this.currentIndex - 1); getCurrentNodeData(message); } + else if(this.currentIndex == -1 && this.size() > 0){ + setCurrent(0); + getCurrentNodeData(message); + } + else { + getCurrentNodeData(message); + } } public boolean hasBraille(int index){ =======================================--- /src/main/org/brailleblaster/views/BrailleView.java Mon Jul 15 07:48:47 2013 +++ /src/main/org/brailleblaster/views/BrailleView.java Mon Jul 15 11:47:33 2013
@@ -50,7 +50,6 @@ import org.eclipse.swt.custom.CaretEvent; import org.eclipse.swt.custom.CaretListener; import org.eclipse.swt.custom.StyleRange; -import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.custom.VerifyKeyListener; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.FocusListener; @@ -60,11 +59,7 @@ import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.events.TraverseEvent; -import org.eclipse.swt.events.TraverseListener; import org.eclipse.swt.events.VerifyEvent; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; import org.eclipse.swt.widgets.Group; @@ -84,7 +79,6 @@ private FocusListener focusListener; private MouseListener mouseListener; private CaretListener caretListener; - private TraverseListener traverseListener; private SelectionListener selectionListener; public BrailleView(Group documentWindow, BBSemanticsTable table) { @@ -163,31 +157,13 @@ currentLine = view.getLineAtOffset(view.getCaretOffset()); } } - // System.out.println("Braille Caret:\t" + view.getCaretOffset()); - } - }); - - view.addTraverseListener(traverseListener = new TraverseListener(){ - @Override - public void keyTraversed(TraverseEvent e) {- if(e.stateMask == SWT.CONTROL && e.keyCode == SWT.ARROW_DOWN && nextStart != -1){
- sendIncrementCurrent(dm); - view.setCaretOffset(currentStart); - e.doit = false; - }- else if(e.stateMask == SWT.CONTROL && e.keyCode == SWT.ARROW_UP && previousEnd != -1){
- sendDecrementCurrent(dm); - view.setCaretOffset(currentStart); - e.doit = false; - } } });view.getVerticalBar().addSelectionListener(selectionListener = new SelectionListener(){
@Override public void widgetDefaultSelected(SelectionEvent arg0) { - // TODO Auto-generated method stub - + // TODO Auto-generated method stub } @Override @@ -227,7 +203,6 @@ view.removeFocusListener(focusListener); view.removeMouseListener(mouseListener); view.removeCaretListener(caretListener); - view.removeTraverseListener(traverseListener); view.getVerticalBar().removeSelectionListener(selectionListener); } @@ -252,7 +227,6 @@ previousEnd = (Integer)message.getValue("previousBrailleEnd"); this.pageRanges.clear();setPageRange((ArrayList<BrailleMapElement>)message.getValue("pageRanges"));
- // System.out.println("Braille:\t " + currentStart + " " + currentEnd); } private void setPageRange(ArrayList<BrailleMapElement> list){ @@ -279,7 +253,6 @@ view.append(textBefore + text); handleStyle(style, n, (Element)t.n.getParent()); -// checkFinalNewline(n);t.brailleList.add(new BrailleMapElement(this.spaceBeforeText + this.total, this.spaceBeforeText + this.total + textLength, n));
this.total += this.spaceBeforeText + textLength + this.spaceAfterText; @@ -314,18 +287,7 @@ private void handleStyle(Styles style, Node n, Element parent){ String viewText = n.getValue(); - // Element brailleParent = (Element)n.getParent(); - // int index = parent.indexOf(brailleParent); - /* - if(index > 1){- if(parent.getChild(index - 2) instanceof Element && ((Element)parent.getChild(index - 2)).getLocalName().equals("br")){
- insertBefore(this.spaceBeforeText + this.total, "\n"); - } - } - else if(parent.getAttributeValue("semantics").contains("action")){ - checkForLineBreak((Element)parent.getParent(), parent); - } - */ + for (Entry<StylesType, String> entry : style.getEntrySet()) { switch(entry.getKey()){ case linesBefore: @@ -360,29 +322,6 @@ System.out.println(entry.getKey()); } } - - /* - if(parent.getAttributeValue("semantics").contains("action")){ - Element grandParent = (Element)parent.getParent(); - while(grandParent.getAttributeValue("semantics").contains("action")){ - parent = grandParent; - grandParent = (Element)grandParent.getParent(); - } -- if(isLast(n) && grandParent.indexOf(parent) == grandParent.getChildCount() - 1){ - // insertAfter(this.spaceBeforeText + this.total + n.getValue().length() + this.spaceAfterText, "\n");
- } - } - else if(parent.getAttributeValue("semantics").equals("style,list")){ - // if(isLast(n))- // insertAfter(this.spaceBeforeText + this.total + viewText.length() + this.spaceAfterText, "\n");
- } - else if(isLast(n)){ - Elements els = parent.getChildElements();- // if(els.size() > 0 && els.get(els.size() - 1).getLocalName().equals("brl")) - // insertAfter(this.spaceBeforeText + this.total + n.getValue().length() + this.spaceAfterText, "\n");
- } - */ } private boolean followsNewLine(Node n){ @@ -396,12 +335,7 @@ return false; } - private boolean isFirst(Node n){ - //From earlier pre-formatted version - //if(((Element)n.getParent().getParent()).getLocalName().equals("span")){ - // return false; - //} - + private boolean isFirst(Node n){ int i = 0; Element parent = (Element)n.getParent(); @@ -532,8 +466,7 @@ dm.dispatch(message); setViewData(message); - // System.out.println("Start" + start);- if(c == SWT.DEL && view.getText(start, start).equals("\t") && (start != currentEnd && start != previousEnd)){
+ if(c == SWT.DEL && (start != currentEnd && start != previousEnd)){ start--; } =======================================--- /src/main/org/brailleblaster/views/TextView.java Mon Jul 15 07:48:47 2013 +++ /src/main/org/brailleblaster/views/TextView.java Mon Jul 15 11:47:33 2013
@@ -32,7 +32,6 @@ import java.util.Map.Entry; import nu.xom.Element; -import nu.xom.Elements; import nu.xom.Node; import nu.xom.Text; @@ -50,7 +49,6 @@ import org.eclipse.swt.custom.ExtendedModifyEvent; import org.eclipse.swt.custom.ExtendedModifyListener; import org.eclipse.swt.custom.StyleRange; -import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.custom.VerifyKeyListener; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.FocusListener; @@ -60,12 +58,7 @@ import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.events.TraverseEvent; -import org.eclipse.swt.events.TraverseListener; import org.eclipse.swt.events.VerifyEvent; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; @@ -89,10 +82,8 @@ private ExtendedModifyListener modListener; private FocusListener focusListener; private CaretListener caretListener; - private TraverseListener traverseListener; private MouseListener mouseListener; private int originalStart, originalEnd; - private String charAtOffset; public TextView (Group documentWindow, BBSemanticsTable table) {super (documentWindow, LEFT_MARGIN, RIGHT_MARGIN, TOP_MARGIN, BOTTOM_MARGIN);
@@ -115,7 +106,6 @@ selectionArray = view.getSelectionRanges(); if(selectionArray[1] > 0){ setSelection(selectionArray[0], selectionArray[1]); - charAtOffset = view.getText(selectionArray[0], selectionArray[0]); } } }); @@ -226,8 +216,7 @@ if(textChanged == true){ sendUpdate(dm); }- if(view.getCaretOffset() > currentEnd && view.getCaretOffset() < nextStart) - charAtOffset = view.getText(view.getCaretOffset(), view.getCaretOffset());
+ setCurrent(dm); } } @@ -261,29 +250,7 @@ // TODO Auto-generated method stub } }); - - view.addTraverseListener(traverseListener = new TraverseListener(){ - @Override - public void keyTraversed(TraverseEvent e) {- if(e.stateMask == SWT.MOD1 && e.keyCode == SWT.ARROW_DOWN && nextStart != -1){
- if(textChanged == true){ - sendUpdate(dm); - } - sendIncrementCurrent(dm); - view.setCaretOffset(currentStart); - e.doit = false; - }- else if(e.stateMask == SWT.MOD1 && e.keyCode == SWT.ARROW_UP && previousEnd != -1){
- if(textChanged == true){ - sendUpdate(dm); - } - sendDecrementCurrent(dm); - view.setCaretOffset(currentStart); - e.doit = false; - } - } - }); - +view.getVerticalBar().addSelectionListener(scrollbarListener = new SelectionListener(){
@Override public void widgetDefaultSelected(SelectionEvent arg0) { @@ -328,7 +295,6 @@ view.removeFocusListener(focusListener); view.removeVerifyKeyListener(verifyListener); view.removeMouseListener(mouseListener); - view.removeTraverseListener(traverseListener); view.removeCaretListener(caretListener); view.getVerticalBar().removeSelectionListener(scrollbarListener); } @@ -351,11 +317,8 @@ private void setCurrent(DocumentManager dm){ Message message = new Message(BBEvent.SET_CURRENT); message.put("offset", view.getCaretOffset()); - if(charAtOffset != null) - message.put("char", charAtOffset); dm.dispatch(message); setViewData(message); - charAtOffset = null; }private void sendDeleteSpaceMessage(DocumentManager dm, int offset, int key){
@@ -441,22 +404,15 @@String key = this.stylesTable.getKeyFromAttribute((Element)n.getParent());
Styles style = this.stylesTable.makeStylesElement(key, n); - //String text = n.getValue().replace("\n",""); String newText = appendToView(n); int textLength = newText.length(); - //System.out.println("Length: " + newText.length()); - //System.out.println(newText); + view.append(newText); handleStyle(style, n, newText); - // for(int i = 0; i < this.spaceAfterText; i++) - // view.append("\n");list.add(new TextMapElement(this.spaceBeforeText + this.total, this.spaceBeforeText + this.total + textLength,n));
this.total += this.spaceBeforeText + textLength + this.spaceAfterText; - // if(view.getCharCount() != this.total){ - // System.out.println(view.getCharCount() + " " + this.total); - // } this.spaceAfterText = 0; this.spaceBeforeText = 0; this.escapeChars = 0; @@ -618,20 +574,11 @@ else { text += n.getValue(); } -/* - if(brl != null && brl.getChildCount() > 0){- if(brl.getChild(brl.getChildCount() - 1) instanceof Element && ((Element)brl.getChild(brl.getChildCount() - 1)).getLocalName().equals("newline")){
- this.spaceAfterText++; - } - } -*/ + return text; } private void handleStyle(Styles style, Node n, String viewText){ - // Element parent = (Element)n.getParent(); - //checkForLineBreak(parent, n); - for (Entry<StylesType, String> entry : style.getEntrySet()) { switch(entry.getKey()){ case linesBefore: @@ -659,32 +606,12 @@setFontRange(this.total, this.spaceBeforeText + viewText.length(), Integer.valueOf(entry.getValue()));
break; case leftMargin:- //System.out.println(this.view.getLineAtOffset(this.spaceBeforeText + this.total)); - //this.view.setLineWrapIndent(this.view.getLineAtOffset(this.spaceBeforeText + this.total), 1, this.view.getLineIndent(this.view.getLineAtOffset(this.spaceBeforeText + this.total))+ (2 * getFontWidth()));
handleLineWrap( viewText, Integer.valueOf(entry.getValue())); break; default: System.out.println(entry.getKey()); } } - /* - if(parent.getAttributeValue("semantics").contains("action")){ - Element grandParent = (Element)parent.getParent(); - while(grandParent.getAttributeValue("semantics").contains("action")){ - parent = grandParent; - grandParent = (Element)grandParent.getParent(); - } -- if(isLast(n) && grandParent.indexOf(parent) == grandParent.getChildCount() - 1){ - // insertAfter(this.spaceBeforeText + this.total + viewText.length() + this.spaceAfterText, "\n");
- } - } - else if(isLast(n)){ - Elements els = parent.getChildElements();- // if(els.size() > 0 && els.get(els.size() - 1).getLocalName().equals("brl")) - // insertAfter(this.spaceBeforeText + this.total + viewText.length() + this.spaceAfterText, "\n");
- } - */ } private int getLineNumber(int startOffset, String text){ @@ -716,7 +643,8 @@ if(selectionStart < currentStart){ sendAdjustRangeMessage(dm, "start", currentStart - selectionStart); - updateRange(range, currentStart, e.length); + if(range != null) + updateRange(range, currentStart, e.length); } else if(selectionStart > currentEnd){ sendAdjustRangeMessage(dm, "end", selectionStart - currentEnd); =======================================--- /src/main/org/brailleblaster/wordprocessor/BBDocument.java Wed Jul 10 12:13:38 2013 +++ /src/main/org/brailleblaster/wordprocessor/BBDocument.java Mon Jul 15 11:47:33 2013
@@ -64,11 +64,9 @@ private liblouisutdml lutdml = liblouisutdml.getInstance(); private FileUtils fu = new FileUtils(); static Logger logger = BBIni.getLogger(); - private DocumentManager dm; private ArrayList<String>missingSemanticsList; public BBDocument(DocumentManager dm){ - this.dm = dm; this.missingSemanticsList = new ArrayList<String>(); }public boolean startDocument (InputStream inputStream, String configFile, String configSettings) throws Exception {
@@ -98,8 +96,13 @@ int extPos = completePath.lastIndexOf (".") + 1; String ext = completePath.substring (extPos); if (ext.equalsIgnoreCase ("xml")) {- if(lutdml.translateFile (configFileWithPath, completePath, outFile, logFile, configWithUTD, 0)) + String tempPath = BBIni.getTempFilesPath() + completePath.substring(completePath.lastIndexOf(BBIni.getFileSep()), completePath.lastIndexOf(".")) + "_temp.xml";
+ normalizeFile(completePath, tempPath); ++ if(lutdml.translateFile (configFileWithPath, tempPath, outFile, logFile, configWithUTD, 0)){
+ deleteFile(tempPath); return buildDOM(outFile); + } } else if (ext.equalsIgnoreCase ("txt")) {if(lutdml.translateTextFile (configFileWithPath, completePath, outFile, logFile, configWithUTD, 0))
@@ -144,6 +147,11 @@ return false; } } + + private void normalizeFile(String originalFilePath, String tempFilePath){ + Normalizer n = new Normalizer(originalFilePath); + n.createNewNormalizedFile(tempFilePath); + } public void updateDOM(MapList list, Message message){ switch(message.type){ @@ -207,12 +215,10 @@ brlParent.removeChild(e); } - // System.out.println(e.getValue()); startOffset = t.brailleList.getFirst().start; String logString = ""; for(int i = 0; i < t.brailleList.size(); i++){ - //total += t.brailleList.get(i).n.getValue().length(); total += t.brailleList.get(i).end - t.brailleList.get(i).start; if(afterNewlineElement(t.brailleList.get(i).n) && i > 0){ total++; @@ -263,7 +269,6 @@ boolean first = true; for(int i = 0; i < t.brailleList.size(); i++){ - String text = t.brailleList.get(i).n.getValue(); total += t.brailleList.get(i).n.getValue().length(); logString += t.brailleList.get(i).n.getValue() + "\n"; if(afterNewlineElement(t.brailleList.get(i).n) && !first){ @@ -590,4 +595,9 @@ this.doc = null; System.gc(); } + + private void deleteFile(String path){ + File f = new File(path); + f.delete(); + } } =======================================--- /src/main/org/brailleblaster/wordprocessor/BBMenu.java Mon Jul 15 06:22:25 2013 +++ /src/main/org/brailleblaster/wordprocessor/BBMenu.java Mon Jul 15 11:47:33 2013
@@ -566,26 +566,29 @@ // Set up navigation menu Menu navigateMenu = new Menu(wp.getShell(), SWT.DROP_DOWN); prevElementItem = new MenuItem(navigateMenu, SWT.PUSH); -prevElementItem.setText(lh.localValue("&PreviousElement") + "\tCtrl + Up"); -prevElementItem.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - int index = wp.getFolder().getSelectionIndex(); -// if(index != -1) -// wp.getList().get(index).prevElement(); - }+ prevElementItem.setText(lh.localValue("&PreviousElement") + "\tCtrl + Up");
+ prevElementItem.setAccelerator(SWT.MOD1 + SWT.ARROW_UP); + prevElementItem.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + int index = wp.getFolder().getSelectionIndex(); + if(index != -1) + wp.getList().get(index).prevElement(); + } }); -nextElementItem = new MenuItem(navigateMenu, SWT.PUSH); -nextElementItem.setText(lh.localValue("&NexstElement") + "\tCtrl + Down"); -nextElementItem.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - //dm.placeholder(); - int index = wp.getFolder().getSelectionIndex(); - if(index != -1) - wp.getList().get(index).nextElement(); - } -}); -navigateItem.setMenu(navigateMenu); + nextElementItem = new MenuItem(navigateMenu, SWT.PUSH);+ nextElementItem.setText(lh.localValue("&NexstElement") + "\tCtrl + Down");
+ nextElementItem.setAccelerator(SWT.MOD1 + SWT.ARROW_DOWN); + nextElementItem.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + //dm.placeholder(); + int index = wp.getFolder().getSelectionIndex(); + if(index != -1) + wp.getList().get(index).nextElement(); + } + }); + + navigateItem.setMenu(navigateMenu); // Set up view menu Menu viewMenu = new Menu(wp.getShell(), SWT.DROP_DOWN); =======================================--- /src/main/org/brailleblaster/wordprocessor/DocumentManager.java Mon Jul 15 07:48:47 2013 +++ /src/main/org/brailleblaster/wordprocessor/DocumentManager.java Mon Jul 15 11:47:33 2013
@@ -32,14 +32,12 @@ package org.brailleblaster.wordprocessor; import java.io.File; -import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; -import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; @@ -116,7 +114,6 @@ this.item.setControl(this.group); initializeDocumentTab(); this.document = new BBDocument(this); - // this.wp.getStatusBar().setText("Words: " + 0); logger = BBIni.getLogger(); @@ -137,8 +134,7 @@ wp.getShell().layout(); } - public void fileSave(){ - + public void fileSave(){ // Borrowed from Save As function. Different document types require // different save methods. try { @@ -198,8 +194,7 @@ } // if(tempName != null) } - public void openDocument(String fileName){ - + public void openDocument(String fileName){ // Update file we're about to work on. workingFilePath = fileName; //////////////////////// @@ -253,16 +248,9 @@ // Zip and Recent Files. ////////////////////////- String tempPath = BBIni.getTempFilesPath() + workingFilePath.substring( workingFilePath.lastIndexOf(BBIni.getFileSep()), workingFilePath.lastIndexOf(".")) + "_temp.xml";
- normalizeFile(workingFilePath, tempPath); - initializeAllViews(fileName, tempPath); + initializeAllViews(fileName, workingFilePath); } - private void normalizeFile(String originalFilePath, String tempFilePath){ - Normalizer n = new Normalizer(originalFilePath); - n.createNewNormalizedFile(tempFilePath); - } - private void initializeAllViews(String fileName, String filePath){ // long start = System.currentTimeMillis(); try{ @@ -350,14 +338,12 @@ switch(message.type){ case INCREMENT: list.incrementCurrent(message); - if(list.size() > 0) - this.treeView.setSelection(list.getCurrent(), message, this); + this.treeView.setSelection(list.getCurrent(), message, this); resetCursorData(); break; case DECREMENT: list.decrementCurrent(message); - if(list.size() > 0) - this.treeView.setSelection(list.getCurrent(), message, this); + this.treeView.setSelection(list.getCurrent(), message, this); resetCursorData(); break; case UPDATE_CURSORS: @@ -550,16 +536,40 @@ } } public void nextElement(){ - if(list.size() != 0 ){ - Message message = new Message(BBEvent.INCREMENT); - dispatch(message); + if(list.size() != 0){ + if(text.view.isFocusControl()){ + text.increment(this); + text.view.setCaretOffset(list.getCurrent().start); + } + else if(braille.view.isFocusControl()){ + braille.increment(this);+ braille.view.setCaretOffset(list.getCurrent().brailleList.getFirst().start);
+ } + else { + Message message = new Message(BBEvent.INCREMENT); + dispatch(message); + text.view.setCaretOffset(list.getCurrent().start);+ braille.view.setCaretOffset(list.getCurrent().brailleList.getFirst().start);
+ } } - - if(text.view.isFocusControl()){ - text.view.setCaretOffset(list.getCurrent().start); - } - else if(braille.view.isFocusControl()){- braille.view.setCaretOffset(list.getCurrent().brailleList.getFirst().start);
+ } + + public void prevElement(){ + if(list.size() != 0){ + if(text.view.isFocusControl()){ + text.decrement(this); + text.view.setCaretOffset(list.getCurrent().start); + } + else if(braille.view.isFocusControl()){ + braille.decrement(this);+ braille.view.setCaretOffset(list.getCurrent().brailleList.getFirst().start);
+ } + else { + Message message = new Message(BBEvent.DECREMENT); + dispatch(message); + text.view.setCaretOffset(list.getCurrent().start);+ braille.view.setCaretOffset(list.getCurrent().brailleList.getFirst().start);
+ } } } @@ -664,7 +674,6 @@ setCurrentOnRefresh(null,currentOffset); this.text.view.setCaretOffset(currentOffset); this.text.setPositionFromStart(); - //this.text.view.setFocus(); } }