diff options
Diffstat (limited to 'ecomp-portal-FE/client/bower_components/jqTree/lib/tree.jquery.js')
-rw-r--r-- | ecomp-portal-FE/client/bower_components/jqTree/lib/tree.jquery.js | 1101 |
1 files changed, 1101 insertions, 0 deletions
diff --git a/ecomp-portal-FE/client/bower_components/jqTree/lib/tree.jquery.js b/ecomp-portal-FE/client/bower_components/jqTree/lib/tree.jquery.js new file mode 100644 index 00000000..c7ac2f08 --- /dev/null +++ b/ecomp-portal-FE/client/bower_components/jqTree/lib/tree.jquery.js @@ -0,0 +1,1101 @@ +var $, BorderDropHint, DragAndDropHandler, DragElement, ElementsRenderer, FolderElement, GhostDropHint, HitAreasGenerator, JqTreeWidget, KeyHandler, MouseWidget, Node, NodeElement, Position, SaveStateHandler, ScrollHandler, SelectNodeHandler, SimpleWidget, __version__, drag_and_drop_handler, isFunction, node_module, ref, util_module, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + +__version__ = require('./version'); + +drag_and_drop_handler = require('./drag_and_drop_handler'); + +ElementsRenderer = require('./elements_renderer'); + +KeyHandler = require('./key_handler'); + +MouseWidget = require('./mouse.widget'); + +SaveStateHandler = require('./save_state_handler'); + +ScrollHandler = require('./scroll_handler'); + +SelectNodeHandler = require('./select_node_handler'); + +SimpleWidget = require('./simple.widget'); + +node_module = require('./node'); + +Node = node_module.Node; + +Position = node_module.Position; + +util_module = require('./util'); + +isFunction = util_module.isFunction; + +ref = require('./node_element'), BorderDropHint = ref.BorderDropHint, FolderElement = ref.FolderElement, GhostDropHint = ref.GhostDropHint, NodeElement = ref.NodeElement; + +DragAndDropHandler = drag_and_drop_handler.DragAndDropHandler, DragElement = drag_and_drop_handler.DragElement, HitAreasGenerator = drag_and_drop_handler.HitAreasGenerator; + +$ = jQuery; + +JqTreeWidget = (function(superClass) { + extend(JqTreeWidget, superClass); + + function JqTreeWidget() { + return JqTreeWidget.__super__.constructor.apply(this, arguments); + } + + JqTreeWidget.prototype.BorderDropHint = BorderDropHint; + + JqTreeWidget.prototype.DragElement = DragElement; + + JqTreeWidget.prototype.DragAndDropHandler = DragAndDropHandler; + + JqTreeWidget.prototype.ElementsRenderer = ElementsRenderer; + + JqTreeWidget.prototype.GhostDropHint = GhostDropHint; + + JqTreeWidget.prototype.HitAreasGenerator = HitAreasGenerator; + + JqTreeWidget.prototype.Node = Node; + + JqTreeWidget.prototype.SaveStateHandler = SaveStateHandler; + + JqTreeWidget.prototype.ScrollHandler = ScrollHandler; + + JqTreeWidget.prototype.SelectNodeHandler = SelectNodeHandler; + + JqTreeWidget.prototype.defaults = { + autoOpen: false, + saveState: false, + dragAndDrop: false, + selectable: true, + useContextMenu: true, + onCanSelectNode: null, + onSetStateFromStorage: null, + onGetStateFromStorage: null, + onCreateLi: null, + onIsMoveHandle: null, + onCanMove: null, + onCanMoveTo: null, + onLoadFailed: null, + autoEscape: true, + dataUrl: null, + closedIcon: null, + openedIcon: '▼', + slide: true, + nodeClass: Node, + dataFilter: null, + keyboardSupport: true, + openFolderDelay: 500, + rtl: null, + onDragMove: null, + onDragStop: null, + buttonLeft: true, + onLoading: null + }; + + JqTreeWidget.prototype.toggle = function(node, slide) { + if (slide == null) { + slide = null; + } + if (slide === null) { + slide = this.options.slide; + } + if (node.is_open) { + this.closeNode(node, slide); + } else { + this.openNode(node, slide); + } + return this.element; + }; + + JqTreeWidget.prototype.getTree = function() { + return this.tree; + }; + + JqTreeWidget.prototype.selectNode = function(node) { + this._selectNode(node, false); + return this.element; + }; + + JqTreeWidget.prototype._selectNode = function(node, must_toggle) { + var canSelect, deselected_node, openParents, saveState; + if (must_toggle == null) { + must_toggle = false; + } + if (!this.select_node_handler) { + return; + } + canSelect = (function(_this) { + return function() { + if (_this.options.onCanSelectNode) { + return _this.options.selectable && _this.options.onCanSelectNode(node); + } else { + return _this.options.selectable; + } + }; + })(this); + openParents = (function(_this) { + return function() { + var parent; + parent = node.parent; + if (parent && parent.parent && !parent.is_open) { + return _this.openNode(parent, false); + } + }; + })(this); + saveState = (function(_this) { + return function() { + if (_this.options.saveState) { + return _this.save_state_handler.saveState(); + } + }; + })(this); + if (!node) { + this._deselectCurrentNode(); + saveState(); + return; + } + if (!canSelect()) { + return; + } + if (this.select_node_handler.isNodeSelected(node)) { + if (must_toggle) { + this._deselectCurrentNode(); + this._triggerEvent('tree.select', { + node: null, + previous_node: node + }); + } + } else { + deselected_node = this.getSelectedNode(); + this._deselectCurrentNode(); + this.addToSelection(node); + this._triggerEvent('tree.select', { + node: node, + deselected_node: deselected_node + }); + openParents(); + } + return saveState(); + }; + + JqTreeWidget.prototype.getSelectedNode = function() { + if (this.select_node_handler) { + return this.select_node_handler.getSelectedNode(); + } else { + return null; + } + }; + + JqTreeWidget.prototype.toJson = function() { + return JSON.stringify(this.tree.getData()); + }; + + JqTreeWidget.prototype.loadData = function(data, parent_node) { + this._loadData(data, parent_node); + return this.element; + }; + + + /* + signatures: + - loadDataFromUrl(url, parent_node=null, on_finished=null) + loadDataFromUrl('/my_data'); + loadDataFromUrl('/my_data', node1); + loadDataFromUrl('/my_data', node1, function() { console.log('finished'); }); + loadDataFromUrl('/my_data', null, function() { console.log('finished'); }); + + - loadDataFromUrl(parent_node=null, on_finished=null) + loadDataFromUrl(); + loadDataFromUrl(node1); + loadDataFromUrl(null, function() { console.log('finished'); }); + loadDataFromUrl(node1, function() { console.log('finished'); }); + */ + + JqTreeWidget.prototype.loadDataFromUrl = function(param1, param2, param3) { + if ($.type(param1) === 'string') { + this._loadDataFromUrl(param1, param2, param3); + } else { + this._loadDataFromUrl(null, param1, param2); + } + return this.element; + }; + + JqTreeWidget.prototype.reload = function(on_finished) { + this._loadDataFromUrl(null, null, on_finished); + return this.element; + }; + + JqTreeWidget.prototype._loadDataFromUrl = function(url_info, parent_node, on_finished) { + var $el, addLoadingClass, handeLoadData, handleError, handleSuccess, loadDataFromUrlInfo, parseUrlInfo, removeLoadingClass; + $el = null; + addLoadingClass = (function(_this) { + return function() { + if (parent_node) { + $el = $(parent_node.element); + } else { + $el = _this.element; + } + $el.addClass('jqtree-loading'); + return _this._notifyLoading(true, parent_node, $el); + }; + })(this); + removeLoadingClass = (function(_this) { + return function() { + if ($el) { + $el.removeClass('jqtree-loading'); + return _this._notifyLoading(false, parent_node, $el); + } + }; + })(this); + parseUrlInfo = function() { + if ($.type(url_info) === 'string') { + return { + url: url_info + }; + } + if (!url_info.method) { + url_info.method = 'get'; + } + return url_info; + }; + handeLoadData = (function(_this) { + return function(data) { + removeLoadingClass(); + _this._loadData(data, parent_node); + if (on_finished && $.isFunction(on_finished)) { + return on_finished(); + } + }; + })(this); + handleSuccess = (function(_this) { + return function(response) { + var data; + if ($.isArray(response) || typeof response === 'object') { + data = response; + } else if (data != null) { + data = $.parseJSON(response); + } else { + data = []; + } + if (_this.options.dataFilter) { + data = _this.options.dataFilter(data); + } + return handeLoadData(data); + }; + })(this); + handleError = (function(_this) { + return function(response) { + removeLoadingClass(); + if (_this.options.onLoadFailed) { + return _this.options.onLoadFailed(response); + } + }; + })(this); + loadDataFromUrlInfo = function() { + url_info = parseUrlInfo(); + return $.ajax($.extend({}, url_info, { + method: url_info.method != null ? url_info.method.toUpperCase() : 'GET', + cache: false, + dataType: 'json', + success: handleSuccess, + error: handleError + })); + }; + if (!url_info) { + url_info = this._getDataUrlInfo(parent_node); + } + addLoadingClass(); + if (!url_info) { + removeLoadingClass(); + } else if ($.isArray(url_info)) { + handeLoadData(url_info); + } else { + loadDataFromUrlInfo(); + } + }; + + JqTreeWidget.prototype._loadData = function(data, parent_node) { + var deselectNodes, loadSubtree; + if (parent_node == null) { + parent_node = null; + } + deselectNodes = (function(_this) { + return function() { + var i, len, n, selected_nodes_under_parent; + if (_this.select_node_handler) { + selected_nodes_under_parent = _this.select_node_handler.getSelectedNodesUnder(parent_node); + for (i = 0, len = selected_nodes_under_parent.length; i < len; i++) { + n = selected_nodes_under_parent[i]; + _this.select_node_handler.removeFromSelection(n); + } + } + return null; + }; + })(this); + loadSubtree = (function(_this) { + return function() { + parent_node.loadFromData(data); + parent_node.load_on_demand = false; + parent_node.is_loading = false; + return _this._refreshElements(parent_node); + }; + })(this); + if (!data) { + return; + } + this._triggerEvent('tree.load_data', { + tree_data: data + }); + if (!parent_node) { + this._initTree(data); + } else { + deselectNodes(); + loadSubtree(); + } + if (this.isDragging()) { + return this.dnd_handler.refresh(); + } + }; + + JqTreeWidget.prototype.getNodeById = function(node_id) { + return this.tree.getNodeById(node_id); + }; + + JqTreeWidget.prototype.getNodeByName = function(name) { + return this.tree.getNodeByName(name); + }; + + JqTreeWidget.prototype.getNodesByProperty = function(key, value) { + return this.tree.getNodesByProperty(key, value); + }; + + JqTreeWidget.prototype.getNodeByHtmlElement = function(element) { + return this._getNode($(element)); + }; + + JqTreeWidget.prototype.getNodeByCallback = function(callback) { + return this.tree.getNodeByCallback(callback); + }; + + JqTreeWidget.prototype.openNode = function(node, slide_param, on_finished_param) { + var on_finished, parseParams, ref1, slide; + if (slide_param == null) { + slide_param = null; + } + if (on_finished_param == null) { + on_finished_param = null; + } + parseParams = (function(_this) { + return function() { + var on_finished, slide; + if (isFunction(slide_param)) { + on_finished = slide_param; + slide = null; + } else { + slide = slide_param; + on_finished = on_finished_param; + } + if (slide === null) { + slide = _this.options.slide; + } + return [slide, on_finished]; + }; + })(this); + ref1 = parseParams(), slide = ref1[0], on_finished = ref1[1]; + if (node) { + this._openNode(node, slide, on_finished); + } + return this.element; + }; + + JqTreeWidget.prototype._openNode = function(node, slide, on_finished) { + var doOpenNode, parent; + if (slide == null) { + slide = true; + } + doOpenNode = (function(_this) { + return function(_node, _slide, _on_finished) { + var folder_element; + folder_element = new FolderElement(_node, _this); + return folder_element.open(_on_finished, _slide); + }; + })(this); + if (node.isFolder()) { + if (node.load_on_demand) { + return this._loadFolderOnDemand(node, slide, on_finished); + } else { + parent = node.parent; + while (parent) { + if (parent.parent) { + doOpenNode(parent, false, null); + } + parent = parent.parent; + } + doOpenNode(node, slide, on_finished); + return this._saveState(); + } + } + }; + + JqTreeWidget.prototype._loadFolderOnDemand = function(node, slide, on_finished) { + if (slide == null) { + slide = true; + } + node.is_loading = true; + return this._loadDataFromUrl(null, node, (function(_this) { + return function() { + return _this._openNode(node, slide, on_finished); + }; + })(this)); + }; + + JqTreeWidget.prototype.closeNode = function(node, slide) { + if (slide == null) { + slide = null; + } + if (slide === null) { + slide = this.options.slide; + } + if (node.isFolder()) { + new FolderElement(node, this).close(slide); + this._saveState(); + } + return this.element; + }; + + JqTreeWidget.prototype.isDragging = function() { + if (this.dnd_handler) { + return this.dnd_handler.is_dragging; + } else { + return false; + } + }; + + JqTreeWidget.prototype.refreshHitAreas = function() { + this.dnd_handler.refresh(); + return this.element; + }; + + JqTreeWidget.prototype.addNodeAfter = function(new_node_info, existing_node) { + var new_node; + new_node = existing_node.addAfter(new_node_info); + this._refreshElements(existing_node.parent); + return new_node; + }; + + JqTreeWidget.prototype.addNodeBefore = function(new_node_info, existing_node) { + var new_node; + new_node = existing_node.addBefore(new_node_info); + this._refreshElements(existing_node.parent); + return new_node; + }; + + JqTreeWidget.prototype.addParentNode = function(new_node_info, existing_node) { + var new_node; + new_node = existing_node.addParent(new_node_info); + this._refreshElements(new_node.parent); + return new_node; + }; + + JqTreeWidget.prototype.removeNode = function(node) { + var parent; + parent = node.parent; + if (parent) { + this.select_node_handler.removeFromSelection(node, true); + node.remove(); + this._refreshElements(parent); + } + return this.element; + }; + + JqTreeWidget.prototype.appendNode = function(new_node_info, parent_node) { + var node; + parent_node = parent_node || this.tree; + node = parent_node.append(new_node_info); + this._refreshElements(parent_node); + return node; + }; + + JqTreeWidget.prototype.prependNode = function(new_node_info, parent_node) { + var node; + if (!parent_node) { + parent_node = this.tree; + } + node = parent_node.prepend(new_node_info); + this._refreshElements(parent_node); + return node; + }; + + JqTreeWidget.prototype.updateNode = function(node, data) { + var id_is_changed; + id_is_changed = data.id && data.id !== node.id; + if (id_is_changed) { + this.tree.removeNodeFromIndex(node); + } + node.setData(data); + if (id_is_changed) { + this.tree.addNodeToIndex(node); + } + if (typeof data === 'object' && data.children) { + node.removeChildren(); + if (data.children.length) { + node.loadFromData(data.children); + } + } + this.renderer.renderFromNode(node); + this._selectCurrentNode(); + return this.element; + }; + + JqTreeWidget.prototype.moveNode = function(node, target_node, position) { + var position_index; + position_index = Position.nameToIndex(position); + this.tree.moveNode(node, target_node, position_index); + this._refreshElements(); + return this.element; + }; + + JqTreeWidget.prototype.getStateFromStorage = function() { + return this.save_state_handler.getStateFromStorage(); + }; + + JqTreeWidget.prototype.addToSelection = function(node) { + if (node) { + this.select_node_handler.addToSelection(node); + this._getNodeElementForNode(node).select(); + this._saveState(); + } + return this.element; + }; + + JqTreeWidget.prototype.getSelectedNodes = function() { + return this.select_node_handler.getSelectedNodes(); + }; + + JqTreeWidget.prototype.isNodeSelected = function(node) { + return this.select_node_handler.isNodeSelected(node); + }; + + JqTreeWidget.prototype.removeFromSelection = function(node) { + this.select_node_handler.removeFromSelection(node); + this._getNodeElementForNode(node).deselect(); + this._saveState(); + return this.element; + }; + + JqTreeWidget.prototype.scrollToNode = function(node) { + var $element, top; + $element = $(node.element); + top = $element.offset().top - this.$el.offset().top; + this.scroll_handler.scrollTo(top); + return this.element; + }; + + JqTreeWidget.prototype.getState = function() { + return this.save_state_handler.getState(); + }; + + JqTreeWidget.prototype.setState = function(state) { + this.save_state_handler.setInitialState(state); + this._refreshElements(); + return this.element; + }; + + JqTreeWidget.prototype.setOption = function(option, value) { + this.options[option] = value; + return this.element; + }; + + JqTreeWidget.prototype.moveDown = function() { + if (this.key_handler) { + this.key_handler.moveDown(); + } + return this.element; + }; + + JqTreeWidget.prototype.moveUp = function() { + if (this.key_handler) { + this.key_handler.moveUp(); + } + return this.element; + }; + + JqTreeWidget.prototype.getVersion = function() { + return __version__; + }; + + JqTreeWidget.prototype._init = function() { + JqTreeWidget.__super__._init.call(this); + this.element = this.$el; + this.mouse_delay = 300; + this.is_initialized = false; + this.options.rtl = this._getRtlOption(); + if (!this.options.closedIcon) { + this.options.closedIcon = this._getDefaultClosedIcon(); + } + this.renderer = new ElementsRenderer(this); + if (SaveStateHandler != null) { + this.save_state_handler = new SaveStateHandler(this); + } else { + this.options.saveState = false; + } + if (SelectNodeHandler != null) { + this.select_node_handler = new SelectNodeHandler(this); + } + if (DragAndDropHandler != null) { + this.dnd_handler = new DragAndDropHandler(this); + } else { + this.options.dragAndDrop = false; + } + if (ScrollHandler != null) { + this.scroll_handler = new ScrollHandler(this); + } + if ((KeyHandler != null) && (SelectNodeHandler != null)) { + this.key_handler = new KeyHandler(this); + } + this._initData(); + this.element.click($.proxy(this._click, this)); + this.element.dblclick($.proxy(this._dblclick, this)); + if (this.options.useContextMenu) { + return this.element.bind('contextmenu', $.proxy(this._contextmenu, this)); + } + }; + + JqTreeWidget.prototype._deinit = function() { + this.element.empty(); + this.element.unbind(); + if (this.key_handler) { + this.key_handler.deinit(); + } + this.tree = null; + return JqTreeWidget.__super__._deinit.call(this); + }; + + JqTreeWidget.prototype._initData = function() { + var data_url; + if (this.options.data) { + return this._loadData(this.options.data); + } else { + data_url = this._getDataUrlInfo(); + if (data_url) { + return this._loadDataFromUrl(); + } else { + return this._loadData([]); + } + } + }; + + JqTreeWidget.prototype._getDataUrlInfo = function(node) { + var data_url, getUrlFromString; + data_url = this.options.dataUrl || this.element.data('url'); + getUrlFromString = (function(_this) { + return function() { + var data, selected_node_id, url_info; + url_info = { + url: data_url + }; + if (node && node.id) { + data = { + node: node.id + }; + url_info['data'] = data; + } else { + selected_node_id = _this._getNodeIdToBeSelected(); + if (selected_node_id) { + data = { + selected_node: selected_node_id + }; + url_info['data'] = data; + } + } + return url_info; + }; + })(this); + if ($.isFunction(data_url)) { + return data_url(node); + } else if ($.type(data_url) === 'string') { + return getUrlFromString(); + } else { + return data_url; + } + }; + + JqTreeWidget.prototype._getNodeIdToBeSelected = function() { + if (this.options.saveState) { + return this.save_state_handler.getNodeIdToBeSelected(); + } else { + return null; + } + }; + + JqTreeWidget.prototype._initTree = function(data) { + var doInit, must_load_on_demand; + doInit = (function(_this) { + return function() { + if (!_this.is_initialized) { + _this.is_initialized = true; + return _this._triggerEvent('tree.init'); + } + }; + })(this); + this.tree = new this.options.nodeClass(null, true, this.options.nodeClass); + if (this.select_node_handler) { + this.select_node_handler.clear(); + } + this.tree.loadFromData(data); + must_load_on_demand = this._setInitialState(); + this._refreshElements(); + if (!must_load_on_demand) { + return doInit(); + } else { + return this._setInitialStateOnDemand(doInit); + } + }; + + JqTreeWidget.prototype._setInitialState = function() { + var autoOpenNodes, is_restored, must_load_on_demand, ref1, restoreState; + restoreState = (function(_this) { + return function() { + var must_load_on_demand, state; + if (!(_this.options.saveState && _this.save_state_handler)) { + return [false, false]; + } else { + state = _this.save_state_handler.getStateFromStorage(); + if (!state) { + return [false, false]; + } else { + must_load_on_demand = _this.save_state_handler.setInitialState(state); + return [true, must_load_on_demand]; + } + } + }; + })(this); + autoOpenNodes = (function(_this) { + return function() { + var max_level, must_load_on_demand; + if (_this.options.autoOpen === false) { + return false; + } + max_level = _this._getAutoOpenMaxLevel(); + must_load_on_demand = false; + _this.tree.iterate(function(node, level) { + if (node.load_on_demand) { + must_load_on_demand = true; + return false; + } else if (!node.hasChildren()) { + return false; + } else { + node.is_open = true; + return level !== max_level; + } + }); + return must_load_on_demand; + }; + })(this); + ref1 = restoreState(), is_restored = ref1[0], must_load_on_demand = ref1[1]; + if (!is_restored) { + must_load_on_demand = autoOpenNodes(); + } + return must_load_on_demand; + }; + + JqTreeWidget.prototype._setInitialStateOnDemand = function(cb_finished) { + var autoOpenNodes, restoreState; + restoreState = (function(_this) { + return function() { + var state; + if (!(_this.options.saveState && _this.save_state_handler)) { + return false; + } else { + state = _this.save_state_handler.getStateFromStorage(); + if (!state) { + return false; + } else { + _this.save_state_handler.setInitialStateOnDemand(state, cb_finished); + return true; + } + } + }; + })(this); + autoOpenNodes = (function(_this) { + return function() { + var loadAndOpenNode, loading_count, max_level, openNodes; + max_level = _this._getAutoOpenMaxLevel(); + loading_count = 0; + loadAndOpenNode = function(node) { + loading_count += 1; + return _this._openNode(node, false, function() { + loading_count -= 1; + return openNodes(); + }); + }; + openNodes = function() { + _this.tree.iterate(function(node, level) { + if (node.load_on_demand) { + if (!node.is_loading) { + loadAndOpenNode(node); + } + return false; + } else { + _this._openNode(node, false); + return level !== max_level; + } + }); + if (loading_count === 0) { + return cb_finished(); + } + }; + return openNodes(); + }; + })(this); + if (!restoreState()) { + return autoOpenNodes(); + } + }; + + JqTreeWidget.prototype._getAutoOpenMaxLevel = function() { + if (this.options.autoOpen === true) { + return -1; + } else { + return parseInt(this.options.autoOpen); + } + }; + + + /* + Redraw the tree or part of the tree. + * from_node: redraw this subtree + */ + + JqTreeWidget.prototype._refreshElements = function(from_node) { + if (from_node == null) { + from_node = null; + } + this.renderer.render(from_node); + return this._triggerEvent('tree.refresh'); + }; + + JqTreeWidget.prototype._click = function(e) { + var click_target, event, node; + click_target = this._getClickTarget(e.target); + if (click_target) { + if (click_target.type === 'button') { + this.toggle(click_target.node, this.options.slide); + e.preventDefault(); + return e.stopPropagation(); + } else if (click_target.type === 'label') { + node = click_target.node; + event = this._triggerEvent('tree.click', { + node: node, + click_event: e + }); + if (!event.isDefaultPrevented()) { + return this._selectNode(node, true); + } + } + } + }; + + JqTreeWidget.prototype._dblclick = function(e) { + var click_target; + click_target = this._getClickTarget(e.target); + if (click_target && click_target.type === 'label') { + return this._triggerEvent('tree.dblclick', { + node: click_target.node, + click_event: e + }); + } + }; + + JqTreeWidget.prototype._getClickTarget = function(element) { + var $button, $el, $target, node; + $target = $(element); + $button = $target.closest('.jqtree-toggler'); + if ($button.length) { + node = this._getNode($button); + if (node) { + return { + type: 'button', + node: node + }; + } + } else { + $el = $target.closest('.jqtree-element'); + if ($el.length) { + node = this._getNode($el); + if (node) { + return { + type: 'label', + node: node + }; + } + } + } + return null; + }; + + JqTreeWidget.prototype._getNode = function($element) { + var $li; + $li = $element.closest('li.jqtree_common'); + if ($li.length === 0) { + return null; + } else { + return $li.data('node'); + } + }; + + JqTreeWidget.prototype._getNodeElementForNode = function(node) { + if (node.isFolder()) { + return new FolderElement(node, this); + } else { + return new NodeElement(node, this); + } + }; + + JqTreeWidget.prototype._getNodeElement = function($element) { + var node; + node = this._getNode($element); + if (node) { + return this._getNodeElementForNode(node); + } else { + return null; + } + }; + + JqTreeWidget.prototype._contextmenu = function(e) { + var $div, node; + $div = $(e.target).closest('ul.jqtree-tree .jqtree-element'); + if ($div.length) { + node = this._getNode($div); + if (node) { + e.preventDefault(); + e.stopPropagation(); + this._triggerEvent('tree.contextmenu', { + node: node, + click_event: e + }); + return false; + } + } + }; + + JqTreeWidget.prototype._saveState = function() { + if (this.options.saveState) { + return this.save_state_handler.saveState(); + } + }; + + JqTreeWidget.prototype._mouseCapture = function(position_info) { + if (this.options.dragAndDrop) { + return this.dnd_handler.mouseCapture(position_info); + } else { + return false; + } + }; + + JqTreeWidget.prototype._mouseStart = function(position_info) { + if (this.options.dragAndDrop) { + return this.dnd_handler.mouseStart(position_info); + } else { + return false; + } + }; + + JqTreeWidget.prototype._mouseDrag = function(position_info) { + var result; + if (this.options.dragAndDrop) { + result = this.dnd_handler.mouseDrag(position_info); + if (this.scroll_handler) { + this.scroll_handler.checkScrolling(); + } + return result; + } else { + return false; + } + }; + + JqTreeWidget.prototype._mouseStop = function(position_info) { + if (this.options.dragAndDrop) { + return this.dnd_handler.mouseStop(position_info); + } else { + return false; + } + }; + + JqTreeWidget.prototype._triggerEvent = function(event_name, values) { + var event; + event = $.Event(event_name); + $.extend(event, values); + this.element.trigger(event); + return event; + }; + + JqTreeWidget.prototype.testGenerateHitAreas = function(moving_node) { + this.dnd_handler.current_item = this._getNodeElementForNode(moving_node); + this.dnd_handler.generateHitAreas(); + return this.dnd_handler.hit_areas; + }; + + JqTreeWidget.prototype._selectCurrentNode = function() { + var node, node_element; + node = this.getSelectedNode(); + if (node) { + node_element = this._getNodeElementForNode(node); + if (node_element) { + return node_element.select(); + } + } + }; + + JqTreeWidget.prototype._deselectCurrentNode = function() { + var node; + node = this.getSelectedNode(); + if (node) { + return this.removeFromSelection(node); + } + }; + + JqTreeWidget.prototype._getDefaultClosedIcon = function() { + if (this.options.rtl) { + return '◀'; + } else { + return '►'; + } + }; + + JqTreeWidget.prototype._getRtlOption = function() { + var data_rtl; + if (this.options.rtl !== null) { + return this.options.rtl; + } else { + data_rtl = this.element.data('rtl'); + if ((data_rtl != null) && data_rtl !== false) { + return true; + } else { + return false; + } + } + }; + + JqTreeWidget.prototype._notifyLoading = function(is_loading, node, $el) { + if (this.options.onLoading) { + return this.options.onLoading(is_loading, node, $el); + } + }; + + return JqTreeWidget; + +})(MouseWidget); + +JqTreeWidget.getModule = function(name) { + var modules; + modules = { + 'node': node_module, + 'util': util_module, + 'drag_and_drop_handler': drag_and_drop_handler + }; + return modules[name]; +}; + +SimpleWidget.register(JqTreeWidget, 'tree'); |