[brailleblaster] push by john.bo...@xxxxxxxxxxxxxxxxx - new version of UTD class on 2012-05-10 12:51 GMT

  • From: brailleblaster@xxxxxxxxxxxxxx
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Thu, 10 May 2012 12:51:55 +0000

Revision: bf1111dcb49c
Author:   John Boyer <john.boyer@xxxxxxxxxxxxxxxxx>
Date:     Thu May 10 05:51:12 2012
Log:      new version of UTD class
http://code.google.com/p/brailleblaster/source/detail?r=bf1111dcb49c

Modified:
 /src/main/org/brailleblaster/wordprocessor/UTD.java

=======================================
--- /src/main/org/brailleblaster/wordprocessor/UTD.java Sun May 6 05:23:28 2012 +++ /src/main/org/brailleblaster/wordprocessor/UTD.java Thu May 10 05:51:12 2012
@@ -83,10 +83,15 @@
     Node beforeBrlonlyNode;
     private boolean firstPage;
     private boolean firstLineOnPage;
-    StringBuilder brailleLine = new StringBuilder (100);
-    StringBuilder printLine = new StringBuilder (100);
+    StringBuilder brailleLine = new StringBuilder (4096);
+    StringBuilder printLine = new StringBuilder (4096);
     DocumentManager dm;
     Document doc;
+    //for threading
+    int numLines;
+    int numPages;
+    int numChars;
+

     UTD (final DocumentManager dm) {
         this.dm = dm;
@@ -124,12 +129,14 @@
             new Notify ("Could not open " + dm.translatedFileName);
             return;
         }
-
-        System.out.println("start getting rootElement");
-
-        Element rootElement = doc.getRootElement();
-        findBrlNodes (rootElement);
-
+        final Element rootElement = doc.getRootElement();
+        //Use threading to keep the control of the window
+        new Thread() {
+            public void run() {
+                findBrlNodes (rootElement);
+            }
+        }
+        .start();
     }

     private void findBrlNodes (Element node) {
@@ -137,7 +144,7 @@
         Element element;
         String elementName;
         for (int i = 0; i < node.getChildCount(); i++) {
-                newNode = node.getChild(i);
+            newNode = node.getChild(i);
             if (newNode instanceof Element) {
                 element = (Element)newNode;
                 elementName = element.getLocalName();
@@ -162,6 +169,20 @@
                     findBrlNodes (element);
                 }
             }
+ if(brailleLine.length()>2048 || printLine.length()>2048 || i== node.getChildCount()-1){
+                dm.display.syncExec(new Runnable() {
+                    public void run() {
+                        dm.braille.view.append(brailleLine.toString());
+                        numChars += brailleLine.length();
+                        brailleLine.delete (0, brailleLine.length());
+                        dm.daisy.view.append(printLine.toString());
+                        printLine.delete (0, printLine.length());
+ dm.statusBar.setText ("Translated " + numPages +" pages, " + numLines + " lines, " + numChars
+                                + " characters.");
+                    }
+                });
+            }
+
         }
     }

@@ -202,11 +223,7 @@

     void showLines () {
         brailleLine.append ("\n");
-        dm.braille.view.append (brailleLine.toString());
-        brailleLine.delete (0, brailleLine.length());
         printLine.append ("\n");
-        dm.daisy.view.append (printLine.toString());
-        printLine.delete (0, printLine.length());
     }

     private void doBrlNode (Element node) {
@@ -230,8 +247,10 @@
                 element = (Element)newNode;
                 elementName = element.getLocalName();
                 if (elementName.equals ("newpage")) {
+                    //page number is updated in doNewpage
                     doNewpage (element);
                 } else if (elementName.equals ("newline")) {
+                    numLines++;
                     doNewline (element);
                 } else if (elementName.equals ("span")) {
                     doSpanNode (element);
@@ -318,11 +337,14 @@

     private void doNewpage (Element node) {
         String pageNumber = node.getAttributeValue ("brlnumber");
-        System.out.print("doNewpage: pageNumber = " +pageNumber);
-        if(pageNumber != null) currentBraillePageNumber = pageNumber;
+ System.out.print("doNewpage: pageNumber = " +pageNumber+", Thread="+ Thread.currentThread().getName());
+        if(pageNumber != null) {
+            currentBraillePageNumber = pageNumber;
+            numPages++;
+        }
         pageNumber = node.getAttributeValue ("printnumber");
         if(pageNumber!= null) currentPrintPageNumber =pageNumber;
-        System.out.println("done");
+        System.out.println("...done");
         //this may need to be reconsidered
         firstLineOnPage = true;
         if (firstPage) {

Other related posts:

  • » [brailleblaster] push by john.bo...@xxxxxxxxxxxxxxxxx - new version of UTD class on 2012-05-10 12:51 GMT - brailleblaster