I've got a tree component on the stage that the user can add folders and questions to. I need to write the data from the tree into a database as the user adds items and then re-build the tree from the database when the user re-opens the program. This works fine except the client wants the user to be able to delete and move items within the tree.

I'm not sure how I can track the position of items within the tree so that it re-builds the tree (from the database values) in the same order as it was when the user closed the program?

At first, I thought I would just add the getDisplayIndex of the selectedNode, but that changes when you expand or collapse a folder, and it would also mean that I would have to update a number in each database entry any time the user moves a folder or item...

Does that make sense??

It's making my head hurt...