summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-FE/client/bower_components/jqTree/src/simple.widget.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-portal-FE/client/bower_components/jqTree/src/simple.widget.coffee')
-rw-r--r--ecomp-portal-FE/client/bower_components/jqTree/src/simple.widget.coffee107
1 files changed, 107 insertions, 0 deletions
diff --git a/ecomp-portal-FE/client/bower_components/jqTree/src/simple.widget.coffee b/ecomp-portal-FE/client/bower_components/jqTree/src/simple.widget.coffee
new file mode 100644
index 00000000..a3ca6e3e
--- /dev/null
+++ b/ecomp-portal-FE/client/bower_components/jqTree/src/simple.widget.coffee
@@ -0,0 +1,107 @@
+###
+Copyright 2013 Marco Braak
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+###
+
+$ = jQuery
+
+
+class SimpleWidget
+ defaults: {}
+
+ constructor: (el, options) ->
+ @$el = $(el)
+ @options = $.extend({}, @defaults, options)
+
+ destroy: ->
+ @_deinit()
+
+ _init: ->
+ null
+
+ _deinit: ->
+ null
+
+ @register = (widget_class, widget_name) ->
+ getDataKey = ->
+ return "simple_widget_#{widget_name}"
+
+ getWidgetData = (el, data_key) ->
+ widget = $.data(el, data_key)
+
+ if widget and (widget instanceof SimpleWidget)
+ return widget
+ else
+ return null
+
+ createWidget = ($el, options) ->
+ data_key = getDataKey()
+
+ for el in $el
+ existing_widget = getWidgetData(el, data_key)
+
+ if not existing_widget
+ widget = new widget_class(el, options)
+
+ if not $.data(el, data_key)
+ $.data(el, data_key, widget)
+
+ # Call init after setting data, so we can call methods
+ widget._init()
+
+ return $el
+
+ destroyWidget = ($el) ->
+ data_key = getDataKey()
+
+ for el in $el
+ widget = getWidgetData(el, data_key)
+
+ if widget
+ widget.destroy()
+
+ $.removeData(el, data_key)
+
+ callFunction = ($el, function_name, args) ->
+ result = null
+
+ for el in $el
+ widget = $.data(el, getDataKey())
+
+ if widget and (widget instanceof SimpleWidget)
+ widget_function = widget[function_name]
+
+ if widget_function and (typeof widget_function == 'function')
+ result = widget_function.apply(widget, args)
+
+ return result
+
+ $.fn[widget_name] = (argument1, args...) ->
+ $el = this
+
+ if argument1 is undefined or typeof argument1 == 'object'
+ options = argument1
+ return createWidget($el, options)
+ else if typeof argument1 == 'string' and argument1[0] != '_'
+ function_name = argument1
+
+ if function_name == 'destroy'
+ return destroyWidget($el)
+ else if function_name == 'get_widget_class'
+ return widget_class
+ else
+ return callFunction($el, function_name, args)
+
+
+module.exports = SimpleWidget