[brailleblaster] push by brandon....@xxxxxxxxx - Refactored code for removing elements on 2014-12-01 16:04 GMT

  • From: brailleblaster@xxxxxxxxxxxxxx
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Mon, 01 Dec 2014 16:04:44 +0000

Revision: f26934b00ff7
Branch:   rt1835-UndoRemoveElement
Author:   Brandon Roller<brandon.r.roller@xxxxxxxxx>
Date:     Mon Dec  1 16:01:25 2014 UTC
Log:      Refactored code for removing elements
https://code.google.com/p/brailleblaster/source/detail?r=f26934b00ff7

Added:
/src/main/org/brailleblaster/perspectives/braille/stylers/ElementRemover.java
Modified:
 /src/main/org/brailleblaster/perspectives/braille/Manager.java
/src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java
 /src/main/org/brailleblaster/perspectives/braille/eventQueue/RedoQueue.java
 /src/main/org/brailleblaster/perspectives/braille/messages/BBEvent.java
 /src/main/org/brailleblaster/perspectives/braille/messages/Message.java
 /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java

=======================================
--- /dev/null
+++ /src/main/org/brailleblaster/perspectives/braille/stylers/ElementRemover.java Mon Dec 1 16:01:25 2014 UTC
@@ -0,0 +1,75 @@
+package org.brailleblaster.perspectives.braille.stylers;
+
+import org.brailleblaster.perspectives.braille.Manager;
+import org.brailleblaster.perspectives.braille.eventQueue.EventFrame;
+import org.brailleblaster.perspectives.braille.mapping.elements.TextMapElement;
+import org.brailleblaster.perspectives.braille.mapping.maps.MapList;
+import org.brailleblaster.perspectives.braille.messages.Message;
+import org.brailleblaster.perspectives.braille.viewInitializer.ViewInitializer;
+import org.brailleblaster.perspectives.braille.views.tree.BBTree;
+import org.brailleblaster.perspectives.braille.views.wp.BrailleView;
+import org.brailleblaster.perspectives.braille.views.wp.TextView;
+
+public class ElementRemover {
+       Manager manager;
+       MapList list;
+       TextView text;
+       BrailleView braille;
+       BBTree tree;
+       ViewInitializer vi;
+       EventFrame eventFrame;
+
+       public ElementRemover(Manager manager, MapList list, ViewInitializer 
vi){
+               this.manager = manager;
+               this.list = list;
+               this.vi = vi;
+               text = manager.getText();
+               braille = manager.getBraille();
+               tree = manager.getTreeView();
+       }
+
+       public void removeNode(Message m){
+               int index = (Integer)m.getValue("index");
+               if(list.get(index).isMathML() )
+                       removeMathMLElement(m);
+               else
+                       removeElement(m);
+       }
+
+       private void removeElement(Message message){
+               int index = (Integer)message.getValue("index");
+               tree.removeItem(list.get(index), message);
+               manager.getDocument().updateDOM(list, message);
+               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);
+               }
+       }
+
+       private void removeMathMLElement(Message m){
+               int index = (Integer)m.getValue("index");
+               TextMapElement t = list.get(index);
+               m.put("start", t.start);
+               manager.getDocument().updateDOM(list, m);
+               braille.removeMathML(t);
+               text.removeMathML(m);
+               tree.removeMathML(t);
+               index = list.indexOf(t);
+               list.updateOffsets(index, m);
+               vi.remove(list, index);
+
+               if(list.size() == 0){
+                       text.removeListeners();
+                       braille.removeListeners();
+                       tree.removeListeners();
+                       list.clearList();
+                       text.view.setEditable(false);
+               }
+       }
+}
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/Manager.java Tue Nov 25 18:49:04 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/Manager.java Mon Dec 1 16:01:25 2014 UTC
@@ -73,6 +73,7 @@
import org.brailleblaster.perspectives.braille.spellcheck.SpellCheckManager;
 import org.brailleblaster.perspectives.braille.stylepanel.StyleManager;
 import org.brailleblaster.perspectives.braille.stylers.BoxlineHandler;
+import org.brailleblaster.perspectives.braille.stylers.ElementRemover;
 import org.brailleblaster.perspectives.braille.stylers.HideActionHandler;
 import org.brailleblaster.search.*;
 import org.brailleblaster.perspectives.braille.viewInitializer.ViewFactory;
@@ -265,12 +266,10 @@
                PropertyFileManager pfm = BBIni.getPropertyFileManager();
                String view = pfm.getProperty("editorView");
                if(view != null){
-                       if(view.equals(text.getClass().getCanonicalName())){
+                       if(view.equals(text.getClass().getCanonicalName()))
                                editorSash.setMaximizedControl(text.view);
-                       }
-                       else 
if(view.equals(braille.getClass().getCanonicalName())){
+                       else 
if(view.equals(braille.getClass().getCanonicalName()))
                                editorSash.setMaximizedControl(braille.view);
-                       }
                }
        }

@@ -444,9 +443,6 @@
                        case REMOVE_NODE:
                                handleRemoveNode(message);
                                break;
-                       case REMOVE_MATHML:
-                               handleRemoveMathML(message);
-                               break;
                        case UPDATE_STATUSBAR:
                                handleUpdateStatusBar(message);
                                break;
@@ -513,11 +509,8 @@
                                if(secList.get(i).getParent().equals(e)){
                                        if(secList.get(i).isVisible())
                                                
list.findTextMapElements(message);
-                                       else {
+                                       else
                                                
secList.get(i).getList().findTextMapElements(message);
-                                               //list = vi.resetViews(i);
-                                               
//list.findTextMapElements(message);
-                                       }
                                }
                        }
                }
@@ -662,7 +655,7 @@
        private void handleUpdate(Message message){
                message.put("selection", 
treeView.getSelection(list.getCurrent()));
                if(list.getCurrent().isMathML()){
- handleRemoveMathML(Message.createRemoveMathMLMessage((Integer)message.getValue("offset"), list.getCurrent().end - list.getCurrent().start, list.getCurrent())); + handleRemoveNode(Message.createRemoveNodeMessage(list.getCurrentIndex(), list.getCurrent().end - list.getCurrent().start));
                        message.put("diff", 0);
                }
                else {
@@ -725,14 +718,12 @@
Styles style = styles.get(styles.getKeyFromAttribute(document.getParent(list.get(currentIndex).n, true)));

                if(style.contains(StylesType.linesBefore)){
- for(int i = 0; i < Integer.valueOf((String)style.get(StylesType.linesBefore)) + 1; i++){ + for(int i = 0; i < Integer.valueOf((String)style.get(StylesType.linesBefore)) + 1; i++)
                                insertionString += "\n";
-                       }
                }
                else if(style.contains(StylesType.linesAfter)){
- for(int i = 0; i < Integer.valueOf((String)style.get(StylesType.linesAfter)) + 1; i++){ + for(int i = 0; i < Integer.valueOf((String)style.get(StylesType.linesAfter)) + 1; i++)
                                insertionString += "\n";
-                       }
                }
                else {
                        insertionString = "\n";
@@ -843,40 +834,8 @@
        }

        private void handleRemoveNode(Message message){
-               int index = (Integer)message.getValue("index");
-               treeView.removeItem(list.get(index), message);
-               document.updateDOM(list, message);
-               list.get(index).brailleList.clear();
-               vi.remove(list, index);
-               //list.remove(index);
-
-               if(list.size() == 0){
-                       text.removeListeners();
-                       braille.removeListeners();
-                       treeView.removeListeners();
-                       list.clearList();
-                       text.view.setEditable(false);
-               }
-       }
-
-       private void handleRemoveMathML(Message m){
-               TextMapElement t = (TextMapElement)m.getValue("TextMapElement");
-               document.updateDOM(list, m);
-               braille.removeMathML(t);
-               text.removeMathML(m);
-               treeView.removeMathML(t);
-               int index = list.indexOf(t);
-               list.updateOffsets(index, m);
-               vi.remove(list, index);
-               //list.remove(t);
-
-               if(list.size() == 0){
-                       text.removeListeners();
-                       braille.removeListeners();
-                       treeView.removeListeners();
-                       list.clearList();
-                       text.view.setEditable(false);
-               }
+               ElementRemover er = new ElementRemover(this, list, vi);
+               er.removeNode(message);
        }

        private void handleUpdateStatusBar(Message message){
@@ -979,7 +938,6 @@
                        }
                }
        }
-

/** Prepares object needed by boxline handler to create boxline around a single element * @param message: Message object passed containing information from style table manager
@@ -1242,9 +1200,8 @@
        }

        public void printPreview(){
-               if(braille.view.getCharCount() > 0){
+               if(braille.view.getCharCount() > 0)
                        new PrintPreview(this.getDisplay(), document, this);
-               }
        }

private void setCurrentOnRefresh(Sender sender, int offset, boolean isBraille){
@@ -1356,8 +1313,6 @@

                        if(index != -1)
                                vi.bufferViews(index);
-                       //if(arch.getOrigDocPath() == null && list.size() == 0)
-                       //      formatTemplateDocument();
                }
                catch (IOException e) {
new Notify("An error occurred while refreshing the document. Please save your work and try again.");
@@ -1539,8 +1494,7 @@
                                j=t.end+1;

                        }
-                       else
-                       {
+                       else {
                            j=j+1;
                        }
                }
@@ -1891,5 +1845,4 @@
                if(!BBIni.debugging())
                        new Notify(notify);
        }
-
 }
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java Tue Oct 7 17:55:13 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/document/BrailleDocument.java Mon Dec 1 16:01:25 2014 UTC
@@ -58,10 +58,7 @@
                                updateNode(list, message);
                                break;
                        case REMOVE_NODE:
-                               
removeNode(list.get((Integer)message.getValue("index")), message);
-                               break;
-                       case REMOVE_MATHML:
- removeMathML((TextMapElement)message.getValue("TextMapElement"), message);
+                               removeNode(list, message);
                                break;
                        default:
                                System.out.println("No available operations for this 
message type");
@@ -141,7 +138,6 @@
                parent.insertChild(p, nodeIndex + 1);

vi.addElementToSection(list, new TextMapElement(textOffset, textOffset, p.getChild(0)), index); - //list.add(index, new TextMapElement(textOffset, textOffset, p.getChild(0)));

                Element brl = new Element("brl");
                brl.appendChild(new Text(""));
@@ -296,6 +292,38 @@
                m.put("brailleLength", 0);
                m.put("newBrailleLength", insertionString.length());
        }
+
+       private void removeNode(MapList list, Message message){
+               int index = (Integer)message.getValue("index");
+               if(list.get(index).isMathML())
+                       removeMathML(list.get(index), message);
+               else
+                       
removeNode(list.get((Integer)message.getValue("index")), message);
+       }
+
+ /** 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);
+               }
+       }

        /** Removes MathML from DOM
         * @param t : TextMapElemetn to remove
@@ -308,9 +336,8 @@
                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")){ + while(index < parent.getChildCount() && parent.getChild(index) instanceof Element && ((Element)parent.getChild(index)).getLocalName().equals("brl"))
                        parent.removeChild(index);
-               }

                if(parent.getChildElements().size() == 0)
                        parent.getParent().removeChild(parent);
@@ -492,30 +519,6 @@
                d = getXML(xml);
                return d;
        }
-
- /** 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);
-               }
-       }

        /** Checks if an element contains other elements other than brl
         * @param e : Element to check
@@ -837,17 +840,14 @@
                        boxline.addAttribute(new 
Attribute("semantics","style,boxline"));
                        for(int i = 0; i < parents.size(); i++){
                                Element parent = 
(Element)parents.get(i).getParent();
-                       //      int index = parent.indexOf(parents.get(i));

                                if(!parents.contains(parent))
                                        
boxline.appendChild(parent.removeChild(parents.get(i)));
                        }

-                       //if(parent != null){
                        grandparent.insertChild(boxline, grandParentIndex);
                        addNamespace(boxline);
                        return boxline;
-                       //}
                }

                return null;
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/eventQueue/RedoQueue.java Tue Nov 25 18:49:04 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/eventQueue/RedoQueue.java Mon Dec 1 16:01:25 2014 UTC
@@ -3,8 +3,6 @@
 import org.brailleblaster.document.BBDocument;
 import org.brailleblaster.perspectives.braille.Manager;
 import org.brailleblaster.perspectives.braille.mapping.maps.MapList;
-import org.brailleblaster.perspectives.braille.messages.Message;
-import org.brailleblaster.perspectives.braille.messages.Sender;
 import org.brailleblaster.perspectives.braille.stylers.HideActionHandler;
import org.brailleblaster.perspectives.braille.viewInitializer.ViewInitializer;

=======================================
--- /src/main/org/brailleblaster/perspectives/braille/messages/BBEvent.java Tue Apr 15 14:34:57 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/messages/BBEvent.java Mon Dec 1 16:01:25 2014 UTC
@@ -47,6 +47,5 @@
        UPDATE_SCROLLBAR,
        UPDATE_STYLE,
        ADJUST_RANGE,
-       REMOVE_MATHML,
        SPLIT_TREE;
 }
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/messages/Message.java Mon Sep 8 17:22:10 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/messages/Message.java Mon Dec 1 16:01:25 2014 UTC
@@ -164,15 +164,6 @@

                return m;
        }
-
- public static Message createRemoveMathMLMessage(int offset, int length, TextMapElement t){
-               Message m = new Message(BBEvent.REMOVE_MATHML);
-               m.put("start", offset);
-               m.put("length", length);
-               m.put("TextMapElement", t);
-
-               return m;
-       }

public static Message createSplitTreeMessage(int firstElementIndex, int secondElementIndex, int currentIndex, int treeIndex){
                Message m = new Message(BBEvent.SPLIT_TREE);
=======================================
--- /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java Tue Nov 25 18:49:04 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/views/wp/TextView.java Mon Dec 1 16:01:25 2014 UTC
@@ -88,6 +88,7 @@
        private boolean textChanged, readOnly;
        private StyleRange range;
        private int[] selectionArray;
+
        private SelectionAdapter selectionListener;
        private TraverseListener traverseListener;
        private SelectionAdapter scrollbarListener;
@@ -98,16 +99,13 @@
        private CaretListener caretListener;
        private MouseAdapter mouseListener;
        private PaintObjectListener paintObjListener;
+
        private int originalStart, originalEnd;
        private TextMapElement currentElement;
        private EditMenu menu;
-
-       int startSelection;
-       int endSelection;

        private boolean multiSelected;

-
public TextView (Manager manager, SashForm sash, BBSemanticsTable table) {
                super (manager, sash, table);
                this.total = 0;
@@ -480,7 +478,7 @@
        }

        private void sendRemoveMathML(TextMapElement t){
- Message removeMessage = Message.createRemoveMathMLMessage(t.start, -(t.end - t.start), t); + Message removeMessage = Message.createRemoveNodeMessage(manager.indexOf(t), -(t.end - t.start));
                removeMessage.put("offset", currentChanges);
                manager.dispatch(removeMessage);
                currentChanges = 0;

Other related posts:

  • » [brailleblaster] push by brandon....@xxxxxxxxx - Refactored code for removing elements on 2014-12-01 16:04 GMT - brailleblaster