Brett,
The Tree interface will be used to represent a simple programming language for RF Engineers performing sub-circuit testing. Each item in the tree will perform an instrument setting or measure a parameter. Groups of actions, Loops and condiditionals will control items in their sub-directories, so to speak.
The user will navigate the tree manually to add, edit or remove items. When running the program, I need to programmatically move through the tree to determine what item to execute at a particular time. I'm keeping tight control of the actual tags used.
I've already had to write a special routine to determine what child index I'm currently at to allow me to add a new item before or after the current child location. The same routine will help me get around the lack of a 'previous' navigation method. If I can preserve the autonomy of tree navigation, without any special external jump tables or such, I can allow the user to move items around the tree using the mouse and not have to track the changes. During execution, I'll just track my way through the tree.
If I can come up with the artistic ability required, I'll also build custom symbols that depict the different kind of operations that can be assigned to an item in the Tree. In preparation for that, I designate different kind of program actions to specific symbol indexes.
Storage of the content of the tree is done using config files with the Tree Tags being used as Section names. A default set of Keys is used to describe the Items position in the tree and based on the type of program Item, other Keys are used to describe the specifics of the particular operation the Item represents.
I've also built a Right-Click kind of Context menu that the Users will use to build the programs.
Thanks for your interest,
Tom
Certified LabVIEW Developer