src/widgets/Polemic.js
author veltr
Wed, 29 Aug 2012 18:34:11 +0200
branchnew-model
changeset 937 eb3c442cec50
parent 930 165f236e42f2
child 957 4da0a5740b6c
child 1019 3ab36f402b0c
permissions -rw-r--r--
Added events on annotation for inter widget communication
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
     1
IriSP.Widgets.Polemic = function(player, config) {
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
     2
    IriSP.Widgets.Widget.call(this, player, config);
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
     3
};
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
     4
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
     5
IriSP.Widgets.Polemic.prototype = new IriSP.Widgets.Widget();
187
6f1def85018a removed useless printfs.
hamidouk
parents: 176
diff changeset
     6
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
     7
IriSP.Widgets.Polemic.prototype.messages = {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
     8
    fr: {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
     9
        from_: "de ",
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    10
        _to_: " à ",
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    11
        _annotations: " annotation(s)"
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    12
    },
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    13
    en: {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    14
        from_: "from ",
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    15
        _to_: " to ",
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    16
        _annotations: " annotation(s)"
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    17
    }
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    18
}
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    19
IriSP.Widgets.Polemic.prototype.defaults = {
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    20
    element_width : 5,
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    21
    element_height : 5,
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    22
    max_elements : 15,
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    23
    annotation_type : "tweet",
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    24
    defaultcolor : "#585858",
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    25
    foundcolor : "#fc00ff",
880
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents: 876
diff changeset
    26
    polemics : [
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    27
        {
930
165f236e42f2 Improvements in trace module + minor corrections
veltr
parents: 925
diff changeset
    28
            "name" : "OK",
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    29
            "keywords" : [ "++" ],
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    30
            "color" : "#1D973D"
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    31
        },
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    32
        {
930
165f236e42f2 Improvements in trace module + minor corrections
veltr
parents: 925
diff changeset
    33
            "name" : "KO",
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    34
            "keywords" : [ "--" ],
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    35
            "color" : "#CE0A15"
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    36
        },
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    37
        {
930
165f236e42f2 Improvements in trace module + minor corrections
veltr
parents: 925
diff changeset
    38
            "name" : "REF",
909
aa0e42229784 Started reworking on documentation
veltr
parents: 906
diff changeset
    39
            "keywords" : [ "==", "http://" ],
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    40
            "color" : "#C5A62D"  
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    41
        },
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    42
        {
930
165f236e42f2 Improvements in trace module + minor corrections
veltr
parents: 925
diff changeset
    43
            "name" : "Q",
909
aa0e42229784 Started reworking on documentation
veltr
parents: 906
diff changeset
    44
            "keywords" : [ "?" ],
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    45
            "color" : "#036AAE"
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    46
        }
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    47
    ]
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    48
};
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    49
876
03967b6ada7c ArrowWidget, AnnotationWidget
veltr
parents: 875
diff changeset
    50
IriSP.Widgets.Polemic.prototype.onSearch = function(searchString) {
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    51
    this.searchString = typeof searchString !== "undefined" ? searchString : '';
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    52
    var _found = 0,
925
28efc97b5d78 Corrected MAJOR bug in search results
veltr
parents: 924
diff changeset
    53
        _re = IriSP.Model.regexpFromTextOrArray(searchString, true),
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    54
        _this = this;
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    55
    this.$tweets.each(function() {
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    56
        var _el = IriSP.jQuery(this);
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    57
        if (_this.searchString) {
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    58
            if (_re.test(_el.attr("tweet-title"))) {
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    59
                _el.css({
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    60
                    "background" : _this.foundcolor,
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    61
                    "opacity" : 1
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    62
                });
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    63
                _found++;
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    64
            } else {
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    65
                _el.css({
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    66
                    "background" : _el.attr("polemic-color"),
937
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
    67
                    "opacity" : .3
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    68
                });
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    69
            }
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    70
        } else {
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    71
            _el.css({
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    72
                "background" : _el.attr("polemic-color"),
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    73
                "opacity" : 1
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    74
            });
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    75
        }
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    76
    });
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    77
    if (this.searchString) {
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    78
        if (_found) {
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    79
            this.player.popcorn.trigger("IriSP.search.matchFound");
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    80
        } else {
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    81
            this.player.popcorn.trigger("IriSP.search.noMatchFound");
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    82
        }
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    83
    }
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
    84
}
595
29d86e6c61a6 finished going through the widgets to add stricter line checking.
hamidouk
parents: 567
diff changeset
    85
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    86
IriSP.Widgets.Polemic.prototype.draw = function() {
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    87
    
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    88
    this.bindPopcorn("timeupdate", "onTimeupdate");
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    89
    this.$zone = IriSP.jQuery('<div>');
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    90
    this.$zone.addClass("Ldt-Polemic");
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    91
    this.$.append(this.$zone);
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
    92
    
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    93
    this.$elapsed = IriSP.jQuery('<div>')
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    94
        .css({
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    95
            background: '#cccccc',
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    96
            position: "absolute",
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    97
            top: 0,
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    98
            left: 0,
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
    99
            width: 0,
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   100
            height: "100%"
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   101
        });
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   102
        
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   103
    this.$zone.append(this.$elapsed);
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   104
    
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   105
    var _slices = [],
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
   106
        _slice_count = Math.floor( this.width / this.element_width ),
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   107
        _duration = this.source.getDuration(),
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   108
        _max = 0,
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   109
        _list = this.getWidgetAnnotations(),
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   110
        _this = this;
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   111
    
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
   112
    for (var _i = 0; _i < _slice_count; _i++) {
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
   113
        var _begin = new IriSP.Model.Time( _i * _duration / _slice_count ),
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
   114
            _end = new IriSP.Model.Time( ( _i + 1 ) * _duration / _slice_count ),
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   115
            _count = 0,
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   116
            _res = {
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   117
                begin : _begin.toString(),
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   118
                end : _end.toString(),
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   119
                annotations : _list.filter(function(_annotation) {
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   120
                    return _annotation.begin >= _begin && _annotation.end < _end;
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   121
                }),
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   122
                polemicStacks : []
566
098929cd2d62 made the polemicwidget adjust its size automatically and fixed a couple edgecases.
hamidouk
parents: 565
diff changeset
   123
            }
098929cd2d62 made the polemicwidget adjust its size automatically and fixed a couple edgecases.
hamidouk
parents: 565
diff changeset
   124
            
880
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents: 876
diff changeset
   125
        for (var _j = 0; _j < this.polemics.length; _j++) {
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents: 876
diff changeset
   126
            var _polemic = _res.annotations.searchByDescription(this.polemics[_j].keywords);
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   127
            _count += _polemic.length;
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   128
            _res.polemicStacks.push(_polemic);
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   129
        }
880
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents: 876
diff changeset
   130
        for (var _j = 0; _j < this.polemics.length; _j++) {
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   131
            _res.annotations.removeElements(_res.polemicStacks[_j]);
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   132
        }
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   133
        _count += _res.annotations.length;
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   134
        _max = Math.max(_max, _count);
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   135
        _slices.push(_res);
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   136
    }
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   137
    if (_max < this.max_elements) {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   138
        this.is_stackgraph = false;
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   139
        if (_max) {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   140
                    
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   141
            this.height = (2 + _max) * this.element_height;
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   142
            this.$zone.css({
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   143
                width: this.width + "px",
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   144
                height: this.height + "px",
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   145
                position: "relative"
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   146
            });
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   147
            
937
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   148
            var _x = 0;
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   149
            
937
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   150
            function displayAnnotation(_elx, _ely, _pol, _col, _annotation) {
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   151
                var _html = Mustache.to_html(
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   152
                    '<div class="Ldt-Polemic-TweetDiv Ldt-TraceMe" trace-info="annotation-id:{{id}}, media-id={{media_id}}, polemic={{polemic}}" polemic-color="{{color}}"'
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   153
                    + ' tweet-title="{{title}}" annotation-id="{{id}}" style="width: {{width}}px; height: {{height}}px; top: {{top}}px; left: {{left}}px; background: {{color}}"></div>',
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   154
                {
937
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   155
                    id: _annotation.id,
930
165f236e42f2 Improvements in trace module + minor corrections
veltr
parents: 925
diff changeset
   156
                    media_id: _this.source.currentMedia.id,
937
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   157
                    polemic: _pol,
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   158
                    left: _elx,
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   159
                    top: _ely,
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   160
                    color: _col,
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   161
                    width: (_this.element_width-1),
937
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   162
                    height: _this.element_height,
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   163
                    title: _annotation.title
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   164
                });
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   165
                var _el = IriSP.jQuery(_html);
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   166
                _el.mouseover(function() {
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   167
                    _annotation.trigger("select");
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   168
                }).mouseout(function() {
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   169
                    _annotation.trigger("unselect");
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   170
                }).click(function() {
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   171
                    _this.player.popcorn.trigger("IriSP.Mediafragment.setHashToAnnotation", _annotation.id);
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   172
                    _this.player.popcorn.trigger("IriSP.Tweet.show", _annotation.id);
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   173
                });
937
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   174
                _annotation.on("select", function() {
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   175
                    _this.tooltip.show(
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   176
                        Math.floor(_elx + (_this.element_width - 1) / 2),
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   177
                        _ely,
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   178
                        _annotation.title,
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   179
                        _col
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   180
                    );
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   181
                    _this.$tweets.each(function() {
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   182
                        var _e = IriSP.jQuery(this);
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   183
                        _e.css(
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   184
                            "opacity",
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   185
                            ( _e.attr("annotation-id") == _annotation.id ? 1 : .3 )
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   186
                        );
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   187
                    });
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   188
                });
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   189
                _annotation.on("unselect", function() {
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   190
                    _this.tooltip.hide();
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   191
                    _this.$tweets.css("opacity",1);
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   192
                });
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   193
                _this.$zone.append(_el);
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   194
            }
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   195
            
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   196
            IriSP._(_slices).forEach(function(_slice) {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   197
                var _y = _this.height;
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   198
                _slice.annotations.forEach(function(_annotation) {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   199
                    _y -= _this.element_height;
937
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   200
                    displayAnnotation(_x, _y, "none", _this.defaultcolor, _annotation);
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   201
                });
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   202
                IriSP._(_slice.polemicStacks).forEach(function(_annotations, _j) {
930
165f236e42f2 Improvements in trace module + minor corrections
veltr
parents: 925
diff changeset
   203
                    var _color = _this.polemics[_j].color,
165f236e42f2 Improvements in trace module + minor corrections
veltr
parents: 925
diff changeset
   204
                        _polemic = _this.polemics[_j].name;
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   205
                    _annotations.forEach(function(_annotation) {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   206
                        _y -= _this.element_height;
937
eb3c442cec50 Added events on annotation for inter widget communication
veltr
parents: 930
diff changeset
   207
                        displayAnnotation(_x, _y, _polemic, _color, _annotation);
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   208
                    });
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   209
                });
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   210
                _x += _this.element_width;
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   211
            });
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   212
            
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   213
            this.$zone.append(_html);
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   214
            
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   215
            this.$tweets = this.$.find(".Ldt-Polemic-TweetDiv");
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   216
            
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   217
            this.bindPopcorn("IriSP.search", "onSearch");
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   218
            this.bindPopcorn("IriSP.search.closed", "onSearch");
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   219
            this.bindPopcorn("IriSP.search.cleared", "onSearch");
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   220
            
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   221
        } else {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   222
            this.$zone.hide();
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   223
        }
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   224
    } else {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   225
        this.is_stackgraph = true;
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   226
        
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   227
        this.height = (2 + this.max_elements) * this.element_height;
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   228
        this.$zone.css({
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   229
            width: this.width + "px",
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   230
            height: this.height + "px",
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   231
            position: "relative"
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   232
        });
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   233
        
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   234
        var _x = 0,
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   235
            _html = '',
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   236
            _scale = this.max_elements * this.element_height / _max;
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   237
            
930
165f236e42f2 Improvements in trace module + minor corrections
veltr
parents: 925
diff changeset
   238
        function displayStackElement(_x, _y, _h, _color, _nums, _begin, _end, _polemic) {
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   239
            _html += Mustache.to_html(
930
165f236e42f2 Improvements in trace module + minor corrections
veltr
parents: 925
diff changeset
   240
                '<div class="Ldt-Polemic-TweetDiv Ldt-TraceMe" trace-info="annotation-block, media-id={{media_id}}, polemic={{polemic}}, time:{{begin}}" pos-x="{{posx}}" pos-y="{{top}}" annotation-counts="{{nums}}" begin-time="{{begin}}" end-time="{{end}}"'
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   241
                + ' style="width: {{width}}px; height: {{height}}px; top: {{top}}px; left: {{left}}px; background: {{color}}"></div>',
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   242
            {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   243
                nums: _nums,
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   244
                posx: Math.floor(_x + (_this.element_width - 1) / 2),
930
165f236e42f2 Improvements in trace module + minor corrections
veltr
parents: 925
diff changeset
   245
                media_id: _this.source.currentMedia.id,
165f236e42f2 Improvements in trace module + minor corrections
veltr
parents: 925
diff changeset
   246
                polemic: _polemic,
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   247
                left: _x,
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   248
                top: _y,
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   249
                color: _color,
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   250
                width: (_this.element_width-1),
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   251
                height: _h,
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   252
                begin: _begin,
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   253
                end: _end
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   254
            });
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   255
        }
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   256
        
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   257
        IriSP._(_slices).forEach(function(_slice) {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   258
            var _y = _this.height,
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   259
                _nums = _slice.annotations.length + "," + IriSP._(_slice.polemicStacks).map(function(_annotations) {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   260
                    return _annotations.length
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   261
                }).join(",");
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   262
            if (_slice.annotations.length) {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   263
                var _h = Math.ceil(_scale * _slice.annotations.length);
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   264
                _y -= _h;
930
165f236e42f2 Improvements in trace module + minor corrections
veltr
parents: 925
diff changeset
   265
                displayStackElement(_x, _y, _h, _this.defaultcolor, _nums, _slice.begin, _slice.end, "none");
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   266
            }
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   267
            IriSP._(_slice.polemicStacks).forEach(function(_annotations, _j) {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   268
                if (_annotations.length) {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   269
                    var _color = _this.polemics[_j].color,
930
165f236e42f2 Improvements in trace module + minor corrections
veltr
parents: 925
diff changeset
   270
                        _polemic = _this.polemics[_j].name,
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   271
                        _h = Math.ceil(_scale * _annotations.length);
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   272
                    _y -= _h;
930
165f236e42f2 Improvements in trace module + minor corrections
veltr
parents: 925
diff changeset
   273
                    displayStackElement(_x, _y, _h, _color, _nums, _slice.begin, _slice.end, _polemic);
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   274
                }
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   275
            });
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   276
            _x += _this.element_width;
876
03967b6ada7c ArrowWidget, AnnotationWidget
veltr
parents: 875
diff changeset
   277
        });
882
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   278
        
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   279
        this.$zone.append(_html);
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   280
        
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   281
        this.$tweets = this.$.find(".Ldt-Polemic-TweetDiv");
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   282
        
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   283
        this.$tweets
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   284
            .mouseover(function() {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   285
                var _el = IriSP.jQuery(this),
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   286
                    _nums = _el.attr("annotation-counts").split(","),
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   287
                    _html = '<p>' + _this.l10n.from_ + _el.attr("begin-time") + _this.l10n._to_ + _el.attr("end-time") + '</p>';
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   288
                for (var _i = 0; _i <= _this.polemics.length; _i++) {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   289
                    var _color = _i ? _this.polemics[_i - 1].color : _this.defaultcolor;
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   290
                    _html += '<div class="Ldt-Tooltip-Color" style="background: ' + _color + '"></div><p>' + _nums[_i] + _this.l10n._annotations + '</p>'
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   291
                }
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   292
                _this.tooltip.show(_el.attr("pos-x"), _el.attr("pos-y"), _html);
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   293
            })
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   294
            .mouseout(function() {
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   295
                _this.tooltip.hide();
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   296
            })
61c384dda19e Big refactoring
veltr
parents: 881
diff changeset
   297
            
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   298
    }
194
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   299
    
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
   300
    this.$position = IriSP.jQuery('<div>').addClass("Ldt-Polemic-Position");
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   301
        
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   302
    this.$zone.append(this.$position);
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   303
    
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   304
    this.$zone.click(function(_e) {
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   305
        var _x = _e.pageX - _this.$zone.offset().left;
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   306
        _this.player.popcorn.currentTime(_this.source.getDuration().getSeconds() * _x / _this.width);
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   307
    });
924
64c2eaafe5e2 Modifications for LDT-Platform
veltr
parents: 916
diff changeset
   308
    
64c2eaafe5e2 Modifications for LDT-Platform
veltr
parents: 916
diff changeset
   309
    this.$.append('<div class="Ldt-Polemic-Tooltip"></div>');
64c2eaafe5e2 Modifications for LDT-Platform
veltr
parents: 916
diff changeset
   310
    
64c2eaafe5e2 Modifications for LDT-Platform
veltr
parents: 916
diff changeset
   311
    this.insertSubwidget(this.$.find(".Ldt-Polemic-Tooltip"), "tooltip", { type: "Tooltip" });
194
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   312
}
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   313
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
   314
IriSP.Widgets.Polemic.prototype.onTimeupdate = function() {
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   315
    var _x = Math.floor( this.width * this.player.popcorn.currentTime() / this.source.getDuration().getSeconds());
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   316
    this.$elapsed.css({
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   317
        width:  _x + "px"
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   318
    });
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   319
    this.$position.css({
875
43629caa77bc Big refactoring of widget files + started migration of segmentwidget
veltr
parents: 874
diff changeset
   320
        left: _x + "px"
874
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   321
    })
38b65761a7d5 TooltipWidget, SliderWidget, corrections in AnnotationList, CSS are now split
veltr
parents: 842
diff changeset
   322
}