nexus site path corrected
[portal.git] / ecomp-portal-FE / client / bower_components / jqTree / lib / select_node_handler.js
1 var $, SelectNodeHandler;
2
3 $ = jQuery;
4
5 SelectNodeHandler = (function() {
6   function SelectNodeHandler(tree_widget) {
7     this.tree_widget = tree_widget;
8     this.clear();
9   }
10
11   SelectNodeHandler.prototype.getSelectedNode = function() {
12     var selected_nodes;
13     selected_nodes = this.getSelectedNodes();
14     if (selected_nodes.length) {
15       return selected_nodes[0];
16     } else {
17       return false;
18     }
19   };
20
21   SelectNodeHandler.prototype.getSelectedNodes = function() {
22     var id, node, selected_nodes;
23     if (this.selected_single_node) {
24       return [this.selected_single_node];
25     } else {
26       selected_nodes = [];
27       for (id in this.selected_nodes) {
28         node = this.tree_widget.getNodeById(id);
29         if (node) {
30           selected_nodes.push(node);
31         }
32       }
33       return selected_nodes;
34     }
35   };
36
37   SelectNodeHandler.prototype.getSelectedNodesUnder = function(parent) {
38     var id, node, selected_nodes;
39     if (this.selected_single_node) {
40       if (parent.isParentOf(this.selected_single_node)) {
41         return [this.selected_single_node];
42       } else {
43         return [];
44       }
45     } else {
46       selected_nodes = [];
47       for (id in this.selected_nodes) {
48         node = this.tree_widget.getNodeById(id);
49         if (node && parent.isParentOf(node)) {
50           selected_nodes.push(node);
51         }
52       }
53       return selected_nodes;
54     }
55   };
56
57   SelectNodeHandler.prototype.isNodeSelected = function(node) {
58     if (!node) {
59       return false;
60     } else if (node.id) {
61       if (this.selected_nodes[node.id]) {
62         return true;
63       } else {
64         return false;
65       }
66     } else if (this.selected_single_node) {
67       return this.selected_single_node.element === node.element;
68     } else {
69       return false;
70     }
71   };
72
73   SelectNodeHandler.prototype.clear = function() {
74     this.selected_nodes = {};
75     return this.selected_single_node = null;
76   };
77
78   SelectNodeHandler.prototype.removeFromSelection = function(node, include_children) {
79     if (include_children == null) {
80       include_children = false;
81     }
82     if (!node.id) {
83       if (this.selected_single_node && node.element === this.selected_single_node.element) {
84         return this.selected_single_node = null;
85       }
86     } else {
87       delete this.selected_nodes[node.id];
88       if (include_children) {
89         return node.iterate((function(_this) {
90           return function(n) {
91             delete _this.selected_nodes[node.id];
92             return true;
93           };
94         })(this));
95       }
96     }
97   };
98
99   SelectNodeHandler.prototype.addToSelection = function(node) {
100     if (node.id) {
101       return this.selected_nodes[node.id] = true;
102     } else {
103       return this.selected_single_node = node;
104     }
105   };
106
107   return SelectNodeHandler;
108
109 })();
110
111 module.exports = SelectNodeHandler;