orgUnitTab: string;
copyNodesDisabled = true;
deleteNodesDisabled = true;
+ moveNodeUpDisabled = true;
+ moveNodeDownDisabled = true;
@ViewChild('editString', { static: true }) editString: StringComponent;
@ViewChild('errorString', { static: true }) errorString: StringComponent;
console.log('custom: nodeClicked',typeof $event);
this.copyNodesDisabled = !this.isCopyNodesAllowed();
this.deleteNodesDisabled = !this.isDeleteNodesAllowed();
+ this.moveNodeUpDisabled = !this.isMoveNodeUpAllowed();
+ this.moveNodeDownDisabled = !this.isMoveNodeDownAllowed();
}
custom_nodeClicked($event: any) {
console.log('custom: custom_nodeClicked',typeof $event);
this.copyNodesDisabled = !this.isCopyNodesAllowed();
this.deleteNodesDisabled = !this.isDeleteNodesAllowed();
+ this.moveNodeUpDisabled = !this.isMoveNodeUpAllowed();
+ this.moveNodeDownDisabled = !this.isMoveNodeDownAllowed();
}
nodeChecked($event: any) {
}
copySelectedNodes(this.tree.rootNode, targetNode);
+ this.custom_tree.nodeList(); // re-index
+ this.copyNodesDisabled = !this.isCopyNodesAllowed();
}
isDeleteNodesAllowed(): boolean {
this.custom_tree.removeNode(targetNode);
}
}
+ this.custom_tree.nodeList(); // re-index
this.deleteNodesDisabled = !this.isDeleteNodesAllowed();
}
+
+ isMoveNodeUpAllowed(): boolean {
+ const targetNodes = this.custom_tree.selectedNodes();
+ if (targetNodes.length !== 1) {
+ console.log('isMoveNodeUpAllowed: need exactly 1 targetNode selected', false);
+ return false;
+ }
+ const targetNode = targetNodes[0];
+ let parentNode = this.custom_tree.findParentNode(targetNode);
+ if (parentNode) {
+ let index = parentNode.children.indexOf(targetNode);
+ if (index === 0) {
+ console.log('isMoveNodeUpAllowed: cannot move farther', false);
+ return false;
+ }
+ }
+ console.log('isMoveNodeUpAllowed', true);
+ return true;
+ }
+
+ moveNodeUp() {
+ this.moveNodeUpDisabled = !this.isMoveNodeUpAllowed();
+ this.moveNodeDownDisabled = !this.isMoveNodeDownAllowed();
+ const selectedNode = this.custom_tree.selectedNode();
+ if (this.moveNodeUpDisabled) {
+ return;
+ }
+ let parentNode = this.custom_tree.findParentNode(selectedNode);
+ if (parentNode) {
+ let index = parentNode.children.indexOf(selectedNode);
+ if (index > 0) {
+ // Swap the selected node with its previous sibling.
+ let temp = parentNode.children[index - 1];
+ parentNode.children[index - 1] = selectedNode;
+ parentNode.children[index] = temp;
+ this.custom_tree.nodeList(); // re-index
+ this.moveNodeUpDisabled = !this.isMoveNodeUpAllowed();
+ this.moveNodeDownDisabled = !this.isMoveNodeDownAllowed();
+ }
+ }
+ }
+
+ isMoveNodeDownAllowed(): boolean {
+ const targetNodes = this.custom_tree.selectedNodes();
+ if (targetNodes.length !== 1) {
+ console.log('isMoveNodeDownAllowed: need exactly 1 targetNode selected', false);
+ return false;
+ }
+ const targetNode = targetNodes[0];
+ let parentNode = this.custom_tree.findParentNode(targetNode);
+ if (parentNode) {
+ let index = parentNode.children.indexOf(targetNode);
+ if (index < parentNode.children.length - 1) {
+ // great
+ } else {
+ console.log('isMoveNodeDownAllowed: cannot move farther', false);
+ return false;
+ }
+ }
+ console.log('isMoveNodeDownAllowed', true);
+ return true;
+ }
+
+ moveNodeDown() {
+ this.moveNodeDownDisabled = !this.isMoveNodeDownAllowed();
+ this.moveNodeUpDisabled = !this.isMoveNodeUpAllowed();
+ const selectedNode = this.custom_tree.selectedNode();
+ if (this.moveNodeDownDisabled) {
+ return;
+ }
+ let parentNode = this.custom_tree.findParentNode(selectedNode);
+ if (parentNode) {
+ let index = parentNode.children.indexOf(selectedNode);
+ if (index < parentNode.children.length - 1) {
+ // Swap the selected node with its next sibling.
+ let temp = parentNode.children[index + 1];
+ parentNode.children[index + 1] = selectedNode;
+ parentNode.children[index] = temp;
+ this.custom_tree.nodeList(); // re-index
+ this.moveNodeDownDisabled = !this.isMoveNodeDownAllowed();
+ this.moveNodeUpDisabled = !this.isMoveNodeUpAllowed();
+ }
+ }
+ }
+
}