src/js/widgets/polemicWidget.js
author hamidouk
Mon, 19 Dec 2011 15:25:22 +0100
branchpopcorn-port
changeset 481 a46cfeee6d77
parent 478 1422ba0fc333
child 485 67cf75eefeb6
permissions -rw-r--r--
using jquery ui draggable changes the state of an element from absolute to relative positioning, which breaks the way our seek button expands itself, so we need to force absolute positioning, quite uglily, using jquery.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
     1
/* 
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
     2
 *   
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
     3
 *  Copyright 2010 Institut de recherche et d'innovation 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
     4
 *  contributor(s) : Samuel Huron 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
     5
 *   
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
     6
 *  contact@iri.centrepompidou.fr
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
     7
 *  http://www.iri.centrepompidou.fr 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
     8
 *   
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
     9
 *  This software is a computer program whose purpose is to show and add annotations on a video .
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    10
 *  This software is governed by the CeCILL-C license under French law and
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    11
 *  abiding by the rules of distribution of free software. You can  use, 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    12
 *  modify and/ or redistribute the software under the terms of the CeCILL-C
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    13
 *  license as circulated by CEA, CNRS and INRIA at the following URL
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    14
 *  "http://www.cecill.info". 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    15
 *  
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    16
 *  The fact that you are presently reading this means that you have had
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    17
 *  knowledge of the CeCILL-C license and that you accept its terms.
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    18
*/
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    19
// CHART TIMELINE / VERSION PROTOTYPE  ::
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    20
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    21
IriSP.PolemicWidget = function(Popcorn, config, Serializer) {
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    22
  IriSP.Widget.call(this, Popcorn, config, Serializer);
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    23
 
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    24
  this.userPol    = new Array();
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    25
  this.userNoPol  = new Array();
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    26
  this.userst      = new Array();
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    27
  this.numberOfTweet = 0;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    28
  this.Users;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    29
  this.TweetPolemic;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    30
  this.yMax        = this.height; 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    31
  this.PaperSlider;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    32
  this.heightOfChart;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    33
  this.tweets  = new Array();
395
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
    34
  this.svgElements = {};
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    35
  
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    36
  // Make and define the Raphael area
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    37
  this.paper = Raphael(document.getElementById(this._id), config.width, config.height);
395
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
    38
  
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
    39
  this.oldSearchMatches = [];
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
    40
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
    41
  // event handlers
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
    42
  this._Popcorn.listen("IriSP.search", IriSP.wrap(this, function(searchString) { this.searchHandler(searchString); }));
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
    43
  this._Popcorn.listen("IriSP.search.closed", IriSP.wrap(this, this.searchFieldClosedHandler));
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
    44
  this._Popcorn.listen("IriSP.search.cleared", IriSP.wrap(this, this.searchFieldClearedHandler));
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
    45
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    46
};
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    47
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    48
IriSP.PolemicWidget.prototype = new IriSP.Widget();
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    49
  
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    50
IriSP.PolemicWidget.prototype.draw = function() {
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    51
  
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    52
    // variable 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    53
    // yMax
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
    54
    
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
    55
    var self = this;
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    56
    var yCoef        = 2;             // coef for height of 1 tweet 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    57
    var frameSize     = 5;             // frame size 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    58
    var margin         = 1;            // marge between frame
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    59
    var lineSize      = this.width;        // timeline pixel width 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    60
    var nbrframes     = lineSize/frameSize;     // frame numbers
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    61
    var numberOfTweet   = 0;            // number of tweet overide later 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    62
    var duration      = +this._serializer.currentMedia().meta["dc:duration"];      // timescale width 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    63
    var frameLength   = lineSize / frameSize;    // frame timescale  
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    64
    var timeline;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    65
    var colors  = new Array("","#1D973D","#C5A62D","#CE0A15","#036AAE","#585858");
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    66
    
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    67
    // array 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    68
    //var tweets  = new Array();
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    69
    var element = new Array();
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    70
    var cluster = new Array();
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    71
    var frames  = new Array(frameLength);
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    72
    var slices  = new Array();
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    73
    
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    74
    
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    75
    // Classes =======================================================================
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    76
    var Frames = function(){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    77
      
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    78
      var Myclusters;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    79
      var x;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    80
      var y;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    81
      var width;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    82
      var height;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    83
    };
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    84
    Frames = function(json){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    85
      // make my clusters
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    86
      // ou Frame vide 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    87
    };
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    88
    Frames.prototype.draw = function(){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    89
    };
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    90
    Frames.prototype.zoom = function(){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    91
    };
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    92
    Frames.prototype.inside = function(){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    93
    };
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    94
    var Clusters = function(){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    95
      var Object;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    96
      var yDist;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    97
      var x;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    98
      var y;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
    99
      var width;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   100
      var height;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   101
    };
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   102
    Clusters = function(json){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   103
      // make my object
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   104
    };
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   105
    var Tweet = function(){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   106
    };
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   107
    // Classes =======================================================================
187
6f1def85018a removed useless printfs.
hamidouk
parents: 176
diff changeset
   108
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   109
    // Refactoring (parametere) ************************************************************
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   110
    // color translastion
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   111
    var qTweet_0  =0;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   112
    var qTweet_Q  =0;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   113
    var qTweet_REF=0;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   114
    var qTweet_OK =0;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   115
    var qTweet_KO =0;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   116
    function colorTranslation(value){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   117
      if(value == "Q"){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   118
        qTweet_Q+=1;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   119
        return 2;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   120
      }else if(value =="REF"){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   121
        qTweet_REF+=1;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   122
        return 4;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   123
      }else if(value =="OK"){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   124
        qTweet_OK+=1;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   125
        return 1;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   126
      }else if(value =="KO"){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   127
        qTweet_KO+=1;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   128
        return 3;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   129
      }else if(value ==""){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   130
        qTweet_0+=1;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   131
        return 5;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   132
      }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   133
    }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   134
    
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   135
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   136
      this._serializer.sync(function(data) { loaded_callback.call(self, data) });
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   137
      
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   138
      function loaded_callback (json) {
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   139
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   140
        // get current view (the first ???)
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   141
        view = json.views[0];
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   142
        
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   143
        // the tweets are by definition of the second annotation type FIXME ?
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   144
        tweet_annot_type = null;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   145
        if(typeof(view.annotation_types) !== "undefined" && view.annotation_types.length > 1) {
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   146
          tweet_annot_type = view.annotation_types[1];
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   147
        }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   148
      
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   149
      for(var i = 0; i < json.annotations.length; i++) {
265
e0d32948bf62 added a message sent when the user clicks on a tweet.
hamidouk
parents: 246
diff changeset
   150
        var item = json.annotations[i];        
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   151
        var MyTime  = Math.floor(item.begin/duration*lineSize);
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   152
        var Myframe = Math.floor(MyTime/lineSize*frameLength);
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   153
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   154
        if (typeof(item.meta) !== "undefined" 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   155
          && typeof(item.meta["id-ref"]) !== "undefined"
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   156
          && item.meta["id-ref"] === tweet_annot_type) {
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   157
            
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   158
          var MyTJson = JSON.parse(item.meta['dc:source']['content']);
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   159
          
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   160
            if (item.content['polemics'] != undefined 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   161
            && item.content['polemics'][0] != null) {
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   162
            
265
e0d32948bf62 added a message sent when the user clicks on a tweet.
hamidouk
parents: 246
diff changeset
   163
              // a tweet can have many polemics at the same time.
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   164
              for(var j=0; j<item.content['polemics'].length; j++){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   165
                  
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   166
                  this.tweets[numberOfTweet] = {
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   167
                        id:i,
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   168
                        qualification:colorTranslation(item.content['polemics'][j]),
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   169
                        yIndicator:MyTime,
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   170
                        yframe:Myframe,
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   171
                        title:item.content['title'],
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   172
                        timeframe:item.begin,
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   173
                        userId: MyTJson.id,
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   174
                        userScreenName: MyTJson.screen_name,
265
e0d32948bf62 added a message sent when the user clicks on a tweet.
hamidouk
parents: 246
diff changeset
   175
                        tsource:MyTJson,
e0d32948bf62 added a message sent when the user clicks on a tweet.
hamidouk
parents: 246
diff changeset
   176
                        cinecast_id: item.id
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   177
                        };
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   178
                  numberOfTweet+=1;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   179
                  
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   180
              }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   181
          }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   182
          else {
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   183
            this.tweets[numberOfTweet] = {
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   184
                  id:i,
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   185
                  qualification:colorTranslation(""),
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   186
                  yIndicator:MyTime,
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   187
                  yframe:Myframe,
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   188
                  title:item.content['title'],
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   189
                  timeframe:item.begin,
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   190
                  userId: MyTJson.id,
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   191
                  userScreenName: MyTJson.screen_name,
265
e0d32948bf62 added a message sent when the user clicks on a tweet.
hamidouk
parents: 246
diff changeset
   192
                  tsource:MyTJson,
e0d32948bf62 added a message sent when the user clicks on a tweet.
hamidouk
parents: 246
diff changeset
   193
                  cinecast_id: item.id
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   194
            };
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   195
            numberOfTweet+=1;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   196
          }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   197
          
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   198
        } 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   199
      };  
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   200
      
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   201
       DrawTweets.call (this); // FIXME: ugly.
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   202
       
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   203
      };      
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   204
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   205
    // tweet Drawing (in raphael) 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   206
    function DrawTweets (){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   207
    // GROUPES TWEET ============================================
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   208
    // Count nbr of cluster and tweet in a frame an save int in "frames"
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   209
      numberOfTweet = this.tweets.length;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   210
      for(var i=0; i<nbrframes; i++) {  
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   211
        for(var j=0; j<numberOfTweet; j++) {  
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   212
        
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   213
          if (i==this.tweets[j].yframe){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   214
            
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   215
            var k = this.tweets[j].qualification;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   216
            
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   217
            // make array for frame cluster
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   218
            if(frames[i]==undefined){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   219
              frames[i] = {id:i,
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   220
                     qualifVol:new Array(),
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   221
                     mytweetsID:new Array()
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   222
                    };
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   223
            }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   224
            // add my tweet to frame
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   225
            frames[i].mytweetsID.push(this.tweets[j]);
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   226
            
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   227
            // count opinion by frame
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   228
            if( frames[i].qualifVol[k] == undefined){
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   229
              frames[i].qualifVol[k] = 1;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   230
            }else{
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   231
              frames[i].qualifVol[k] += 1;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   232
            }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   233
            
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   234
          }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   235
        }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   236
      }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   237
    
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   238
    // GROUPES TWEET ============================================    
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   239
    // max of tweet by Frame 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   240
      var max = 0; 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   241
      for(var i = 0; i < nbrframes; i++) {
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   242
        var moy  = 0;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   243
        for (var j = 0; j < 6; j++) {    
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   244
          if (frames[i] != undefined) {
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   245
            if (frames[i].qualifVol[j] != undefined) {
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   246
              moy += frames[i].qualifVol[j];
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   247
            }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   248
          }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   249
        }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   250
        
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   251
        if (moy > max) {
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   252
          max = moy;
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   253
        }
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   254
      }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   255
    
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   256
      var tweetDrawed = new Array();
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   257
      var TweetHeight = 5;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   258
      
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   259
      // DRAW  TWEETS ============================================
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   260
      for(var i = 0; i < nbrframes; i++) {
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   261
        var addEheight = 5;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   262
        if (frames[i] != undefined){                
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   263
          // by type 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   264
          
194
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   265
          for (var j = 6; j > -1; j--) {
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   266
            if (frames[i].qualifVol[j] != undefined) {
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   267
              // show tweet by type 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   268
              for (var k = 0; k < frames[i].mytweetsID.length; k++) {
194
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   269
              
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   270
                if (frames[i].mytweetsID[k].qualification == j) {                
194
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   271
                  var x = i * frameSize;
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   272
                  var y = this.heightmax - addEheight;
194
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   273
                  
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   274
                  if (this.yMax > y) {
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   275
                    this.yMax = y;
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   276
                  }
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   277
                  
265
e0d32948bf62 added a message sent when the user clicks on a tweet.
hamidouk
parents: 246
diff changeset
   278
                  var e = this.paper.rect(x, y, frameSize - margin, TweetHeight /* height */)
e0d32948bf62 added a message sent when the user clicks on a tweet.
hamidouk
parents: 246
diff changeset
   279
                                    .attr({stroke:"#00","stroke-width":0.1,  fill: colors[j]});  
196
9fb4dcb0b878 "fixed" a test and added a new array to contain references to the raphael nodes we create.
hamidouk
parents: 195
diff changeset
   280
                  
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   281
                  addEheight += TweetHeight;
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   282
                  
395
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   283
                  e.color = colors[j];
265
e0d32948bf62 added a message sent when the user clicks on a tweet.
hamidouk
parents: 246
diff changeset
   284
                  e.time = frames[i].mytweetsID[k].timeframe;
e0d32948bf62 added a message sent when the user clicks on a tweet.
hamidouk
parents: 246
diff changeset
   285
                  e.title = frames[i].mytweetsID[k].title;
e0d32948bf62 added a message sent when the user clicks on a tweet.
hamidouk
parents: 246
diff changeset
   286
                  e.id = frames[i].mytweetsID[k].cinecast_id;
e0d32948bf62 added a message sent when the user clicks on a tweet.
hamidouk
parents: 246
diff changeset
   287
395
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   288
                  this.svgElements[e.id] = e;
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   289
477
1e51d638e7ea fixes in a rush.
hamidouk
parents: 443
diff changeset
   290
                  /*
231
accc7358d8b5 fixed a position bug.
hamidouk
parents: 207
diff changeset
   291
                  e.mouseover(function(element) { return function (event) {
accc7358d8b5 fixed a position bug.
hamidouk
parents: 207
diff changeset
   292
                        // event.clientX and event.clientY are to raphael what event.pageX and pageY are to jquery.                        
191
43a86ab7703c added color square for tooltips.
hamidouk
parents: 190
diff changeset
   293
                        self.TooltipWidget.show.call(self.TooltipWidget, element.title, element.attr("fill"), event.clientX - 106, event.clientY - 160);
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   294
                        element.displayed = true;
194
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   295
                  }}(e)).mouseout(function(element) { return function () {                          
195
f46fbf25e827 fixed tooltip hiding bug
hamidouk
parents: 194
diff changeset
   296
                          self.TooltipWidget.hide.call(self.TooltipWidget);
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   297
                  }}(e)).mousedown(function () {
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   298
                    self._Popcorn.currentTime(this.time/1000);
265
e0d32948bf62 added a message sent when the user clicks on a tweet.
hamidouk
parents: 246
diff changeset
   299
                    self._Popcorn.trigger("IriSP.PolemicTweet.click", this.id); 
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   300
                  });
477
1e51d638e7ea fixes in a rush.
hamidouk
parents: 443
diff changeset
   301
                  */
1e51d638e7ea fixes in a rush.
hamidouk
parents: 443
diff changeset
   302
                  
478
1422ba0fc333 fixed annoying tooltip flicker bug.
hamidouk
parents: 477
diff changeset
   303
                  IriSP.jQuery(e.node).mouseenter(function(element) { return function (event) {                        
477
1e51d638e7ea fixes in a rush.
hamidouk
parents: 443
diff changeset
   304
                        // event.clientX and event.clientY are to raphael what event.pageX and pageY are to jquery.                        
1e51d638e7ea fixes in a rush.
hamidouk
parents: 443
diff changeset
   305
                        self.TooltipWidget.show.call(self.TooltipWidget, element.title, element.attr("fill"), event.clientX - 106, event.clientY - 160);
1e51d638e7ea fixes in a rush.
hamidouk
parents: 443
diff changeset
   306
                        element.displayed = true;
1e51d638e7ea fixes in a rush.
hamidouk
parents: 443
diff changeset
   307
                  }}(e)).mousedown(function () {
1e51d638e7ea fixes in a rush.
hamidouk
parents: 443
diff changeset
   308
                    self._Popcorn.currentTime(this.time/1000);
1e51d638e7ea fixes in a rush.
hamidouk
parents: 443
diff changeset
   309
                    self._Popcorn.trigger("IriSP.PolemicTweet.click", this.id); 
1e51d638e7ea fixes in a rush.
hamidouk
parents: 443
diff changeset
   310
                  });                  
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   311
                  
194
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   312
                  IriSP.jQuery(e.node).attr('id', 't' + k + '');
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   313
                  IriSP.jQuery(e.node).attr('title', frames[i].mytweetsID[k].title);
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   314
                  IriSP.jQuery(e.node).attr('begin',  frames[i].mytweetsID[k].timeframe);                  
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   315
                }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   316
              }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   317
            }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   318
          }
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   319
        }
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   320
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   321
      }    
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   322
      // DRAW UI :: resize border and bgd      
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   323
      this.paperBackground = this.paper.rect(0, 0, this.width, this.heightmax).attr({fill:"#F8F8F8","stroke-width":0.1,opacity: 1});  
357
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   324
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   325
      // outer borders
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   326
      this.outerBorders   = [];
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   327
      this.outerBorders.push(this.paper.rect(0, this.height - 1, this.width, 1).attr({fill:"#ababab",stroke: "none",opacity: 1}));  
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   328
      this.outerBorders.push(this.paper.rect(0, 0, this.width, 1).attr({fill:"#ababab",stroke: "none",opacity: 1}));  
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   329
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   330
      // inner borders
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   331
      this.innerBorders   = [];
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   332
      this.innerBorders.push(this.paper.rect(1, this.height - 2, this.width, 1).attr({fill:"#efefef",stroke: "none",opacity: 1}));  
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   333
      this.innerBorders.push(this.paper.rect(1, 1, this.width, 1).attr({fill:"#efefef",stroke: "none",opacity: 1}));  
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   334
      this.innerBorders.push(this.paper.rect(1, 1, 1, this.height - 2).attr({fill:"#d0d1d1",stroke: "none",opacity: 0.8}));  
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   335
      this.innerBorders.push(this.paper.rect(this.width - 2, 1, 1, this.height - 2).attr({fill:"#efefef",stroke: "none",opacity: 1}));  
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   336
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   337
6edf399cfa26 the polemicWidget now draws correctly borders around itself.
hamidouk
parents: 265
diff changeset
   338
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   339
      this.paperSlider   = this.paper.rect(0, 0, 0, this.heightmax).attr({fill:"#D4D5D5", stroke: "none", opacity: 1});
197
a793a8a0c9d2 added a rectangle tip to show where we are in the video .
hamidouk
parents: 196
diff changeset
   340
      
a793a8a0c9d2 added a rectangle tip to show where we are in the video .
hamidouk
parents: 196
diff changeset
   341
      // the small white line displayed over the slider.
203
9b76fc6564b1 a couple visual tweaks to polemic tweet.
hamidouk
parents: 197
diff changeset
   342
      this.sliderTip = this.paper.rect(0, 0, 1, this.heightmax).attr({fill:"#fc00ff", stroke: "none", opacity: 1});
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   343
      // decalage 
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   344
      // tweetSelection = this.paper.rect(-100,-100,5,5).attr({fill:"#fff",stroke: "none",opacity: 1});  
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   345
      
196
9fb4dcb0b878 "fixed" a test and added a new array to contain references to the raphael nodes we create.
hamidouk
parents: 195
diff changeset
   346
      
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   347
      this.paperSlider.toBack();
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   348
      this.paperBackground.toBack();
197
a793a8a0c9d2 added a rectangle tip to show where we are in the video .
hamidouk
parents: 196
diff changeset
   349
      this.sliderTip.toFront();
207
2bc276f0c1ae converted tabs to spaces.
hamidouk
parents: 203
diff changeset
   350
    }
194
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   351
    
478
1422ba0fc333 fixed annoying tooltip flicker bug.
hamidouk
parents: 477
diff changeset
   352
    this.selector.mouseleave(IriSP.wrap(this, function() { self.TooltipWidget.hide.call(self.TooltipWidget); }));
194
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   353
    this._Popcorn.listen("timeupdate", IriSP.wrap(this, this.sliderUpdater));
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   354
}
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   355
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   356
IriSP.PolemicWidget.prototype.sliderUpdater = function() {
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   357
194
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   358
    var time = +this._Popcorn.currentTime();
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   359
    var duration = +this._serializer.currentMedia().meta["dc:duration"];
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   360
    
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   361
    this.paperSlider.attr("width", time * (this.width / (duration / 1000)));
197
a793a8a0c9d2 added a rectangle tip to show where we are in the video .
hamidouk
parents: 196
diff changeset
   362
        
a793a8a0c9d2 added a rectangle tip to show where we are in the video .
hamidouk
parents: 196
diff changeset
   363
    this.sliderTip.attr("x", time * (this.width / (duration / 1000)));
194
f5d86e5c4a56 some cleaning. Also added a progression indicator.
hamidouk
parents: 192
diff changeset
   364
};
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   365
    
395
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   366
IriSP.PolemicWidget.prototype.searchHandler = function(searchString) {
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   367
  if (searchString == "")
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   368
    return;
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   369
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   370
  var matches = this._serializer.searchTweetsOccurences(searchString);
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   371
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   372
  if (IriSP.countProperties(matches) > 0) {
398
d1883378b822 renamed search signal.
hamidouk
parents: 395
diff changeset
   373
    this._Popcorn.trigger("IriSP.search.matchFound");
395
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   374
  } else {
398
d1883378b822 renamed search signal.
hamidouk
parents: 395
diff changeset
   375
    this._Popcorn.trigger("IriSP.search.noMatchFound");
395
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   376
  }
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   377
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   378
  for (var id in matches) {
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   379
    if (this.svgElements.hasOwnProperty(id)) {
443
7612eced3867 removed unused variable.
hamidouk
parents: 398
diff changeset
   380
      var e = this.svgElements[id];
395
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   381
      this.svgElements[id].attr({fill: "#fc00ff"});
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   382
    }
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   383
  }
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   384
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   385
  // clean up the blocks that were in the previous search
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   386
  // but who aren't in the current one.
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   387
  for (var id in this.oldSearchMatches) {
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   388
    if (!matches.hasOwnProperty(id)) {
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   389
      var e = this.svgElements[id];
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   390
      e.attr({fill: e.color});
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   391
    }
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   392
  }
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   393
  
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   394
  this.oldSearchMatches = matches;
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   395
};
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   396
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   397
IriSP.PolemicWidget.prototype.searchFieldClearedHandler = function() {
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   398
  // clean up the blocks that were in the previous search
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   399
  // but who aren't in the current one.
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   400
  for (var id in this.oldSearchMatches) {
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   401
      var e = this.svgElements[id];
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   402
      e.attr({fill: e.color});
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   403
  }
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   404
 
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   405
};
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   406
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   407
IriSP.PolemicWidget.prototype.searchFieldClosedHandler = function() {
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   408
  // clean up the blocks that were in the previous search
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   409
  // but who aren't in the current one.
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   410
  for (var id in this.oldSearchMatches) {
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   411
      var e = this.svgElements[id];
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   412
      e.attr({fill: e.color});
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   413
  }
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   414
 
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   415
};
5766e8238aaf search in twitter feed now works.
hamidouk
parents: 379
diff changeset
   416