Revision: 5432bc6226a4 Branch: default Author: Brandon Roller <brandon.r.roller@xxxxxxxxx> Date: Wed Jan 15 14:26:58 2014 UTC Log: Fixed bug when disposing of tree http://code.google.com/p/brailleblaster/source/detail?r=5432bc6226a4 Modified: /src/main/org/brailleblaster/perspectives/braille/Manager.java /src/main/org/brailleblaster/perspectives/braille/views/tree/BookTree.java /src/main/org/brailleblaster/perspectives/braille/views/tree/TreeView.java =======================================--- /src/main/org/brailleblaster/perspectives/braille/Manager.java Tue Jan 14 18:59:19 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/Manager.java Wed Jan 15 14:26:58 2014 UTC
@@ -1361,15 +1361,25 @@ } public void swapTree(Class<?> clss){ + boolean focused = false; try { + if(treeView.getTree().isFocusControl()) + focused = true; +Constructor<?> constructor = clss.getConstructor(new Class[]{Manager.class, Group.class});
+ treeView.removeListeners(); treeView.dispose(); treeView = (BBTree)constructor.newInstance(this, group); setTabList(); treeView.setRoot(document.getRootElement()); + if(focused) + treeView.getTree().setFocus(); + + treeView.setSelection(list.getCurrent(), new Message(null)); treeView.getView().getParent().layout(); treeView.initializeListeners(this); saveTree(); + } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (SecurityException e) { =======================================--- /src/main/org/brailleblaster/perspectives/braille/views/tree/BookTree.java Tue Jan 14 17:57:01 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/views/tree/BookTree.java Wed Jan 15 14:26:58 2014 UTC
@@ -67,8 +67,6 @@Message m = Message.createSetCurrentMessage("tree", data.element.start, false);
setCursorOffset(0); dm.dispatch(m); -- System.out.println(getStartRange(tree.getSelection()[0]) + " " + getEndRange(tree.getSelection()[0]));
} } } @@ -86,8 +84,7 @@ Message cursorMessage = Message.createUpdateCursorsMessage("tree"); dm.dispatch(cursorMessage); } - } - + } }); } =======================================--- /src/main/org/brailleblaster/perspectives/braille/views/tree/TreeView.java Tue Jan 14 17:45:10 2014 UTC +++ /src/main/org/brailleblaster/perspectives/braille/views/tree/TreeView.java Wed Jan 15 14:26:58 2014 UTC
@@ -21,7 +21,7 @@ private Group group; protected Manager manager; - + private FocusListener focusListener; public TreeView(final Manager dm, Group documentWindow){super(documentWindow, LEFT_MARGIN, RIGHT_MARGIN, TOP_MARGIN, BOTTOM_MARGIN);
this.group = documentWindow; @@ -32,7 +32,7 @@ view.getVerticalBar().dispose(); view.getHorizontalBar().dispose(); - view.addFocusListener(new FocusListener(){ + view.addFocusListener(focusListener = new FocusListener(){ @Override public void focusGained(FocusEvent e) { tree.setFocus(); @@ -59,6 +59,7 @@ } public void dispose(){ + view.removeFocusListener(focusListener); tree.removeAll(); tree.dispose(); view.dispose();