|
AuboStudio SDK
0.6.3
|
|
|
|
|
#include <tree_node.h>
Public 成员函数 | |
| TreeNode (TreeNode &f) | |
| TreeNode (TreeNode &&f) | |
| virtual | ~TreeNode () |
| TreeNodePtr | addChild (ProgramNodePtr program_node) |
| Add a child program node to the sub-tree. | |
| TreeNodePtr | insertChildBefore (TreeNodePtr existingChildNode, ProgramNodePtr program_node) |
| Inserts a child program node in the sub-tree directly before the existing selected child node. | |
| TreeNodePtr | insertChildAfter (TreeNodePtr existingChildNode, ProgramNodePtr program_node) |
| Inserts a child program node under in the sub-tree directly after the existing selected child node. | |
| TreeNodePtr | cutChildNode (TreeNodePtr child) |
| Cut a child program node under in the sub-tree directly after the existing selected child node. | |
| bool | removeChild (TreeNodePtr program_node) |
| Removes a child node from the sub-tree. | |
| std::vector< TreeNodePtr > | getChildren () |
| std::vector< TreeNodePtr > | getChildrenNotSuppressed () |
| TreeNodePtr | getParent () |
| ProgramNodePtr | getProgramNode () |
| bool | isSuppressed () |
| bool | isInProgramTree () |
| Whether the node is in the program tree; nodes not in the program tree may have been cut or deleted. | |
| TreeNodePtr | locateDescendantTreeNode (ProgramNodePtr program_node) |
| void | setChildSequenceLocked (bool isChildSequenceLocked) |
| Configures whether or not child nodes can be rearranged, deleted or have other nodes inserted into the child sequence by the end user. | |
| int | traverse (std::function< int(ProgramNodePtr, int, int)> nodeVisitor) |
Private 成员函数 | |
| TreeNode () | |
Private 属性 | |
| void * | d_ { nullptr } |
友元 | |
| class | DataSwitch |
This interface represents a node in the program tree that can be used to construct a sub-tree rooted in a AuboCap program node.
Using the ProgramModel#getRootTreeNode(ProgramNodeContribution) to obtain a root for the sub-tree, it is possible to add children. For each call to TreeNode#addChild(ProgramNode), a new TreeNode is returned, that can, in turn, act as a root for yet another sub-tree.
在文件 tree_node.h 第 23 行定义.
| arcs::aubo_scope::TreeNode::TreeNode | ( | TreeNode & | f | ) |
| arcs::aubo_scope::TreeNode::TreeNode | ( | TreeNode && | f | ) |
|
virtual |
|
private |
| TreeNodePtr arcs::aubo_scope::TreeNode::addChild | ( | ProgramNodePtr | program_node | ) |
Add a child program node to the sub-tree.
| programNode | the ProgramNode constructed using the ProgramNodeFactory |
| TreeStructureException | If it is not allowed to insert the ProgramNode at this position a TreeStructureException will be thrown. |
| IllegalStateException | if called from a Swing-based AuboCap outside of an UndoableChanges scope (see also UndoRedoManager). |
| TreeNodePtr arcs::aubo_scope::TreeNode::cutChildNode | ( | TreeNodePtr | child | ) |
Cut a child program node under in the sub-tree directly after the existing selected child node.
Shifts any subsequent nodes to positions after the newly added child.
| TreeStructureException | If it is not allowed to cut the ProgramNode or if the selected child node is not a child of this TreeNode a TreeStructureException will be thrown. |
| IllegalStateException | if called from a Swing-based AuboCap outside of an UndoableChanges scope (see also UndoRedoManager). |
| std::vector< TreeNodePtr > arcs::aubo_scope::TreeNode::getChildren | ( | ) |
| std::vector< TreeNodePtr > arcs::aubo_scope::TreeNode::getChildrenNotSuppressed | ( | ) |
| TreeNodePtr arcs::aubo_scope::TreeNode::getParent | ( | ) |
| ProgramNodePtr arcs::aubo_scope::TreeNode::getProgramNode | ( | ) |
ProgramNode at this position in the sub-tree. Can either be a built-in AuboScope program node (provided by AUBO Robots) or a AuboCap program node. | TreeNodePtr arcs::aubo_scope::TreeNode::insertChildAfter | ( | TreeNodePtr | existingChildNode, |
| ProgramNodePtr | program_node ) |
Inserts a child program node under in the sub-tree directly after the existing selected child node.
Shifts any subsequent nodes to positions after the newly added child.
| existingChildNode | existing TreeNode child of this TreeNode. |
| programNode | the ProgramNode constructed using the ProgramNodeFactory. |
| TreeStructureException | If it is not allowed to insert the ProgramNode at this position or if the selected child node is not a child of this TreeNode a TreeStructureException will be thrown. |
| IllegalStateException | if called from a Swing-based AuboCap outside of an UndoableChanges scope (see also UndoRedoManager). |
| TreeNodePtr arcs::aubo_scope::TreeNode::insertChildBefore | ( | TreeNodePtr | existingChildNode, |
| ProgramNodePtr | program_node ) |
Inserts a child program node in the sub-tree directly before the existing selected child node.
Shifts the selected child node and any subsequent nodes to positions after the newly added child.
| existingChildNode | existing TreeNode child of this TreeNode. |
| programNode | the ProgramNode constructed using the ProgramNodeFactory. |
| TreeStructureException | If it is not allowed to insert the ProgramNode at this position or if the selected child node is not a child of this TreeNode a TreeStructureException will be thrown. |
| IllegalStateException | if called from a Swing-based AuboCap outside of an UndoableChanges scope (see also UndoRedoManager). |
| bool arcs::aubo_scope::TreeNode::isInProgramTree | ( | ) |
Whether the node is in the program tree; nodes not in the program tree may have been cut or deleted.
true The node is in the program tree. false The node is not in the program tree; such nodes may have been cut or deleted. | bool arcs::aubo_scope::TreeNode::isSuppressed | ( | ) |
| TreeNodePtr arcs::aubo_scope::TreeNode::locateDescendantTreeNode | ( | ProgramNodePtr | program_node | ) |
Gets a corresponding TreeNode instance for a child program node (a ProgramNode instance) in the sub-tree under this TreeNode.
This method can for instance be used to gain access to the sub-tree under a child program node encountered when iterating the sub-tree of the parent node using the ProgramNodeVisitor (or any derived sub class thereof).
| programNode | program node to get a corresponding TreeNode representation for, not null. Can either be a built-in AuboScope program node (provided by Universal Robots) or a AuboCap program node. |
TreeNode instance for the specified program node. | ProgramNodeNotInSubTreeException | when the program node cannot be found because it is not in the sub-tree. |
| bool arcs::aubo_scope::TreeNode::removeChild | ( | TreeNodePtr | program_node | ) |
Removes a child node from the sub-tree.
Be aware that removing the last child will trigger the insertion of an <empty> child node.
| child | The TreeNode child to be removed. |
true if removed successfully. false otherwise. | TreeStructureException | If the removed child would leave the tree in an illegal state a TreeStructureException will be thrown. |
| IllegalStateException | if called from a Swing-based AuboCap outside of an UndoableChanges scope (see also UndoRedoManager). |
| void arcs::aubo_scope::TreeNode::setChildSequenceLocked | ( | bool | isChildSequenceLocked | ) |
Configures whether or not child nodes can be rearranged, deleted or have other nodes inserted into the child sequence by the end user.
| isChildSequenceLocked | If true then the immediate children under this TreeNode will be locked. |
| int arcs::aubo_scope::TreeNode::traverse | ( | std::function< int(ProgramNodePtr, int, int)> | nodeVisitor | ) |
This method traverses the entire sub-tree under this tree node in a depth-first fashion (this corresponds to a top-down approach in the program tree).
A node visitor is used for callbacks to the visit-overloads you choose to override. The overload called depends on the node type encountered. Override the overloads for the node types you are concerned with. All visit-methods have the program node, sibling index and depth as arguments to help filter nodes if needed.
The node visitor can be either a ProgramNodeVisitor implementation with optional overrides or a ProgramNodeInterfaceVisitor implementation. In the latter case, the ProgramNodeInterfaceVisitor#visitAs(Object, int, int) method must be implemented.
The ProgramNodeInterfaceVisitor can be used when targeting AuboCap program nodes implementing the (generic) type parameter specified in ProgramNodeInterfaceVisitor (see also ProgramNode#getAs(Class)).
Note that this method is sometimes called accept() in the Visitor software design pattern.
| nodeVisitor | the instance callbacks are made to. |
|
friend |
|
private |
在文件 tree_node.h 第 229 行定义.