Post Reply 
 
Thread Rating:
  • 335 Votes - 2.85 Average
  • 1
  • 2
  • 3
  • 4
  • 5
TreeControl with Draggable Nodes and Json Data
07-01-2011, 10:05 AM (This post was last modified: 07-01-2011 11:35 AM by ashimo.)
Post: #1
TreeControl with Draggable Nodes and Json Data
This is a customized TreeControl that supports data binding and rearranging the nodes by drag and drop. The value of the control is represented as a JSON string.

The test applet shows the tree at the left and a TextArea at the right. Both are bound to the "data" field of the same RecordSet, so editing either one will affect the other one. As you drag nodes around in the tree, you'll see the string value change in the TextArea. If you edit in the TextArea (tab away to "finish" the edit), the tree will be updated to match. If you create bad JSON, it will throw an exception, of course, so do something simple like changing a + to a -!

When you drop a node, the JsonTreeItem.move method is invoked. This rearranges the nodes as appropriate and updates the data value. This causes the control to rebuild the UI as needed.

There can be improved but it is a good start. One thing I haven't done yet is to recognize when the item is dropped at some amount of indent. In that case, the dropped node should go in as a child node.

jsontree.zip
Find all posts by this user
Quote this message in a reply
Post Reply 


Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  Source code for COM.CURL.IO.JSON ashimo 0 4,453 07-01-2011 09:56 AM
Last Post: ashimo
Forum Jump:


User(s) browsing this thread:
1 Guest(s)