[brailleblaster] [brailleblaster.newdesign] push by brandon....@xxxxxxxxx - Synchronized scrollbars of text and braille view\ on 2013-07-15 14:57 GMT

  • From: brailleblaster@xxxxxxxxxxxxxx
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Mon, 15 Jul 2013 14:57:39 +0000

Revision: 85276e6514aa
Branch:   WithBrailleFormatting
Author:   Brandon Roller <brandon.r.roller@xxxxxxxxx>
Date:     Mon Jul 15 07:48:47 2013
Log:      Synchronized scrollbars of text and braille view\
http://code.google.com/p/brailleblaster/source/detail?r=85276e6514aa&repo=newdesign

Modified:
 /src/main/org/brailleblaster/abstractClasses/AbstractView.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/BBToolBar.java
 /src/main/org/brailleblaster/wordprocessor/DocumentManager.java
 /src/main/org/brailleblaster/wordprocessor/FontManager.java
 /src/main/org/brailleblaster/wordprocessor/Normalizer.java
 /src/main/org/brailleblaster/wordprocessor/WPManager.java

=======================================
--- /src/main/org/brailleblaster/abstractClasses/AbstractView.java Wed Jul 10 05:34:57 2013 +++ /src/main/org/brailleblaster/abstractClasses/AbstractView.java Mon Jul 15 07:48:47 2013
@@ -56,15 +56,16 @@
        protected boolean locked;
        protected static int currentAlignment;
        protected static int topIndex;
+       protected Group group;

        public AbstractView() {
        }

public AbstractView(Group group, int left, int right, int top, int bottom) {
+               this.group = group;
                view = new StyledText(group, SWT.BORDER | SWT.H_SCROLL | 
SWT.V_SCROLL);
                setLayout(left, right, top, bottom);
                view.addModifyListener(viewMod);
-               this.charWidth = getFontWidth();
        }

        // Better use a ModifyListener to set the change flag.
@@ -145,10 +146,12 @@
        protected Element getBrlNode(Node n){
                Element e = (Element)n.getParent();
                int index = e.indexOf(n);
-               if(index != e.getChildCount() - 1)
-                       return (Element)e.getChild(index + 1);
-               else
-                       return null;
+               if(index != e.getChildCount() - 1){
+                       if(((Element)e.getChild(index + 
1)).getLocalName().equals("brl"))
+                               return (Element)e.getChild(index + 1);
+               }
+
+               return null;
        }

        protected int[] getIndexArray(Element e){
@@ -202,7 +205,7 @@
                        if(text.charAt(i) == '\n' && i != text.length() - 1){
                                i++;
                                newPos = pos + i;
- this.view.setLineIndent(this.view.getLineAtOffset(newPos), 1, this.view.getLineIndent(this.view.getLineAtOffset(newPos)) + (indent * getFontWidth())); + this.view.setLineIndent(this.view.getLineAtOffset(newPos), 1, this.view.getLineIndent(this.view.getLineAtOffset(newPos)) + (indent * this.charWidth));
                        }
                }
        }
@@ -227,6 +230,10 @@
                                
checkForLineBreak((Element)newParent.getParent(), newParent);
                }
        }
+
+       public void setcharWidth(){
+               this.charWidth = getFontWidth();
+       }

        public void setTopIndex(int line){
                setListenerLock(true);
@@ -248,6 +255,15 @@
                setLayout(left, right, top, bottom);
                view.getParent().layout();
        }
+
+       public void positionScrollbar(int topIndex){
+               setListenerLock(true);
+               this.group.setRedraw(false);
+               this.view.setTopIndex(topIndex);
+               this.group.setRedraw(true);
+               this.group.getDisplay().getCurrent().update();
+               setListenerLock(false);
+       }

        protected abstract void setViewData(Message message);
        public abstract void resetView(Group group);
=======================================
--- /src/main/org/brailleblaster/views/BrailleView.java Wed Jul 10 05:34:57 2013 +++ /src/main/org/brailleblaster/views/BrailleView.java Mon Jul 15 07:48:47 2013
@@ -56,6 +56,8 @@
 import org.eclipse.swt.events.FocusListener;
 import org.eclipse.swt.events.MouseEvent;
 import org.eclipse.swt.events.MouseListener;
+import org.eclipse.swt.events.PaintEvent;
+import org.eclipse.swt.events.PaintListener;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.events.TraverseEvent;
@@ -200,6 +202,21 @@
                                        }
                                }
                        }
+               });
+
+               view.addPaintListener(new PaintListener(){
+                       @Override
+                       public void paintControl(PaintEvent e) {
+                               if(!getLock()){
+                                       if(topIndex != view.getTopIndex()){
+                                               topIndex = view.getTopIndex();
+                                               Message scrollMessage = new 
Message(BBEvent.UPDATE_SCROLLBAR);
+                                               scrollMessage.put("sender", 
"braille");
+                                               scrollMessage.put("offset", 
view.getOffsetAtLine(topIndex));
+                                               dm.dispatch(scrollMessage);
+                                       }
+                               }
+                       }
                });

                setListenerLock(false);
=======================================
--- /src/main/org/brailleblaster/views/TextView.java Wed Jul 10 05:34:57 2013 +++ /src/main/org/brailleblaster/views/TextView.java Mon Jul 15 07:48:47 2013
@@ -56,6 +56,8 @@
 import org.eclipse.swt.events.FocusListener;
 import org.eclipse.swt.events.MouseEvent;
 import org.eclipse.swt.events.MouseListener;
+import org.eclipse.swt.events.PaintEvent;
+import org.eclipse.swt.events.PaintListener;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.events.TraverseEvent;
@@ -92,7 +94,7 @@
        private int originalStart, originalEnd;
        private String charAtOffset;

-       public TextView (Group documentWindow, BBSemanticsTable table) {
+       public TextView (Group documentWindow, BBSemanticsTable table) {
super (documentWindow, LEFT_MARGIN, RIGHT_MARGIN, TOP_MARGIN, BOTTOM_MARGIN);
                this.stylesTable = table;
                this.total = 0;
@@ -234,7 +236,6 @@
                                if(view.getLineAtOffset(view.getCaretOffset()) 
!= currentLine){
                                        sendStatusBarUpdate(dm);
                                }
-                       //      System.out.println("Caret pos:\t" + 
view.getCaretOffset());
                        }
                });

@@ -290,7 +291,7 @@
                        }

                        @Override
-                       public void widgetSelected(SelectionEvent e) {
+                       public void widgetSelected(SelectionEvent e) {
                                if(!getLock()){
                                        if(topIndex != view.getTopIndex()){
                                                topIndex = view.getTopIndex();
@@ -301,7 +302,22 @@
                                }
                        }
                });
-
+
+               view.addPaintListener(new PaintListener(){
+                       @Override
+                       public void paintControl(PaintEvent e) {
+                               if(!getLock()){
+                                       if(topIndex != view.getTopIndex()){
+                                               topIndex = view.getTopIndex();
+                                               Message scrollMessage = new 
Message(BBEvent.UPDATE_SCROLLBAR);
+                                               scrollMessage.put("offset", 
view.getOffsetAtLine(topIndex));
+                                               dm.dispatch(scrollMessage);
+                                       }
+                               }
+                       }
+
+               });
+
                setListenerLock(false);
        }

@@ -340,7 +356,6 @@
                dm.dispatch(message);
                setViewData(message);
                charAtOffset = null;
-       //      System.out.println("Current:\t" + currentStart + " " + 
currentEnd);
        }

private void sendDeleteSpaceMessage(DocumentManager dm, int offset, int key){
@@ -436,7 +451,7 @@
        //      for(int i = 0; i < this.spaceAfterText; i++)
        //              view.append("\n");

- list.add(new TextMapElement(this.spaceBeforeText + this.total, this.spaceBeforeText + this.total + textLength + this.spaceAfterText,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){
@@ -462,7 +477,6 @@
                        reformattedText = n.getValue();

view.replaceTextRange(currentStart, currentEnd - currentStart, reformattedText); - // System.out.println(message.getValue("length") + " " + reformattedText.length() + " " + reformattedText.replace("\n","").length()); message.put("length", (reformattedText.length() + this.spaceAfterText) - (Integer)message.getValue("length"));
                view.setLineIndent(view.getLineAtOffset(currentStart), 1, 
indent);
                checkStyleRange(range);
@@ -544,7 +558,7 @@
                int start = 0;
                int end = 0;
                int totalLength = 0;
-
+
                if(brl != null){
                        int[] indexes = getIndexArray(brl);
                        if(indexes != null){
@@ -617,6 +631,7 @@
        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:
=======================================
--- /src/main/org/brailleblaster/views/TreeView.java Wed Jul 10 05:34:57 2013 +++ /src/main/org/brailleblaster/views/TreeView.java Mon Jul 15 07:48:47 2013
@@ -85,6 +85,8 @@
                this.tree = new Tree(view, SWT.VIRTUAL | SWT.NONE);

                view.setLayout(new FillLayout());
+               view.getVerticalBar().dispose();
+               view.getHorizontalBar().dispose();

                view.addFocusListener(new FocusListener(){
                        @Override
@@ -189,6 +191,7 @@
                                }
                        }
                });
+
                setListenerLock(false);
        }

=======================================
--- /src/main/org/brailleblaster/wordprocessor/BBToolBar.java Mon Jul 15 06:22:25 2013 +++ /src/main/org/brailleblaster/wordprocessor/BBToolBar.java Mon Jul 15 07:48:47 2013
@@ -53,7 +53,7 @@
                FormData location = new FormData();
                location.left = new FormAttachment(0);
                location.right = new FormAttachment(40);
-               location.top = new FormAttachment(4);
+               location.top = new FormAttachment(1);
                toolBar.setLayoutData(location);

                // Path to dist folder.
=======================================
--- /src/main/org/brailleblaster/wordprocessor/DocumentManager.java Mon Jul 15 06:34:56 2013 +++ /src/main/org/brailleblaster/wordprocessor/DocumentManager.java Mon Jul 15 07:48:47 2013
@@ -264,7 +264,7 @@
        }

        private void initializeAllViews(String fileName, String filePath){
-               //long start = System.currentTimeMillis();
+//             long start = System.currentTimeMillis();
                try{
if(this.document.startDocument(filePath, BBIni.getDefaultConfigFile(), null)){
                                this.group.setRedraw(false);
@@ -300,8 +300,8 @@
                catch(Exception e){
                        e.printStackTrace();
                }
-               //long end = System.currentTimeMillis();
-               //System.out.println("TOTAL: " + (end - start));
+//             long end = System.currentTimeMillis();
+//             System.out.println("TOTAL: " + (end - start));
        }

        private void initializeViews(Node current){
@@ -465,11 +465,11 @@
                        case UPDATE_SCROLLBAR:
                                if(message.contains("sender")){
                                        index = 
list.findClosestBraille(message);
-                                       
this.text.setTopIndex(this.braille.view.getTopIndex());
+                                       
this.text.positionScrollbar(this.braille.view.getTopIndex());
                                }
                                else{
                                        index = list.findClosest(message, 0, 
list.size() - 1);
-                                       
this.braille.setTopIndex(this.text.view.getTopIndex());
+                                       
this.braille.positionScrollbar(this.text.view.getTopIndex());
                                }
                                break;
                        default:
=======================================
--- /src/main/org/brailleblaster/wordprocessor/FontManager.java Mon May 27 17:42:45 2013 +++ /src/main/org/brailleblaster/wordprocessor/FontManager.java Mon Jul 15 07:48:47 2013
@@ -96,6 +96,8 @@


                dm.text.view.setFont(daisyFont);
+               dm.text.setcharWidth();
+               dm.braille.setcharWidth();
                dm.braille.view.setFont(daisyFont);
                dm.braille.view.setEditable(false);

=======================================
--- /src/main/org/brailleblaster/wordprocessor/Normalizer.java Wed Jul 10 05:34:57 2013 +++ /src/main/org/brailleblaster/wordprocessor/Normalizer.java Mon Jul 15 07:48:47 2013
@@ -6,6 +6,7 @@

 import org.w3c.dom.Document;

+import org.w3c.dom.CDATASection;
 import org.w3c.dom.Document;
 import org.w3c.dom.NodeList;
 import org.w3c.dom.Node;
@@ -67,7 +68,7 @@
                        else if(list.item(i) instanceof Text){
                                Text t = (Text)list.item(i);
                                String text = t.getTextContent();
-                               text = text.replace("\n", "");
+                               text = text.replace("\n", " ");
                                t.setTextContent(text);
                        }
                }
=======================================
--- /src/main/org/brailleblaster/wordprocessor/WPManager.java Tue Jun 11 12:01:30 2013 +++ /src/main/org/brailleblaster/wordprocessor/WPManager.java Mon Jul 15 07:48:47 2013
@@ -79,7 +79,7 @@
                this.location = new FormData();
            this.location.left = new FormAttachment(0);
            this.location.right = new FormAttachment(100);
-           this.location.top = new FormAttachment (20);
+           this.location.top = new FormAttachment (13);
            this.location.bottom = new FormAttachment(98);
            this.folder.setLayoutData (this.location);


Other related posts:

  • » [brailleblaster] [brailleblaster.newdesign] push by brandon....@xxxxxxxxx - Synchronized scrollbars of text and braille view\ on 2013-07-15 14:57 GMT - brailleblaster