Mercurial > repos > mingchen0919 > aurora_star
diff vakata-jstree-3.3.5/src/sample.js @ 0:25602263cff0 draft default tip
planemo upload commit 841d8b22bf9f1aaed6bfe8344b60617f45b275b2-dirty
author | mingchen0919 |
---|---|
date | Sun, 30 Dec 2018 13:11:48 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vakata-jstree-3.3.5/src/sample.js Sun Dec 30 13:11:48 2018 -0500 @@ -0,0 +1,93 @@ +/*global jQuery */ +// wrap in IIFE and pass jQuery as $ +(function ($, undefined) { + "use strict"; + + // some private plugin stuff if needed + var private_var = null; + + // extending the defaults + $.jstree.defaults.sample = { + sample_option : 'sample_val' + }; + + // the actual plugin code + $.jstree.plugins.sample = function (options, parent) { + // own function + this.sample_function = function (arg) { + // you can chain this method if needed and available + if(parent.sample_function) { parent.sample_function.call(this, arg); } + }; + + // *SPECIAL* FUNCTIONS + this.init = function (el, options) { + // do not forget parent + parent.init.call(this, el, options); + }; + // bind events if needed + this.bind = function () { + // call parent function first + parent.bind.call(this); + // do(stuff); + }; + // unbind events if needed (all in jquery namespace are taken care of by the core) + this.unbind = function () { + // do(stuff); + // call parent function last + parent.unbind.call(this); + }; + this.teardown = function () { + // do not forget parent + parent.teardown.call(this); + }; + // state management - get and restore + this.get_state = function () { + // always get state from parent first + var state = parent.get_state.call(this); + // add own stuff to state + state.sample = { 'var' : 'val' }; + return state; + }; + this.set_state = function (state, callback) { + // only process your part if parent returns true + // there will be multiple times with false + if(parent.set_state.call(this, state, callback)) { + // check the key you set above + if(state.sample) { + // do(stuff); // like calling this.sample_function(state.sample.var); + // remove your part of the state, call again and RETURN FALSE, the next cycle will be TRUE + delete state.sample; + this.set_state(state, callback); + return false; + } + // return true if your state is gone (cleared in the previous step) + return true; + } + // parent was false - return false too + return false; + }; + // node transportation + this.get_json = function (obj, options, flat) { + // get the node from the parent + var tmp = parent.get_json.call(this, obj, options, flat), i, j; + if($.isArray(tmp)) { + for(i = 0, j = tmp.length; i < j; i++) { + tmp[i].sample = 'value'; + } + } + else { + tmp.sample = 'value'; + } + // return the original / modified node + return tmp; + }; + }; + + // attach to document ready if needed + $(function () { + // do(stuff); + }); + + // you can include the sample plugin in all instances by default + $.jstree.defaults.plugins.push("sample"); +})(jQuery); \ No newline at end of file