[brailleblaster] [brailleblaster.newdesign] push by brandon....@xxxxxxxxx - Added line number and word count to status bar on 2013-05-10 16:09 GMT

  • From: brailleblaster@xxxxxxxxxxxxxx
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Fri, 10 May 2013 16:10:09 +0000

Revision: 80b453f64c84
Branch:   default
Author:   Brandon Roller <brandon.r.roller@xxxxxxxxx>
Date:     Fri May 10 09:06:10 2013
Log:      Added line number and word count to status bar
http://code.google.com/p/brailleblaster/source/detail?r=80b453f64c84&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/views/TreeView.java
 /src/main/org/brailleblaster/wordprocessor/BBEvent.java
 /src/main/org/brailleblaster/wordprocessor/BBMenu.java
 /src/main/org/brailleblaster/wordprocessor/BBStatusBar.java
 /src/main/org/brailleblaster/wordprocessor/DocumentManager.java
 /src/main/org/brailleblaster/wordprocessor/WPManager.java

=======================================
--- /src/main/org/brailleblaster/abstractClasses/AbstractView.java Thu May 9 09:30:25 2013 +++ /src/main/org/brailleblaster/abstractClasses/AbstractView.java Fri May 10 09:06:10 2013
@@ -51,7 +51,7 @@
        protected int total;
        protected int spaceBeforeText, spaceAfterText;
        public int positionFromStart;
-       public static int cursorOffset;
+       public static int cursorOffset, currentLine, words;

        public AbstractView() {
        }
@@ -157,6 +157,29 @@
                        return null;
                }
        }
+
+       public int getWordCount(){
+               String text = view.getText();
+               int wordCount = 0;
+               int i = 0;
+               while(i < text.length() && text.charAt(i) == ' '){
+                       i++;
+               }
+
+               for(;i < text.length(); i++){
+                       if(text.charAt(i) == ' '){
+                               wordCount++;
+                               while(i < text.length() && text.charAt(i) == ' 
'){
+                                       i++;
+                               }
+                       }
+               }
+
+               if(text.charAt(text.length() - 1) == ' ')
+                       wordCount--;
+
+               return wordCount;
+       }

        protected abstract void setViewData(Message message);
 }
=======================================
--- /src/main/org/brailleblaster/mapping/MapList.java Thu May 9 09:30:25 2013 +++ /src/main/org/brailleblaster/mapping/MapList.java Fri May 10 09:06:10 2013
@@ -13,7 +13,7 @@
        private static final long serialVersionUID = 1L;
        DocumentManager dm;
        private TextMapElement current;
-       private int currentIndex;
+       private int currentIndex = -1;
        private int prevEnd, nextStart, prevBraille, nextBraille;

        public MapList(DocumentManager dm){
@@ -334,6 +334,20 @@
        private int getNodeIndex(TextMapElement t){
                return this.indexOf(t);
        }
+
+       public void incrementCurrent(Message message){
+               if(this.currentIndex < this.size() - 1){
+                       setCurrent(this.currentIndex + 1);
+                       getCurrentNodeData(message);
+               }
+       }
+
+       public void decrementCurrent(Message message){
+               if(this.currentIndex > 0){
+                       setCurrent(this.currentIndex - 1);
+                       getCurrentNodeData(message);
+               }
+       }

        public boolean hasBraille(int index){
                if(this.get(index).brailleList.size() > 0)
=======================================
--- /src/main/org/brailleblaster/views/BrailleView.java Thu May 9 09:30:25 2013 +++ /src/main/org/brailleblaster/views/BrailleView.java Fri May 10 09:06:10 2013
@@ -143,6 +143,13 @@
if(view.getCaretOffset() > currentEnd || view.getCaretOffset() < currentStart){
                                        setCurrent(dm);
                                }
+
+                               if(view.getLineAtOffset(view.getCaretOffset()) 
!= currentLine){
+                                       Message message = new 
Message(BBEvent.UPDATE_STATUSBAR);
+ message.put("line", "Line: " + String.valueOf(view.getLineAtOffset(view.getCaretOffset()) + 1) + " Words: " + words);
+                                       dm.dispatch(message);
+                                       currentLine = 
view.getLineAtOffset(view.getCaretOffset());
+                               }
                        }
                });

@@ -362,7 +369,7 @@
        private int checkPageRange(int position){
                int offset = 0;
                for(int i = 0; i < this.pageRanges.size(); i++){
-                       if(position + offset >= this.pageRanges.get(i).start){
+                       if(position + offset > this.pageRanges.get(i).start){
                                offset += this.pageRanges.get(i).end - 
this.pageRanges.get(i).start;
                        }
                }
=======================================
--- /src/main/org/brailleblaster/views/TextView.java Thu May 9 09:30:25 2013 +++ /src/main/org/brailleblaster/views/TextView.java Fri May 10 09:06:10 2013
@@ -165,6 +165,10 @@
                                setViewData(message);
// if(oldCursorPosition == -1 || oldCursorPosition < currentStart || oldCursorPosition > currentEnd)
                        //              
view.setCaretOffset((Integer)message.getValue("start"));
+                               Message statusMessage = new 
Message(BBEvent.UPDATE_STATUSBAR);
+ statusMessage.put("line", "Line: " + String.valueOf(view.getLineAtOffset(view.getCaretOffset()) + 1) + " Words: " + words);
+                               dm.dispatch(statusMessage);
+                               currentLine = 
view.getLineAtOffset(view.getCaretOffset());
                        }

                        @Override
@@ -188,8 +192,7 @@
                                else {
                                        positionFromStart -= count;
                                        cursorOffset = count;
-                               }
-
+                               }
                        }
                });

@@ -206,6 +209,13 @@
                                                }
                                        }
                                }
+                               if(view.getLineAtOffset(view.getCaretOffset()) 
!= currentLine){
+                                       Message message = new 
Message(BBEvent.UPDATE_STATUSBAR);
+                                       words = getWordCount();
+ message.put("line", "Line: " + String.valueOf(view.getLineAtOffset(view.getCaretOffset()) + 1) + " Words: " + words);
+                                       dm.dispatch(message);
+                                       currentLine = 
view.getLineAtOffset(view.getCaretOffset());
+                               }
                        }
                });

=======================================
--- /src/main/org/brailleblaster/views/TreeView.java Thu May 9 09:30:25 2013 +++ /src/main/org/brailleblaster/views/TreeView.java Fri May 10 09:06:10 2013
@@ -47,6 +47,8 @@
 import org.eclipse.swt.events.FocusListener;
 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.layout.FillLayout;
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Tree;
@@ -96,6 +98,19 @@
                                        cursorOffset = 0;
                                        dm.dispatch(message);
                                }
+                       }
+               });
+
+               this.tree.addTraverseListener(new TraverseListener(){
+                       @Override
+                       public void keyTraversed(TraverseEvent e) {
+                               if(e.stateMask == SWT.MOD1 && e.keyCode == 
SWT.ARROW_DOWN){
+                                       sendIncrementCurrent(dm);
+                                       e.doit = false;
+                               }
+                               else if(e.stateMask == SWT.MOD1 && e.keyCode == 
SWT.ARROW_UP){
+                                       sendDecrementCurrent(dm);
+                               }
                        }
                });

=======================================
--- /src/main/org/brailleblaster/wordprocessor/BBEvent.java Mon Apr 22 10:36:47 2013 +++ /src/main/org/brailleblaster/wordprocessor/BBEvent.java Fri May 10 09:06:10 2013
@@ -10,5 +10,6 @@
        GET_CURRENT,
        ADJUST_ALIGNMENT,
        ADJUST_INDENT,
+       UPDATE_STATUSBAR,
        ADJUST_RANGE;
 }
=======================================
--- /src/main/org/brailleblaster/wordprocessor/BBMenu.java Thu May 9 09:30:25 2013 +++ /src/main/org/brailleblaster/wordprocessor/BBMenu.java Fri May 10 09:06:10 2013
@@ -490,11 +490,13 @@
                });

                nextElementItem = new MenuItem(editMenu, SWT.PUSH);
-               nextElementItem.setText(lh.localValue("&NexstElement"));
-               nextElementItem.setEnabled(false);
+ 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();
                        }
                });
                assocSelectionItem = new MenuItem(editMenu, SWT.PUSH);
=======================================
--- /src/main/org/brailleblaster/wordprocessor/BBStatusBar.java Tue May 1 23:08:20 2012 +++ /src/main/org/brailleblaster/wordprocessor/BBStatusBar.java Fri May 10 09:06:10 2013
@@ -36,21 +36,19 @@

 class BBStatusBar {

-private Label statusBar;
+       private Label statusBar;

-BBStatusBar (Shell documentWindow) {
-statusBar = new Label (documentWindow, SWT.BORDER);
-statusBar.setText ("This is the status bar.");
-FormData location = new FormData();
-location.left = new FormAttachment(0);
-location.right = new FormAttachment(100);
-location.bottom = new FormAttachment(100);
-statusBar.setLayoutData (location);
-}
-
-void setText (String text) {
-statusBar.setText (text);
-}
+       BBStatusBar (Shell documentWindow) {
+               statusBar = new Label (documentWindow, SWT.BORDER);
+               FormData location = new FormData();
+               location.left = new FormAttachment(0);
+               location.right = new FormAttachment(100);
+               location.bottom = new FormAttachment(100);
+               statusBar.setLayoutData (location);
+       }

+       void setText (String text) {
+               statusBar.setText (text);
+       }
 }

=======================================
--- /src/main/org/brailleblaster/wordprocessor/DocumentManager.java Thu May 9 09:30:25 2013 +++ /src/main/org/brailleblaster/wordprocessor/DocumentManager.java Fri May 10 09:06:10 2013
@@ -34,11 +34,9 @@

 import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.FileWriter;
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;

 import java.util.ArrayList;
 import java.util.logging.Level;
@@ -74,7 +72,6 @@
        WPManager wp;
        TabItem item;
        Group group;
-       BBStatusBar statusBar;
        TreeView treeView;
        TextView text;
        BrailleView braille;
@@ -114,6 +111,7 @@

this.tabList = new Control[]{this.treeView.view, this.text.view, this.braille.view};
                this.group.setTabList(this.tabList);
+               this.wp.getStatusBar().setText("Words: " + 0);

                logger = BBIni.getLogger();

@@ -255,6 +253,7 @@
                                this.text.hasChanged = false;
                                this.braille.hasChanged = false;
                                this.wp.checkToolbarSettings();
+                               this.wp.getStatusBar().setText("Words: " + 
this.text.getWordCount());
                        }
                        else {
                                System.out.println("The Document Base document tree 
is empty");
@@ -311,20 +310,12 @@

                switch(message.type){
                        case INCREMENT:
-                               index = list.getCurrentIndex();
-                               if(index < list.size() - 1){
-                                       list.setCurrent(index + 1);
-                                       list.getCurrentNodeData(message);
-                                       
this.treeView.setSelection(list.getCurrent(), message);
-                               }
+                               list.incrementCurrent(message);
+                               this.treeView.setSelection(list.getCurrent(), 
message);
                                break;
                        case DECREMENT:
-                               index = list.getCurrentIndex();
-                               if(index > 0){
-                                       list.setCurrent(index - 1);
-                                       list.getCurrentNodeData(message);
-                                       
this.treeView.setSelection(list.getCurrent(), message);
-                               }
+                               list.decrementCurrent(message);
+                               this.treeView.setSelection(list.getCurrent(), 
message);
                                break;
                        case SET_CURRENT:
                                list.checkList();
@@ -353,18 +344,14 @@
                        case GET_CURRENT:
                                if(message.getValue("sender").equals("text")){
                                        message.put("lastPosition", 
this.braille.positionFromStart);
-                                       message.put("element", 
list.getCurrent().n);
- message.put("selection", this.treeView.getSelection(list.getCurrent()));
-                                       list.getCurrentNodeData(message);
-                                       
this.treeView.setSelection(list.getCurrent(), message);
                                }
                                else {
                                        message.put("lastPosition", 
this.text.positionFromStart);
-                                       message.put("element", 
list.getCurrent().n);
- message.put("selection", this.treeView.getSelection(list.getCurrent()));
-                                       list.getCurrentNodeData(message);
-                                       
this.treeView.setSelection(list.getCurrent(), message);
                                }
+                               message.put("element", list.getCurrent().n);
+ message.put("selection", this.treeView.getSelection(list.getCurrent()));
+                               list.getCurrentNodeData(message);
+                               this.treeView.setSelection(list.getCurrent(), 
message);
                                break;
                        case TEXT_DELETION:
                                if((Integer)message.getValue("deletionType") == 
SWT.BS){
@@ -398,6 +385,9 @@
                                if(list.size() == 0)
                                        this.text.removeListeners();
                                break;
+                       case UPDATE_STATUSBAR:
+                               
this.wp.getStatusBar().setText((String)message.getValue("line"));
+                               break;
                        case ADJUST_ALIGNMENT:
this.braille.changeAlignment(list.getCurrent().brailleList.getFirst().start, (Integer)message.getValue("alignment"));
                                break;
@@ -491,6 +481,19 @@
                        }
                }
        }
+       public void nextElement(){
+               if(list.size() != 0 ){
+                       Message message = new Message(BBEvent.INCREMENT);
+                       dispatch(message);
+               }
+
+               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 textPrint(){
PrintersManager pn = new PrintersManager(this.wp.getShell(), this.text.view);
=======================================
--- /src/main/org/brailleblaster/wordprocessor/WPManager.java Wed Apr 24 13:54:19 2013 +++ /src/main/org/brailleblaster/wordprocessor/WPManager.java Fri May 10 09:06:10 2013
@@ -101,6 +101,13 @@
                        @Override
                        public void widgetSelected(SelectionEvent e) {
                                checkToolbarSettings();
+                               int index = folder.getSelectionIndex();
+                               if(managerList.get(index).text.view.getCharCount() 
> 0) {
+                                       int wordCount = 
managerList.get(index).text.getWordCount();
+                                       statusBar.setText("Words: " + 
wordCount);
+                               }
+                               else
+                                       statusBar.setText("Words: " + 0);
                        }
            });


Other related posts:

  • » [brailleblaster] [brailleblaster.newdesign] push by brandon....@xxxxxxxxx - Added line number and word count to status bar on 2013-05-10 16:09 GMT - brailleblaster