[brailleblaster] 2 new revisions pushed by brandon....@xxxxxxxxx on 2014-12-04 16:30 GMT

  • From: brailleblaster@xxxxxxxxxxxxxx
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Thu, 04 Dec 2014 16:31:08 +0000

2 new revisions:

Revision: 9fb229a1292c
Branch:   rt1835-UndoRemoveElement
Author:   Brandon Roller<brandon.r.roller@xxxxxxxxx>
Date:     Thu Dec  4 16:29:20 2014 UTC
Log:      Added handling of undoing removal of a text node
https://code.google.com/p/brailleblaster/source/detail?r=9fb229a1292c

Revision: 2a48d28e0d47
Branch:   rt1835-UndoRemoveElement
Author:   Brandon Roller<brandon.r.roller@xxxxxxxxx>
Date:     Thu Dec  4 16:32:11 2014 UTC
Log:      Merged with default
https://code.google.com/p/brailleblaster/source/detail?r=2a48d28e0d47

==============================================================================
Revision: 9fb229a1292c
Branch:   rt1835-UndoRemoveElement
Author:   Brandon Roller<brandon.r.roller@xxxxxxxxx>
Date:     Thu Dec  4 16:29:20 2014 UTC
Log:      Added handling of undoing removal of a text node
https://code.google.com/p/brailleblaster/source/detail?r=9fb229a1292c

Modified:
 /src/main/org/brailleblaster/BBIni.java
/src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java
 /src/main/org/brailleblaster/perspectives/braille/eventQueue/Event.java
 /src/main/org/brailleblaster/perspectives/braille/eventQueue/UndoQueue.java
/src/main/org/brailleblaster/perspectives/braille/stylers/ElementInserter.java /src/main/org/brailleblaster/perspectives/braille/stylers/ElementRemover.java
 /src/main/org/brailleblaster/perspectives/braille/views/wp/BrailleView.java
 /src/main/org/brailleblaster/perspectives/braille/views/wp/WPView.java

=======================================
--- /src/main/org/brailleblaster/BBIni.java     Wed Dec  3 14:32:23 2014 UTC
+++ /src/main/org/brailleblaster/BBIni.java     Thu Dec  4 16:29:20 2014 UTC
@@ -63,10 +63,6 @@
  * @author cmyers
  *
  */
-/**
- * @author cmyers
- *
- */
 public final class BBIni {

        private static BBIni bbini;
@@ -112,7 +108,6 @@
        public final static String propExtension = ".properties";
        private static boolean hSubcommands = false;
        private static boolean hLiblouisutdml = false;
-       // private static FileHandler logFile;
        private static final String BBID = "brlblst";
        private static String instanceId;
        private static String defaultCfg;
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java Wed Dec 3 17:29:00 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java Thu Dec 4 16:29:20 2014 UTC
@@ -301,36 +301,29 @@
                int index = (Integer)message.getValue("index");
                if(list.get(index).isMathML())
                        removeMathML(list.get(index), message);
+               else if(message.contains("element"))
+                       removeElement(message);
                else
-                       
removeNode(list.get((Integer)message.getValue("index")), message);
+                       
removeNode(list.get((Integer)message.getValue("index")));
+       }
+
+       private void removeElement(Message m){
+               Element e = (Element)m.getValue("element");
+               e.getParent().removeChild(e);
        }

/** Removes a node from the DOM, checks whether other children exists, if not the entire element is removed
         * @param t : TextMapElement containing node to remove
         * @param message : message to put element information
         */
-       private void removeNode(TextMapElement t, Message message){
- if(hasNonBrailleChildren(t.parentElement()) && !(t.n instanceof Element)){
-                       Element e = 
(Element)t.brailleList.getFirst().n.getParent();
-                       t.parentElement().removeChild(e);
-                       t.parentElement().removeChild(t.n);
-               }
-               else {
-                       Element parent = t.parentElement();
-                       
while(!parent.getAttributeValue("semantics").contains("style")){
-                               
if(((Element)parent.getParent()).getChildElements().size() <= 1)
-                                       parent = (Element)parent.getParent();
-                               else
-                                       break;
-                       }
-
-                       message.put("element", parent);
-                       parent.getParent().removeChild(parent);
-               }
+       private void removeNode(TextMapElement t){
+               Element e = (Element)t.brailleList.getFirst().n.getParent();
+               t.parentElement().removeChild(e);
+               t.parentElement().removeChild(t.n);
        }

        /** Removes MathML from DOM
-        * @param t : TextMapElemetn to remove
+        * @param t : TextMapElement to remove
         * @param m : message to contain offset information
         */
        private void removeMathML(TextMapElement t, Message m){
@@ -527,7 +520,7 @@
         * @param e : Element to check
         * @return true if non-braille children exist, false if not
         */
-       private boolean hasNonBrailleChildren(Element e){
+       public boolean hasNonBrailleChildren(Element e){
                Elements els = e.getChildElements();
                for(int i = 0; i <els.size(); i++){
                        if(!els.get(i).getLocalName().equals("brl")){
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/eventQueue/Event.java Fri Nov 21 17:40:12 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/eventQueue/Event.java Thu Dec 4 16:29:20 2014 UTC
@@ -2,21 +2,21 @@

 import java.util.ArrayList;

-import nu.xom.Element;
+import nu.xom.Node;
 import nu.xom.ParentNode;

 public class Event {
        EventTypes eventType;
-       Element element;
+       Node node;
        int firstSectionIndex, listIndex, parentIndex, textOffset, 
brailleOffset;
        ArrayList<Integer> treeIndexes;
        ParentNode parent;

- public Event(EventTypes eventType, Element e, int firstSectionIndex, int listIndex, int textOffset, int brailleOffset, ArrayList<Integer> treeIndexes){ + public Event(EventTypes eventType, Node node, int firstSectionIndex, int listIndex, int textOffset, int brailleOffset, ArrayList<Integer> treeIndexes){
                this.eventType = eventType;
-               this.element = (Element)e.copy();
-               this.parent = e.getParent();
-               this.parentIndex = parent.indexOf(e);
+               this.node = (Node)node.copy();
+               this.parent = node.getParent();
+               this.parentIndex = parent.indexOf(node);
                this.firstSectionIndex = firstSectionIndex;
                this.listIndex = listIndex;
                this.textOffset = textOffset;
@@ -24,8 +24,8 @@
                this.treeIndexes = treeIndexes;
        }

-       public Element getElement(){
-               return element;
+       public Node getNode(){
+               return node;
        }

        public ParentNode getParent(){
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/eventQueue/UndoQueue.java Wed Dec 3 14:32:23 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/eventQueue/UndoQueue.java Thu Dec 4 16:29:20 2014 UTC
@@ -28,6 +28,8 @@
                                        es.resetElement(event);
                                        break;
                                case Delete:
+ ElementInserter inserter = new ElementInserter(vi, doc, list, manager);
+                                       inserter.insertElement(event);
                                        break;
                                default:
                                        break;
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/stylers/ElementInserter.java Wed Dec 3 17:29:00 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/stylers/ElementInserter.java Thu Dec 4 16:29:20 2014 UTC
@@ -52,6 +52,57 @@
                else
                        insertElementAtEnd(m);
        }
+
+       public void insertElement(Event ev){
+               ParentNode p = ev.getParent();
+               if(ev.getNode() instanceof Text){
+                       p.insertChild(ev.getNode(), ev.getParentIndex());
+                       Element brl = new Element("brl");
+                       brl.appendChild(new Text(""));
+                       p.insertChild(brl, ev.getParentIndex() + 1);
+ ((Element)p.getChild(ev.getParentIndex() + 1)).setNamespaceURI(doc.getRootElement().getNamespaceURI());
+               }
+               else
+                       p.insertChild(ev.getNode(), ev.getParentIndex());
+
+ if(ev.getNode() instanceof Element && ((Element)ev.getNode()).getAttributeValue("semantics").contains("style")){ + ArrayList<TextMapElement>elList = constructMapElements((Element)ev.getNode(), 0);
+
+ for(int i = 0, index = ev.getListIndex(); i < elList.size(); i++, index++){
+                               list.add(index, elList.get(i));
+ list.get(index).setOffsets(ev.getTextOffset() + 1, ev.getTextOffset() + 1);
+                               for(int j = 0; j < 
list.get(index).brailleList.size(); j++){
+ list.get(index).brailleList.get(j).setOffsets(ev.getBrailleOffset() + 1, ev.getBrailleOffset() + 1);
+                               }
+                       }
+
+                       if(list.size() - 1 != ev.getListIndex() + 1)
+                               list.shiftOffsetsFromIndex(ev.getListIndex() + 
1, 1, 1);
+
+                       text.insertLineBreak(ev.getTextOffset());
+                       braille.insertLineBreak(ev.getBrailleOffset());
+                       tree.rebuildTree(ev.getTreeIndex());
+               }
+               else {
+                       ArrayList<TextMapElement>elList;
+                       if(ev.getNode() instanceof Element)
+                               elList = 
constructMapElements((Element)ev.getNode(), 0);
+                       else
+ elList = constructMapElements((Element)ev.getParent(), ev.getParentIndex());
+
+ for(int i = 0, index = ev.getListIndex(); i < elList.size(); i++, index++){
+                               list.add(index, elList.get(i));
+                               list.get(index).setOffsets(ev.getTextOffset(), 
ev.getTextOffset());
+                               for(int j = 0; j < 
list.get(index).brailleList.size(); j++){
+ list.get(index).brailleList.get(j).setOffsets(ev.getBrailleOffset(), ev.getBrailleOffset());
+                               }
+                       }
+                       tree.rebuildTree(ev.getTreeIndex());
+               }
+
+               list.setCurrent(ev.getListIndex());
+               
manager.dispatch(Message.createUpdateCursorsMessage(Sender.TREE));
+       }

        private void insertElementAtBeginning(Message m){
                if(list.getCurrentIndex() > 0 && list.getCurrent().start != 0)
@@ -96,9 +147,9 @@
                        list = vi.resetViews(f.getFirstSectionIndex());

                Element replacedElement = replaceElement(f);
-               updateSemanticEntry(replacedElement, f.getElement());
+               updateSemanticEntry(replacedElement, (Element)f.getNode());

-               ArrayList<TextMapElement> elList = 
constructMapElements(f.getElement());
+ ArrayList<TextMapElement> elList = constructMapElements((Element)f.getNode(), 0); setViews(elList, f.getListIndex(), f.getTextOffset(), f.getBrailleOffset());

                manager.getTreeView().rebuildTree(f.getTreeIndex());
@@ -109,12 +160,12 @@
                        setTopIndex(f.getTextOffset());
        }

-       private ArrayList<TextMapElement> constructMapElements(Element e){
+ private ArrayList<TextMapElement> constructMapElements(Element e, int index){
                ArrayList<TextMapElement> elList = new 
ArrayList<TextMapElement>();
                if(e.getAttributeValue("semantics").contains("pagenum"))
                        elList.add(makePageMapElement(e));
                else {
-                       for(int i = 0; i < e.getChildCount(); i++){
+                       for(int i = index; i < e.getChildCount(); i++){
                                if(e.getChild(i) instanceof Text)
                                        elList.add(new 
TextMapElement(e.getChild(i)));
else if(e.getChild(i) instanceof Element && ((Element)e.getChild(i)).getLocalName().equals("brl") && !isBoxline(e)){
@@ -126,7 +177,7 @@
else if(e.getChild(i) instanceof Element && ((Element)e.getChild(i)).getLocalName().equals("brl") && isBoxline(e))
                                        elList.add(new 
BrlOnlyMapElement(e.getChild(i), e));
                                else if(e.getChild(i) instanceof Element)
-                                       
elList.addAll(constructMapElements((Element)e.getChild(i)));
+                                       
elList.addAll(constructMapElements((Element)e.getChild(i), 0));
                        }
                }

@@ -197,7 +248,7 @@
        private Element replaceElement(Event f){
                ParentNode parent = f.getParent();
                Element replacedElement = 
(Element)parent.getChild(f.getParentIndex());
-               parent.replaceChild(replacedElement, f.getElement());
+               parent.replaceChild(replacedElement, f.getNode());

                return replacedElement;
        }
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/stylers/ElementRemover.java Mon Dec 1 18:24:59 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/stylers/ElementRemover.java Thu Dec 4 16:29:20 2014 UTC
@@ -1,7 +1,14 @@
 package org.brailleblaster.perspectives.braille.stylers;

+import java.util.ArrayList;
+
+import nu.xom.Element;
+import nu.xom.Node;
+
 import org.brailleblaster.perspectives.braille.Manager;
+import org.brailleblaster.perspectives.braille.eventQueue.Event;
 import org.brailleblaster.perspectives.braille.eventQueue.EventFrame;
+import org.brailleblaster.perspectives.braille.eventQueue.EventTypes;
import org.brailleblaster.perspectives.braille.mapping.elements.TextMapElement;
 import org.brailleblaster.perspectives.braille.mapping.maps.MapList;
 import org.brailleblaster.perspectives.braille.messages.Message;
@@ -32,8 +39,10 @@
                int index = (Integer)m.getValue("index");
                if(list.get(index).isMathML() )
                        removeMathMLElement(m);
-               else
+               else {
+                       addEvent(m);
                        removeElement(m);
+               }
        }

        private void removeElement(Message message){
@@ -43,13 +52,8 @@
                list.get(index).brailleList.clear();
                vi.remove(list, index);

-               if(list.size() == 0){
-                       text.removeListeners();
-                       braille.removeListeners();
-                       tree.removeListeners();
-                       list.clearList();
-                       text.view.setEditable(false);
-               }
+               if(emptyList())
+                       disableViews();
        }

        private void removeMathMLElement(Message m){
@@ -64,12 +68,49 @@
                list.updateOffsets(index, m);
                vi.remove(list, index);

-               if(list.size() == 0){
-                       text.removeListeners();
-                       braille.removeListeners();
-                       tree.removeListeners();
-                       list.clearList();
-                       text.view.setEditable(false);
+               if(emptyList())
+                       disableViews();
+       }
+
+       private void addEvent(Message message){
+               int index = (Integer)message.getValue("index");
+               ArrayList<Integer>treeIndex = tree.getItemPath();
+               EventFrame f = new EventFrame();
+               Node node = findElement(list.get(index));
+
+               if(node instanceof Element)
+                       message.put("element", node);
+
+ f.addEvent(new Event(EventTypes.Delete, node, vi.getStartIndex(), index, list.get(index).start, list.get(index).brailleList.getFirst().start, treeIndex));
+               manager.addUndoEvent(f);
+       }
+
+       private Node findElement(TextMapElement t){
+ if(manager.getDocument().hasNonBrailleChildren(t.parentElement()) && !(t.n instanceof Element)){
+                       return t.n;
                }
+               else {
+                       Element e = t.parentElement();
+                       
while(!e.getAttributeValue("semantics").contains("style")){
+                               
if(((Element)e.getParent()).getChildElements().size() <= 1)
+                                       e = (Element)e.getParent();
+                               else
+                                       break;
+                       }
+
+                       return e;
+               }
+       }
+
+       private void disableViews(){
+               text.removeListeners();
+               braille.removeListeners();
+               tree.removeListeners();
+               list.clearList();
+               text.view.setEditable(false);
+       }
+
+       private boolean emptyList(){
+               return list.size() == 0;
        }
 }
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/views/wp/BrailleView.java Mon Dec 1 18:24:59 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/views/wp/BrailleView.java Thu Dec 4 16:29:20 2014 UTC
@@ -925,15 +925,6 @@
                view.setCaretOffset(originalPosition);
                setListenerLock(false);
        }
-
-       public void insertLineBreak(int insertPosition){
-               setListenerLock(true);
-               int pos = view.getCaretOffset();
-               view.setCaretOffset(insertPosition);
-               view.insert("\n");
-               view.setCaretOffset(pos);
-               setListenerLock(false);
-       }

        @Override
        public void addPageNumber(PageMapElement p, boolean insert) {
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/views/wp/WPView.java Fri Oct 31 18:59:14 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/views/wp/WPView.java Thu Dec 4 16:29:20 2014 UTC
@@ -422,4 +422,13 @@
        public int getTotal(){
                return total;
        }
+
+       public void insertLineBreak(int insertPosition){
+               setListenerLock(true);
+               int pos = view.getCaretOffset();
+               view.setCaretOffset(insertPosition);
+               view.insert("\n");
+               view.setCaretOffset(pos);
+               setListenerLock(false);
+       }
 }

==============================================================================
Revision: 2a48d28e0d47
Branch:   rt1835-UndoRemoveElement
Author:   Brandon Roller<brandon.r.roller@xxxxxxxxx>
Date:     Thu Dec  4 16:32:11 2014 UTC
Log:      Merged with default
https://code.google.com/p/brailleblaster/source/detail?r=2a48d28e0d47

Modified:
 /src/main/org/brailleblaster/BBIni.java
 /src/main/org/brailleblaster/settings/ui/PageNumbersTab.java

=======================================
--- /src/main/org/brailleblaster/BBIni.java     Thu Dec  4 16:29:20 2014 UTC
+++ /src/main/org/brailleblaster/BBIni.java     Thu Dec  4 16:32:11 2014 UTC
@@ -155,17 +155,13 @@
                propManager = new PropertyFileManager(userSettings);

                // Receive about.properties
-               aboutProject = userProgramDataPath + fileSep + "settings" + 
fileSep
-                               + "about.properties";
-               if (!fu.exists(aboutProject)) {
-                       fu.copyFile(programDataPath + fileSep + "settings" + 
fileSep
-                                       + "about.properties", aboutProject);
-               }
+ aboutProject = programDataPath + fileSep + "settings" + fileSep + "about.properties" ;

                //Load values
                Properties prop = new Properties();
-               try {
+               try {
                        prop.load(new FileInputStream(BBIni.getAbout()));
+                       //new FileInputStream(BBIni.getAbout()).;
                } catch (IOException e) {
                        e.printStackTrace();
                }
=======================================
--- /src/main/org/brailleblaster/settings/ui/PageNumbersTab.java Mon Dec 1 18:24:59 2014 UTC +++ /src/main/org/brailleblaster/settings/ui/PageNumbersTab.java Thu Dec 4 16:32:11 2014 UTC
@@ -4,7 +4,6 @@

 import org.brailleblaster.localization.LocaleHandler;
 import org.brailleblaster.settings.SettingsManager;
-
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;

Other related posts:

  • » [brailleblaster] 2 new revisions pushed by brandon....@xxxxxxxxx on 2014-12-04 16:30 GMT - brailleblaster