Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #1669

valueForPathChanged event

From "rob" <rob@THRWHITE.remove-dii-this>
Subject valueForPathChanged event
Message-ID <1179770743.615903.88720@z28g2000prd.googlegroups.com> (permalink)
Newsgroups comp.lang.java.gui
Date 2011-04-27 15:34 +0000
Organization TDS.net

Show all headers | View raw


  To: comp.lang.java.gui
Hello all,

In my program I load xml data from file to the DOM, create a custom
model for the tree and display the data in the gui in the form of a
tree. If I want to edit the elements of the tree I have to modify the
valueForPathChanged event in my tree model.
I can't find any description how to do this in the literature.
Everybody seems to omit that part assuming in their examples that the
tree will not be editable.

I will be very grateful for suggestions how to implement the
valueForPathChanged event in my code  (which is essentially a little
modified code from the java tutorial) so it is possible to edit the
displayed tree nodes.

My tree model looks like this:

class DomToTreeModelAdapter implements javax.swing.tree.TreeModel
{

	private Document document;

		public DomToTreeModelAdapter(Document document)
		{
			this.document=document;
		}

  public Object  getRoot() {
    return new AdapterNode(document);
  }
  public boolean isLeaf(Object aNode) {
    AdapterNode node = (AdapterNode) aNode;
    if (node.childCount() > 0) return false;
    return true;
  }
  public int     getChildCount(Object parent) {
    AdapterNode node = (AdapterNode) parent;
    return node.childCount();
  }
  public Object getChild(Object parent, int index) {
    AdapterNode node = (AdapterNode) parent;
    return node.child(index);
  }
  public int getIndexOfChild(Object parent, Object child) {
    AdapterNode node = (AdapterNode) parent;
    return node.index((AdapterNode) child);
  }
  public void valueForPathChanged(TreePath path, Object newValue) {


	  //AdapterNode node =  (AdapterNode)path.getLastPathComponent();
	    DefaultMutableTreeNode node =
	        (DefaultMutableTreeNode)path.getLastPathComponent();
	    String value = (String)newValue;
	    if (object != null) {
	      node.setUserObject(object);
	    } else {
	      node.setUserObject(value);
	    }*/
	    if (value!=null)
	    	node.setUserObject(value);
  }

  private Vector listenerList = new Vector();
  public void addTreeModelListener(TreeModelListener listener) {
    if ( listener != null  && ! listenerList.contains( listener ) )
    {
       listenerList.addElement( listener );
    }
  }
  public void removeTreeModelListener(TreeModelListener listener) {
    if ( listener != null ) {
       listenerList.removeElement( listener );
    }
  }

  public void fireTreeNodesChanged( TreeModelEvent e ) {
    Enumeration listeners = listenerList.elements();
    while ( listeners.hasMoreElements() ) {
      TreeModelListener listener =
        (TreeModelListener) listeners.nextElement();
      listener.treeNodesChanged( e );
    }
  }
  public void fireTreeNodesInserted( TreeModelEvent e ) {
    Enumeration listeners = listenerList.elements();
    while ( listeners.hasMoreElements() ) {
       TreeModelListener listener =
         (TreeModelListener) listeners.nextElement();
       listener.treeNodesInserted( e );
    }
  }
  public void fireTreeNodesRemoved( TreeModelEvent e ) {
    Enumeration listeners = listenerList.elements();
    while ( listeners.hasMoreElements() ) {
      TreeModelListener listener =
        (TreeModelListener) listeners.nextElement();
      listener.treeNodesRemoved( e );
    }
  }
  public void fireTreeStructureChanged( TreeModelEvent e ) {
    Enumeration listeners = listenerList.elements();
    while ( listeners.hasMoreElements() ) {
      TreeModelListener listener =
        (TreeModelListener) listeners.nextElement();
      listener.treeStructureChanged( e );
    }
  }
}

Regards,
Rob

---
 * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.gui | Previous | Next | Find similar | Unroll thread


Thread

valueForPathChanged event "rob" <rob@THRWHITE.remove-dii-this> - 2011-04-27 15:34 +0000

csiph-web