[brailleblaster] push by brandon....@xxxxxxxxx - refactored removal of MathML on 2014-12-04 18:39 GMT

  • From: brailleblaster@xxxxxxxxxxxxxx
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Thu, 04 Dec 2014 18:39:41 +0000

Revision: b9ee4f58cfc4
Branch:   rt1835-UndoRemoveElement
Author:   Brandon Roller<brandon.r.roller@xxxxxxxxx>
Date:     Thu Dec  4 18:40:23 2014 UTC
Log:      refactored removal of MathML
https://code.google.com/p/brailleblaster/source/detail?r=b9ee4f58cfc4

Modified:
/src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java /src/main/org/brailleblaster/perspectives/braille/stylers/ElementRemover.java

=======================================
--- /src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java Thu Dec 4 16:29:20 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java Thu Dec 4 18:40:23 2014 UTC
@@ -12,6 +12,7 @@
 import nu.xom.Element;
 import nu.xom.Elements;
 import nu.xom.Node;
+import nu.xom.Nodes;
 import nu.xom.ParsingException;
 import nu.xom.Text;

@@ -328,13 +329,11 @@
         */
        private void removeMathML(TextMapElement t, Message m){
int length = t.brailleList.getLast().end - t.brailleList.getFirst().start;
+               Nodes nodes = (Nodes)m.getValue("nodes");
+               Element parent = (Element)t.parentElement();

-               Element parent = t.parentElement();
-               int index = parent.indexOf(t.n);
-
-               parent.removeChild(index);
- while(index < parent.getChildCount() && parent.getChild(index) instanceof Element && ((Element)parent.getChild(index)).getLocalName().equals("brl"))
-                       parent.removeChild(index);
+               while(nodes.size() > 0)
+                       parent.removeChild(nodes.remove(0));

                if(parent.getChildElements().size() == 0)
                        parent.getParent().removeChild(parent);
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/stylers/ElementRemover.java Thu Dec 4 16:29:20 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/stylers/ElementRemover.java Thu Dec 4 18:40:23 2014 UTC
@@ -4,6 +4,7 @@

 import nu.xom.Element;
 import nu.xom.Node;
+import nu.xom.Nodes;

 import org.brailleblaster.perspectives.braille.Manager;
 import org.brailleblaster.perspectives.braille.eventQueue.Event;
@@ -36,13 +37,12 @@
        }

        public void removeNode(Message m){
+               addEvent(m);
                int index = (Integer)m.getValue("index");
                if(list.get(index).isMathML() )
                        removeMathMLElement(m);
-               else {
-                       addEvent(m);
+               else
                        removeElement(m);
-               }
        }

        private void removeElement(Message message){
@@ -76,7 +76,11 @@
                int index = (Integer)message.getValue("index");
                ArrayList<Integer>treeIndex = tree.getItemPath();
                EventFrame f = new EventFrame();
-               Node node = findElement(list.get(index));
+               Node node;
+               if(list.get(index).isMathML())
+                       node = findMathElement(list.get(index), message);
+               else
+                       node = findElement(list.get(index));

                if(node instanceof Element)
                        message.put("element", node);
@@ -101,6 +105,26 @@
                        return e;
                }
        }
+
+       private Node findMathElement(TextMapElement t, Message m){
+               Nodes nodes = new Nodes();
+               Element parent = t.parentElement();
+               int index = parent.indexOf(t.n) + 1;
+               int count = parent.getChildCount() - 1;
+
+               nodes.append(t.n);
+ while(index < parent.getChildCount() && parent.getChild(index) instanceof Element && ((Element)parent.getChild(index)).getLocalName().equals("brl")){
+                       nodes.append(parent.getChild(index));
+                       index++;
+                       count--;
+               }
+
+               m.put("nodes", nodes);
+               if(count == 0)
+                       return parent;
+
+               return t.n;
+       }

        private void disableViews(){
                text.removeListeners();

Other related posts:

  • » [brailleblaster] push by brandon....@xxxxxxxxx - refactored removal of MathML on 2014-12-04 18:39 GMT - brailleblaster