diff options
Diffstat (limited to 'sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/abstractWidget/abstractWidget.js')
-rw-r--r-- | sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/abstractWidget/abstractWidget.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/abstractWidget/abstractWidget.js b/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/abstractWidget/abstractWidget.js new file mode 100644 index 000000000..bf3b4c8b6 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/main/resources/elasticsearch/plugins/head/src/app/ui/abstractWidget/abstractWidget.js @@ -0,0 +1,49 @@ +(function( $, joey, app ) { + + var ui = app.ns("ui"); + var ux = app.ns("ux"); + + ui.AbstractWidget = ux.Observable.extend({ + defaults : { + id: null // the id of the widget + }, + + el: null, // this is the jquery wrapped dom element(s) that is the root of the widget + + init: function() { + this._super(); + for(var prop in this) { // automatically bind all the event handlers + if(prop.contains("_handler")) { + this[prop] = this[prop].bind(this); + } + } + }, + + id: function(suffix) { + return this.config.id ? (this.config.id + (suffix ? "-" + suffix : "")) : undefined; + }, + + attach: function( parent, method ) { + if( parent ) { + this.el[ method || "appendTo"]( parent ); + } + this.fire("attached", this ); + return this; + }, + + remove: function() { + this.el.remove(); + this.fire("removed", this ); + this.removeAllObservers(); + this.el = null; + return this; + } + }); + + joey.plugins.push( function( obj ) { + if( obj instanceof ui.AbstractWidget ) { + return obj.el[0]; + } + }); + +})( this.jQuery, this.joey, this.app ); |