summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-FE/client/bower_components/jqTree/lib/select_node_handler.js
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-portal-FE/client/bower_components/jqTree/lib/select_node_handler.js')
-rw-r--r--ecomp-portal-FE/client/bower_components/jqTree/lib/select_node_handler.js111
1 files changed, 111 insertions, 0 deletions
diff --git a/ecomp-portal-FE/client/bower_components/jqTree/lib/select_node_handler.js b/ecomp-portal-FE/client/bower_components/jqTree/lib/select_node_handler.js
new file mode 100644
index 00000000..a3274221
--- /dev/null
+++ b/ecomp-portal-FE/client/bower_components/jqTree/lib/select_node_handler.js
@@ -0,0 +1,111 @@
+var $, SelectNodeHandler;
+
+$ = jQuery;
+
+SelectNodeHandler = (function() {
+ function SelectNodeHandler(tree_widget) {
+ this.tree_widget = tree_widget;
+ this.clear();
+ }
+
+ SelectNodeHandler.prototype.getSelectedNode = function() {
+ var selected_nodes;
+ selected_nodes = this.getSelectedNodes();
+ if (selected_nodes.length) {
+ return selected_nodes[0];
+ } else {
+ return false;
+ }
+ };
+
+ SelectNodeHandler.prototype.getSelectedNodes = function() {
+ var id, node, selected_nodes;
+ if (this.selected_single_node) {
+ return [this.selected_single_node];
+ } else {
+ selected_nodes = [];
+ for (id in this.selected_nodes) {
+ node = this.tree_widget.getNodeById(id);
+ if (node) {
+ selected_nodes.push(node);
+ }
+ }
+ return selected_nodes;
+ }
+ };
+
+ SelectNodeHandler.prototype.getSelectedNodesUnder = function(parent) {
+ var id, node, selected_nodes;
+ if (this.selected_single_node) {
+ if (parent.isParentOf(this.selected_single_node)) {
+ return [this.selected_single_node];
+ } else {
+ return [];
+ }
+ } else {
+ selected_nodes = [];
+ for (id in this.selected_nodes) {
+ node = this.tree_widget.getNodeById(id);
+ if (node && parent.isParentOf(node)) {
+ selected_nodes.push(node);
+ }
+ }
+ return selected_nodes;
+ }
+ };
+
+ SelectNodeHandler.prototype.isNodeSelected = function(node) {
+ if (!node) {
+ return false;
+ } else if (node.id) {
+ if (this.selected_nodes[node.id]) {
+ return true;
+ } else {
+ return false;
+ }
+ } else if (this.selected_single_node) {
+ return this.selected_single_node.element === node.element;
+ } else {
+ return false;
+ }
+ };
+
+ SelectNodeHandler.prototype.clear = function() {
+ this.selected_nodes = {};
+ return this.selected_single_node = null;
+ };
+
+ SelectNodeHandler.prototype.removeFromSelection = function(node, include_children) {
+ if (include_children == null) {
+ include_children = false;
+ }
+ if (!node.id) {
+ if (this.selected_single_node && node.element === this.selected_single_node.element) {
+ return this.selected_single_node = null;
+ }
+ } else {
+ delete this.selected_nodes[node.id];
+ if (include_children) {
+ return node.iterate((function(_this) {
+ return function(n) {
+ delete _this.selected_nodes[node.id];
+ return true;
+ };
+ })(this));
+ }
+ }
+ };
+
+ SelectNodeHandler.prototype.addToSelection = function(node) {
+ if (node.id) {
+ return this.selected_nodes[node.id] = true;
+ } else {
+ return this.selected_single_node = node;
+ }
+ };
+
+ return SelectNodeHandler;
+
+})();
+
+module.exports = SelectNodeHandler;