Summary
This interface makes it possible to modify sub-trees of AuboCaps. The structure of trees is separated from the contents of the nodes. The TreeNode interface is concerned with the structure of trees whereas the ProgramNode interface deals with the concrete content of the nodes of the tree.
Getting started with program modification
A ProgramModel contains a:
-
getProgramNodeFactory() - that makes it possible to create new program nodes (both built-in AuboScope nodes and AuboCap program nodes).
-
getRootTreeNode(ProgramNodeContribution root)} - returns the sub-tree of a given AuboCap ProgramNodeContribution
The TreeNode interface supports insertion and removal of nodes. With it you can retrieve the list of children of particular nodes. Calling lockChildSequence on a tree node, locks the immediate children under the node. I.e. children can not be rearranged, deleted or have other nodes inserted into the child sequence by the end user.
Example code
public class UpdateProgramExampleContribution implements
ProgramNodeContribution { ProgramModel programModel;
public UpdateProgramExampleContribution(URCapAPI urCapAPI) {
this.programModel = urCapAPI.getProgramModel();
}
private void insertIntoProgramTree() {
TreeNode treeNode = programModel.createRootTreeNode(this);
try {
treeNode.addChild(programModel.getProgramNodeFactory().createCommentNode());
} catch (TreeStructureException e) {
// Your handler code
}
}
//...
//... rest of the implementation and a call to insertIntoProgramTree()
//...
}
Definition at line 62 of file program_model.h.