var $ = require('jquery');
/**
* Base object to components. This object include position, size, type and others common elemens
* @param {Object} objectdata Object base definition
* @param {Array} objectdata.position Object position on page
* @param {Array} objectdata.size Object size
* @param {String} objectdata.type Object type . This is used to restore object when load project
* @class CBObject
*/
function CBObject(objectdata){
this.position = typeof objectdata.position !== 'undefined' ? objectdata.position : [200,200];
this.size = typeof objectdata.size !== 'undefined' ? objectdata.size : [0,0];
this.type = typeof objectdata.type !== 'undefined' ? objectdata.type : "CBObject";
}
/**
* Render object to jQuery object to be included on page
* @return {jQuery}
*/
CBObject.prototype.editorView = function editorView() {
var aux = $(window.document.createElement('div'));
aux.css('left', this.position[0]);
aux.css('top', this.position[1]);
aux.addClass('draggable');
aux.css('position','relative');
return aux;
};
/**
* This string is return core to bind on button click event on editor view
* @return {String} Function string.
*/
CBObject.add_callback = "jquerycbo.draggable( {stop: function(event,ui){ objectcbo.position = [ui.position.left,ui.position.top]; }});";
module.exports = CBObject;