Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.gui > #1669
| 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 |
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
valueForPathChanged event "rob" <rob@THRWHITE.remove-dii-this> - 2011-04-27 15:34 +0000
csiph-web