src/widgets/Trace.js
changeset 986 f9d51dd4a3fe
parent 960 9a278b9e3b05
child 990 6a90c96f0b4c
equal deleted inserted replaced
985:9859c4bae904 986:f9d51dd4a3fe
    14     tracer: null,
    14     tracer: null,
    15     extend: false
    15     extend: false
    16 }
    16 }
    17 
    17 
    18 IriSP.Widgets.Trace.prototype.draw = function() {
    18 IriSP.Widgets.Trace.prototype.draw = function() {
    19   this.lastEvent = "";
       
    20   if (typeof window.tracemanager === "undefined") {
    19   if (typeof window.tracemanager === "undefined") {
    21       console.log("Tracemanager not found");
    20       console.log("Tracemanager not found");
    22       return;
    21       return;
    23   }
    22   }
    24   var _this = this,
    23   var _this = this,
    25     _mdplisteners = {
       
    26         "search.open" : 0,
       
    27         "search.closed" : 0,
       
    28         "search" : 0,
       
    29         "search.cleared" : 0,
       
    30         "search.matchFound" : 0,
       
    31         "search.noMatchFound" : 0,
       
    32         "search.triggeredSearch" : 0,
       
    33         "TraceWidget.MouseEvents" : 0
       
    34     }
       
    35     _medialisteners = {
    24     _medialisteners = {
    36         "play" : 0,
    25         "play" : 0,
    37         "pause" : 0,
    26         "pause" : 0,
    38         "volumechange" : 0,
    27         "volumechange" : 0,
    39         "seeked" : 0,
    28         "seeked" : 0,
    40         "play" : 0,
    29         "play" : 0,
    41         "pause" : 0,
    30         "pause" : 0,
    42         "timeupdate" : 2000
    31         "timeupdate" : 10000
    43     };
    32     };
    44     IriSP._(_mdplisteners).each(function(_ms, _listener) {
       
    45         var _f = function(_arg) {
       
    46             _this.eventHandler(_listener, _arg);
       
    47         }
       
    48         if (_ms) {
       
    49             _f = IriSP._.throttle(_f, _ms);
       
    50         }
       
    51         _this.onMdpEvent(_listener, _f);
       
    52     });
       
    53     IriSP._(_medialisteners).each(function(_ms, _listener) {
    33     IriSP._(_medialisteners).each(function(_ms, _listener) {
    54         var _f = function(_arg) {
    34         var _f = function(_arg) {
    55             _this.eventHandler(_listener, _arg);
    35             _this.eventHandler(_listener, _arg);
    56         }
    36         }
    57         if (_ms) {
    37         if (_ms) {
    72     }
    52     }
    73     
    53     
    74     this.tracer.trace("TraceWidgetInit", {});
    54     this.tracer.trace("TraceWidgetInit", {});
    75     
    55     
    76     this.mouseLocation = '';
    56     this.mouseLocation = '';
    77     IriSP.jQuery(".Ldt-Widget").on("click mouseover mouseout", ".Ldt-TraceMe", function(_e) {
    57     IriSP.jQuery(".Ldt-Widget").on("click mouseenter mouseleave", ".Ldt-TraceMe", function(_e) {
    78         var _target = IriSP.jQuery(this);
    58         var _target = IriSP.jQuery(this);
    79         
    59         
    80         var _widget = IriSP.jQuery(this).attr("widget-type"),
    60         var _widget = _target.attr("widget-type") || _target.parents(".Ldt-Widget").attr("widget-type"),
    81             _data = {
    61             _data = {
    82                 "type": _e.type,
    62                 "type": _e.type,
    83                 "x": _e.clientX,
    63                 "x": _e.clientX,
    84                 "y": _e.clientY,
    64                 "y": _e.clientY,
    85                 "widget": _widget
    65                 "widget": _widget
    86             },
    66             },
    87             _targetEl = _target[0],
    67             _targetEl = _target[0],
    88             _class = _targetEl.className,
    68             _class = _targetEl.className,
    89             _name = _targetEl.localName,
    69             _name = _targetEl.localName,
    90             _id = _targetEl.id,
    70             _id = _targetEl.id,
    91             _value = _targetEl.value,
    71             _value = _target.val(),
    92             _traceInfo = _target.attr("trace-info"),
    72             _traceInfo = _target.attr("trace-info");
    93             _lastTarget = _name + (_id && _id.length ? '#' + IriSP.jqEscape(_id) : '') + (_class && _class.length ? ('.' + IriSP.jqEscape(_class).replace(/\s/g,'.')).replace(/\.Ldt-(Widget|TraceMe)/g,'') : '');
    73         _data.target = _name + (_id && _id.length ? '#' + IriSP.jqEscape(_id) : '') + (_class && _class.length ? ('.' + IriSP.jqEscape(_class).replace(/\s/g,'.')).replace(/\.Ldt-(Widget|TraceMe)/g,'') : '');
    94         _data.target = _lastTarget
    74         if (typeof _traceInfo == "string" && _traceInfo) {
    95         if (typeof _traceInfo == "string" && _traceInfo.length) {
       
    96             _data.traceInfo = _traceInfo;
    75             _data.traceInfo = _traceInfo;
    97             _lastTarget += ( ";" + _traceInfo );
       
    98         }
    76         }
    99         if (typeof _value == "string" && _value.length) {
    77         if (typeof _value == "string" && _value.length) {
   100             _data.value = _value;
    78             _data.value = _value;
   101         }
    79         }
   102         switch(_e.type) {
    80         _this.eventHandler('UIEvent', _data);
   103             case "mouseover":
       
   104                 if (_this.lastTarget != _lastTarget) {
       
   105                     _this.player.trigger('TraceWidget.MouseEvents', _data);
       
   106                 } else {
       
   107                     if (typeof _this.moTimeout != "undefined") {
       
   108                         clearTimeout(_this.moTimeout);
       
   109                         _this.moTimeout = undefined;
       
   110                     }
       
   111                 }
       
   112             break;
       
   113             case "mouseout":
       
   114                 if (typeof _this.moTimeout != "undefined") {
       
   115                     clearTimeout(_this.moTimeout);
       
   116                 }
       
   117                 _this.moTimeout = setTimeout(function() {
       
   118                    if (_lastTarget != _this.lastTarget) {
       
   119                        _this.player.trigger('TraceWidget.MouseEvents', _data);
       
   120                    }
       
   121                 },100);
       
   122             break;
       
   123             default:
       
   124                 _this.player.trigger('TraceWidget.MouseEvents', _data);
       
   125         }
       
   126         _this.lastTarget = _lastTarget;
       
   127     });
    81     });
   128 }
    82 }
   129 
    83 
   130 IriSP.Widgets.Trace.prototype.eventHandler = function(_listener, _arg) {
    84 IriSP.Widgets.Trace.prototype.eventHandler = function(_listener, _arg) {
   131     var _traceName = 'Mdp_';
    85     var _traceName = 'Mdp_';
   134     }
    88     }
   135     if (typeof _arg == "undefined") {
    89     if (typeof _arg == "undefined") {
   136         _arg = {}
    90         _arg = {}
   137     }
    91     }
   138     switch(_listener) {
    92     switch(_listener) {
   139         case 'IriSP.TraceWidget.MouseEvents':
    93         case 'UIEvent':
   140             _traceName += _arg.widget + '_' + _arg.type;
    94             _traceName += _arg.widget + '_' + _arg.type;
   141             delete _arg.widget;
    95             delete _arg.widget;
   142             delete _arg.type;
    96             delete _arg.type;
   143         break;
    97         break;
   144         case 'play':
    98         case 'play':
   150             _traceName += 'media_' + _listener;
   104             _traceName += 'media_' + _listener;
   151         break;
   105         break;
   152         default:
   106         default:
   153             _traceName += _listener.replace('.','_');
   107             _traceName += _listener.replace('.','_');
   154     }
   108     }
   155     this.lastEvent = _traceName;
       
   156     if (typeof this.extend === "object" && this.extend) {
   109     if (typeof this.extend === "object" && this.extend) {
   157         IriSP._(_arg).extend(this.extend);
   110         IriSP._(_arg).extend(this.extend);
   158     }
   111     }
   159     this.tracer.trace(_traceName, _arg);
   112     this.tracer.trace(_traceName, _arg);
   160     if (this.js_console && typeof window.console !== "undefined" && typeof console.log !== "undefined") {
   113     if (this.js_console && typeof window.console !== "undefined" && typeof console.log !== "undefined") {