/**
* @classdesc
* @class
* @type {OSH.UI.View}
* @augments OSH.UI.View
* @example
var videoView = new OSH.UI.MjpegView("containerId", {
dataSourceId: datasource.id,
entityId : entity.id,
css: "video",
cssSelected: "video-selected",
name: "Video"
});
*/
OSH.UI.MjpegView = Class.create(OSH.UI.View,{
initialize: function($super,divId,options) {
$super(divId,[],options);
// creates video tag element
this.imgTag = document.createElement("img");
this.imgTag.setAttribute("id", "dataview-"+OSH.Utils.randomUUID());
// appends <img> tag to <div>
document.getElementById(this.divId).appendChild(this.imgTag);
// adds listener
var self = this;
OSH.EventManager.observeDiv(this.divId,"click",function(event){
OSH.EventManager.fire(OSH.EventManager.EVENT.SELECT_VIEW,{
dataSourcesIds: [self.dataSourceId],
entityId : self.entityId
});
});
},
/**
*
* @param $super
* @param dataSourceId
* @param data
* @instance
* @memberof OSH.UI.MjpegView
*/
setData: function($super,dataSourceId,data) {
var oldBlobURL = this.imgTag.src;
this.imgTag.src = data.data;
window.URL.revokeObjectURL(oldBlobURL);
},
/**
*
* @param $super
* @param dataSourceIds
* @param entityId
* @instance
* @memberof OSH.UI.MjpegView
*/
selectDataView: function($super,dataSourceIds,entityId) {
if(dataSourceIds.indexOf(this.dataSourceId) > -1 || (typeof this.entityId != "undefined") && this.entityId == entityId) {
document.getElementById(this.divId).setAttribute("class",this.css+" "+this.cssSelected);
} else {
document.getElementById(this.divId).setAttribute("class",this.css);
}
},
/**
* @instance
* @memberof OSH.UI.MjpegView
*/
reset: function() {
this.imgTag.src = "";
}
});