Update of /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/treeview
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv10227/src/net/sourceforge/bprocessor/gui/treeview
Modified Files:
GenericTreeView.java
Log Message:
Refactored selection mechanism
Index: GenericTreeView.java
===================================================================
RCS file: /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/treeview/GenericTreeView.java,v
retrieving revision 1.105
retrieving revision 1.106
diff -C2 -d -r1.105 -r1.106
*** GenericTreeView.java 19 Sep 2007 12:43:33 -0000 1.105
--- GenericTreeView.java 19 Sep 2007 14:14:07 -0000 1.106
***************
*** 142,167 ****
/**
- * Listener for the eye
- */
- public class EyeListener extends MouseAdapter {
- /**
- * {@inheritDoc}
- */
- public void mouseClicked(MouseEvent e) {
- super.mouseClicked(e);
- log.info("Eye were clicked");
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void mousePressed(MouseEvent e) {
- super.mousePressed(e);
- log.info("Clicked on " + e.getSource());
- }
- }
-
- /**
* Renderer
*/
--- 142,145 ----
***************
*** 252,255 ****
--- 230,234 ----
}
}
+
/**
***************
*** 284,287 ****
--- 263,288 ----
/**
+ * Synchronize the selection in graphical view to match
+ * selection in this GenericTreeView.
+ */
+ public void synchronizeRight() {
+ TreePath[] paths = getSelectionPaths();
+ LinkedList<Geometric> select = new LinkedList<Geometric>();
+ for (int i = 0; i < paths.length; i++) {
+ Object o = paths[i].getLastPathComponent();
+ if (o instanceof DefaultMutableTreeNode) {
+ DefaultMutableTreeNode node = (DefaultMutableTreeNode) o;
+ Object target = node.getUserObject();
+ if (target instanceof Geometric) {
+ select.add((Geometric)target);
+ } else if (target instanceof Parametric) {
+ AttributeView.instance().display(target);
+ }
+ }
+ }
+ Selection.primary().set(select);
+ }
+
+ /**
* Tell the TreeView we are changed
*/
***************
*** 1241,1281 ****
*/
public void valueChanged(TreeSelectionEvent event) {
! if (event.isAddedPath()) {
! GenericTreeView gtv = (GenericTreeView)event.getSource();
! TreePath[] paths = gtv.getSelectionPaths();
! LinkedList<Geometric> select = new LinkedList<Geometric>();
! for (int i = 0; i < paths.length; i++) {
! Object o = paths[i].getLastPathComponent();
! if (o instanceof DefaultMutableTreeNode) {
! DefaultMutableTreeNode node = (DefaultMutableTreeNode) o;
! Object target = node.getUserObject();
! if (target instanceof Geometric) {
! select.add((Geometric)target);
! } else if (target instanceof Parametric) {
! AttributeView.instance().display(target);
! } else {
! log.error("Reached empty branch in ");
! }
!
! } else {
! log.error("It were not a defaultMutatableNode");
! }
! }
! Selection.primary().set(select);
! } else {
! TreePath[] path = event.getPaths();
! LinkedList<Geometric> deselect = new LinkedList<Geometric>();
! for (int i = 0; i < path.length; i++) {
! Object object = path[i].getLastPathComponent();
! if (object instanceof DefaultMutableTreeNode) {
! DefaultMutableTreeNode node = (DefaultMutableTreeNode) object;
! Object target = node.getUserObject();
! if (target instanceof Geometric) {
! deselect.add((Geometric)target);
! }
! }
! }
! Selection.primary().removeAll(deselect);
! }
}
}
--- 1242,1247 ----
*/
public void valueChanged(TreeSelectionEvent event) {
! GenericTreeView gtv = (GenericTreeView)event.getSource();
! gtv.synchronizeRight();
}
}
|