--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/js/widgets/traceWidget.js Mon Mar 05 10:55:08 2012 +0100
@@ -0,0 +1,102 @@
+IriSP.TraceWidget = function(Popcorn, config, Serializer) {
+ IriSP.Widget.call(this, Popcorn, config, Serializer);
+ this.lastEvent = "";
+ var _this = this,
+ _listeners = [
+ "IriSP.ArrowWidget.releaseArrow",
+ "IriSP.SliceWidget.hide",
+ "IriSP.AnnotationsWidget.show",
+ "IriSP.AnnotationsWidget.hide",
+ "IriSP.ArrowWidget.blockArrow",
+ "IriSP.SliceWidget.position",
+ "IriSP.SliceWidget.show",
+ "IriSP.SliceWidget.hide",
+ "IriSP.createAnnotationWidget.addedAnnotation",
+// "IriSP.PlayerWidget.AnnotateButton.clicked",
+// "IriSP.PlayerWidget.MouseOver",
+// "IriSP.PlayerWidget.MouseOut",
+ "IriSP.search.open",
+ "IriSP.search.closed",
+ "IriSP.search",
+ "IriSP.search.cleared",
+// "IriSP.PolemicTweet.click",
+ "IriSP.search.matchFound",
+ "IriSP.search.noMatchFound",
+// "IriSP.SegmentsWidget.click",
+ "IriSP.SliceWidget.zoneChange",
+// "IriSP.SparklineWidget.clicked",
+// "IriSP.StackGraphWidget.mouseOver",
+// "IriSP.StackGraphWidget.clicked",
+ "IriSP.search.triggeredSearch",
+ "IriSP.Widget.MouseEvents",
+ "play",
+ "pause",
+ "volumechange",
+ "timeupdate",
+ "seeked",
+ "play",
+ "pause"
+ ];
+ IriSP._(_listeners).each(function(_listener) {
+ _this._Popcorn.listen(_listener, function() {
+ _this.eventHandler(_listener, arguments);
+ });
+ });
+
+}
+
+IriSP.TraceWidget.prototype = new IriSP.Widget();
+
+IriSP.TraceWidget.prototype.draw = function() {
+}
+
+IriSP.TraceWidget.prototype.eventHandler = function(_listener, _args) {
+ var _traceName = 'Mdp_',
+ _data = {};
+
+ function packArgs() {
+ for (var _i = 0; _i < _args.length; _i++) {
+ _data[_i] = _args[_i];
+ }
+ }
+
+ switch(_listener) {
+ case 'IriSP.Widget.MouseEvents':
+ var _type = _args[0].type,
+ _name = _args[0].target_name,
+ _class = _args[0].target_class,
+ _id = _args[0].target_id,
+ _widget = _args[0].widget.match(/[^_]+widget/i)[0];
+ _traceName += _widget + '_' + _type;
+ _data.x = _args[0].x;
+ _data.y = _args[0].y;
+ _data.target = _name + (_id.length ? '#' + _id : '') + (_class.length ? '.' + _class.replace(/\s/g,'.') : '');
+ if (typeof _args[0].value == "string" && _args[0].value.length) {
+ _data.value = _args[0].value;
+ }
+ if ((_name == "button" || /button/.test(_class)) && typeof _args[0].text == "string" && _args[0].text.length) {
+ _data.text = _args[0].text;
+ }
+ if (typeof _args[0].title == "string" && _args[0].title.length) {
+ _data.title = _args[0].title;
+ }
+ // Filtrer les événements mouseover quand on se déplace vers des éléments non pertinents
+ if (!_id.length && !_class.length && ( _type == 'mouseover' || _type == 'mouseout' ) && this.lastEvent.search('Mdp_' + _widget) == 0) {
+ return;
+ }
+ break;
+ case 'play':
+ case 'pause':
+ case 'seeked':
+ case 'timeupdate':
+ case 'volumechange':
+ _traceName += 'Popcorn' + _listener;
+ packArgs();
+ break;
+ default:
+ _traceName += _listener.replace('IriSP.','').replace('.','_');
+ packArgs();
+ }
+ this.lastEvent = _traceName;
+ console.log("trace('" + _traceName + "', " + JSON.stringify(_data) + ");");
+}