summaryrefslogtreecommitdiff
path: root/projects/net.wotonomy.ui.swing/src/main/java/net/wotonomy/ui/swing/MutableDisplayGroupNode.java
diff options
context:
space:
mode:
authorBenjamin Culkin <scorpress@gmail.com>2024-05-20 17:58:16 -0400
committerBenjamin Culkin <scorpress@gmail.com>2024-05-20 17:58:16 -0400
commit40a9d99496e098562f090fb7ffce9e749011b131 (patch)
tree437df24d65470582e943e494a52db8ed65a881ae /projects/net.wotonomy.ui.swing/src/main/java/net/wotonomy/ui/swing/MutableDisplayGroupNode.java
parentff072dfe782f6f22123cd4ba050828d35c0d0fbd (diff)
Formatting pass
Diffstat (limited to 'projects/net.wotonomy.ui.swing/src/main/java/net/wotonomy/ui/swing/MutableDisplayGroupNode.java')
-rw-r--r--projects/net.wotonomy.ui.swing/src/main/java/net/wotonomy/ui/swing/MutableDisplayGroupNode.java296
1 files changed, 127 insertions, 169 deletions
diff --git a/projects/net.wotonomy.ui.swing/src/main/java/net/wotonomy/ui/swing/MutableDisplayGroupNode.java b/projects/net.wotonomy.ui.swing/src/main/java/net/wotonomy/ui/swing/MutableDisplayGroupNode.java
index f1568ec..5293bc9 100644
--- a/projects/net.wotonomy.ui.swing/src/main/java/net/wotonomy/ui/swing/MutableDisplayGroupNode.java
+++ b/projects/net.wotonomy.ui.swing/src/main/java/net/wotonomy/ui/swing/MutableDisplayGroupNode.java
@@ -32,185 +32,143 @@ import net.wotonomy.foundation.internal.WotonomyException;
import net.wotonomy.ui.EODisplayGroup;
/**
-* A DisplayGroupNode that exposes the MutableTreeNode interface.
-* This was required so that other subclasses of DisplayGroupNode
-* could opt out of supporting MutableTreeNode (so that they can
-* implement IlvActivity, for example).
-*
-* @author michael@mpowers.net
-* @author $Author: cgruber $
-* @version $Revision: 904 $
-*/
- public class MutableDisplayGroupNode
- extends DisplayGroupNode implements MutableTreeNode
- {
- /**
- * Constructor for all nodes.
- * Root node must have a null delegate.
- */
- public MutableDisplayGroupNode(
- TreeModelAssociation aParentAssociation,
- EODisplayGroup aParentGroup,
- Object anObject )
- {
- super( aParentAssociation, aParentGroup, anObject );
- }
-
- public int getIndex(TreeNode node)
- {
- return getIndex( (DisplayGroupNode) node );
- }
-
- public TreeNode getChildAt(int childIndex)
- {
- return (TreeNode) getChildNodeAt( childIndex );
- }
-
- public TreeNode getParent()
- {
- Object parent = getParentGroup();
- if ( parent instanceof TreeNode )
- {
- return (TreeNode) parent;
- }
- return null;
- }
-
- public void insert(MutableTreeNode aChild, int anIndex)
- {
- if ( aChild instanceof DisplayGroupNode )
- {
- insertObjectAtIndex(
- ((DisplayGroupNode)aChild).object(), anIndex );
- }
- else // not a display group node
- {
- throw new WotonomyException(
- "Cannot insert nodes of type: " + aChild );
- }
- }
-
- /**
- * Removes the node at the index corresponding
- * to the index of the object.
- */
- public void remove(MutableTreeNode node)
- {
- if ( node instanceof DisplayGroupNode )
- {
- remove((DisplayGroupNode)node);
- }
- else // not a display group node
- {
- throw new WotonomyException(
- "Cannot insert nodes of type: " + node );
- }
- }
-
- /**
- * Removes the value in the parent display group
- * at the index that corresponds to the index of this node
- * and add it to the end of the display group that corresponds
- * to the user value of the specified node.
- */
- public void setParent(MutableTreeNode newParent)
- {
- if ( newParent instanceof DisplayGroupNode )
- {
- setParent((DisplayGroupNode)newParent);
- }
- else // not a display group node
- {
- throw new WotonomyException(
- "Cannot set parent to nodes of type: " + newParent );
- }
- }
-
- /**
- * Overridden to remember expanded state for nodes
- * after nodes have been rearranged.
- */
- protected void fireEventsForChanges(
- Object[] oldObjects, Object[] newObjects )
- {
- if ( !( parentAssociation.object() instanceof JTree ) )
- {
- super.fireEventsForChanges( oldObjects, newObjects );
- return;
- }
-
- JTree tree = (JTree) parentAssociation.object();
- Map expansionMap = new HashMap();
- DisplayGroupNode node;
- TreePath path;
- for ( int i = 0; i < oldObjects.length; i++ )
- {
- node = (DisplayGroupNode)
- getChildNodeForObject( oldObjects[i] );
- if ( node != null && ! node.isLeaf() )
- {
- expansionMap.put( node, new Boolean(
- tree.isExpanded( node.treePath() ) ) );
- }
- }
-
- super.fireEventsForChanges( oldObjects, newObjects );
-
- Object value;
- Iterator iterator = new LinkedList( childNodes.values() ).iterator();
- while ( iterator.hasNext() )
- {
- node = (DisplayGroupNode) iterator.next();
- value = expansionMap.get( node );
- if ( value != null )
- {
- if ( Boolean.TRUE.equals( value ) )
- {
- tree.expandPath( node.treePath() );
- }
- else
- {
- tree.collapsePath( node.treePath() );
- }
- }
- }
- }
- }
+ * A DisplayGroupNode that exposes the MutableTreeNode interface. This was
+ * required so that other subclasses of DisplayGroupNode could opt out of
+ * supporting MutableTreeNode (so that they can implement IlvActivity, for
+ * example).
+ *
+ * @author michael@mpowers.net
+ * @author $Author: cgruber $
+ * @version $Revision: 904 $
+ */
+public class MutableDisplayGroupNode extends DisplayGroupNode implements MutableTreeNode {
+ /**
+ * Constructor for all nodes. Root node must have a null delegate.
+ */
+ public MutableDisplayGroupNode(TreeModelAssociation aParentAssociation, EODisplayGroup aParentGroup,
+ Object anObject) {
+ super(aParentAssociation, aParentGroup, anObject);
+ }
+
+ public int getIndex(TreeNode node) {
+ return getIndex((DisplayGroupNode) node);
+ }
+
+ public TreeNode getChildAt(int childIndex) {
+ return (TreeNode) getChildNodeAt(childIndex);
+ }
+
+ public TreeNode getParent() {
+ Object parent = getParentGroup();
+ if (parent instanceof TreeNode) {
+ return (TreeNode) parent;
+ }
+ return null;
+ }
+
+ public void insert(MutableTreeNode aChild, int anIndex) {
+ if (aChild instanceof DisplayGroupNode) {
+ insertObjectAtIndex(((DisplayGroupNode) aChild).object(), anIndex);
+ } else // not a display group node
+ {
+ throw new WotonomyException("Cannot insert nodes of type: " + aChild);
+ }
+ }
+
+ /**
+ * Removes the node at the index corresponding to the index of the object.
+ */
+ public void remove(MutableTreeNode node) {
+ if (node instanceof DisplayGroupNode) {
+ remove((DisplayGroupNode) node);
+ } else // not a display group node
+ {
+ throw new WotonomyException("Cannot insert nodes of type: " + node);
+ }
+ }
+
+ /**
+ * Removes the value in the parent display group at the index that corresponds
+ * to the index of this node and add it to the end of the display group that
+ * corresponds to the user value of the specified node.
+ */
+ public void setParent(MutableTreeNode newParent) {
+ if (newParent instanceof DisplayGroupNode) {
+ setParent((DisplayGroupNode) newParent);
+ } else // not a display group node
+ {
+ throw new WotonomyException("Cannot set parent to nodes of type: " + newParent);
+ }
+ }
+
+ /**
+ * Overridden to remember expanded state for nodes after nodes have been
+ * rearranged.
+ */
+ protected void fireEventsForChanges(Object[] oldObjects, Object[] newObjects) {
+ if (!(parentAssociation.object() instanceof JTree)) {
+ super.fireEventsForChanges(oldObjects, newObjects);
+ return;
+ }
+
+ JTree tree = (JTree) parentAssociation.object();
+ Map expansionMap = new HashMap();
+ DisplayGroupNode node;
+ TreePath path;
+ for (int i = 0; i < oldObjects.length; i++) {
+ node = (DisplayGroupNode) getChildNodeForObject(oldObjects[i]);
+ if (node != null && !node.isLeaf()) {
+ expansionMap.put(node, new Boolean(tree.isExpanded(node.treePath())));
+ }
+ }
+
+ super.fireEventsForChanges(oldObjects, newObjects);
+
+ Object value;
+ Iterator iterator = new LinkedList(childNodes.values()).iterator();
+ while (iterator.hasNext()) {
+ node = (DisplayGroupNode) iterator.next();
+ value = expansionMap.get(node);
+ if (value != null) {
+ if (Boolean.TRUE.equals(value)) {
+ tree.expandPath(node.treePath());
+ } else {
+ tree.collapsePath(node.treePath());
+ }
+ }
+ }
+ }
+}
/*
- * $Log$
- * Revision 1.2 2006/02/18 23:19:05 cgruber
- * Update imports and maven dependencies.
+ * $Log$ Revision 1.2 2006/02/18 23:19:05 cgruber Update imports and maven
+ * dependencies.
*
- * Revision 1.1 2006/02/16 13:22:22 cgruber
- * Check in all sources in eclipse-friendly maven-enabled packages.
+ * Revision 1.1 2006/02/16 13:22:22 cgruber Check in all sources in
+ * eclipse-friendly maven-enabled packages.
*
- * Revision 1.8 2003/08/06 23:07:52 chochos
- * general code cleanup (mostly, removing unused imports)
+ * Revision 1.8 2003/08/06 23:07:52 chochos general code cleanup (mostly,
+ * removing unused imports)
*
- * Revision 1.7 2002/04/23 19:12:28 mpowers
- * Reimplemented fireEventsForChanges. Fitter and happier.
+ * Revision 1.7 2002/04/23 19:12:28 mpowers Reimplemented fireEventsForChanges.
+ * Fitter and happier.
*
- * Revision 1.6 2002/04/10 21:20:04 mpowers
- * Better handling for tree nodes when working with editing contexts.
- * Better handling for invalidation. No longer broadcasting events
- * when nodes have not been "registered" in the tree.
+ * Revision 1.6 2002/04/10 21:20:04 mpowers Better handling for tree nodes when
+ * working with editing contexts. Better handling for invalidation. No longer
+ * broadcasting events when nodes have not been "registered" in the tree.
*
- * Revision 1.5 2002/04/03 20:01:47 mpowers
- * Now remembers expanded state.
+ * Revision 1.5 2002/04/03 20:01:47 mpowers Now remembers expanded state.
*
- * Revision 1.4 2002/03/08 23:19:07 mpowers
- * Added getParentGroup to DisplayGroupNode.
+ * Revision 1.4 2002/03/08 23:19:07 mpowers Added getParentGroup to
+ * DisplayGroupNode.
*
- * Revision 1.3 2002/02/27 23:19:17 mpowers
- * Refactoring of TreeAssociation to create TreeModelAssociation parent.
+ * Revision 1.3 2002/02/27 23:19:17 mpowers Refactoring of TreeAssociation to
+ * create TreeModelAssociation parent.
*
- * Revision 1.2 2001/04/22 23:05:33 mpowers
- * Totally revised DisplayGroupNode so each object gets its own node
- * (so the nodes are no longer fixed by index).
+ * Revision 1.2 2001/04/22 23:05:33 mpowers Totally revised DisplayGroupNode so
+ * each object gets its own node (so the nodes are no longer fixed by index).
*
- * Revision 1.1 2001/04/21 23:05:56 mpowers
- * Contributing the tree-specific concrete subclass of DisplayGroupNode.
+ * Revision 1.1 2001/04/21 23:05:56 mpowers Contributing the tree-specific
+ * concrete subclass of DisplayGroupNode.
*
*
*/
-