nexus site path corrected
[portal.git] / ecomp-portal-FE / client / bower_components / jqTree / src / select_node_handler.coffee
1 $ = jQuery
2
3
4 class SelectNodeHandler
5     constructor: (tree_widget) ->
6         @tree_widget = tree_widget
7         @clear()
8
9     getSelectedNode: ->
10         selected_nodes = @getSelectedNodes()
11
12         if selected_nodes.length
13             return selected_nodes[0]
14         else
15             return false
16
17     getSelectedNodes: ->
18         if @selected_single_node
19             return [@selected_single_node]
20         else
21             selected_nodes = []
22
23             for id of @selected_nodes
24                 node = @tree_widget.getNodeById(id)
25                 if node
26                     selected_nodes.push(node)
27
28             return selected_nodes
29
30     getSelectedNodesUnder: (parent) ->
31         if @selected_single_node
32             if parent.isParentOf(@selected_single_node)
33                 return [@selected_single_node]
34             else
35                 return []
36         else
37             selected_nodes = []
38
39             for id of @selected_nodes
40                 node = @tree_widget.getNodeById(id)
41                 if node and parent.isParentOf(node)
42                     selected_nodes.push(node)
43
44             return selected_nodes
45
46     isNodeSelected: (node) ->
47         if not node
48             return false
49         else if node.id
50             if @selected_nodes[node.id]
51                 return true
52             else
53                 return false
54         else if @selected_single_node
55             return @selected_single_node.element == node.element
56         else
57             return false
58
59     clear: ->
60         @selected_nodes = {}
61         @selected_single_node = null
62
63     removeFromSelection: (node, include_children=false) ->
64         if not node.id
65             if @selected_single_node && node.element == @selected_single_node.element
66                 @selected_single_node = null
67         else
68             delete @selected_nodes[node.id]
69
70             if include_children
71                 node.iterate(
72                     (n) =>
73                         delete @selected_nodes[node.id]
74                         return true
75                 )
76
77     addToSelection: (node) ->
78         if node.id
79             @selected_nodes[node.id] = true
80         else
81             @selected_single_node = node
82
83
84 module.exports = SelectNodeHandler