src/js/widgets/polemicWidget.js
author hamidouk
Fri, 04 Nov 2011 10:36:05 +0100
branchpopcorn-port
changeset 191 43a86ab7703c
parent 190 46d34e01c9b0
child 192 d8a826f35aac
permissions -rw-r--r--
added color square for tooltips.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
     1
/* 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
     2
 * 	
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
     3
 *	Copyright 2010 Institut de recherche et d'innovation 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
     4
 *	contributor(s) : Samuel Huron 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
     5
 *	 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
     6
 *	contact@iri.centrepompidou.fr
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
     7
 *	http://www.iri.centrepompidou.fr 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
     8
 *	 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
     9
 *	This software is a computer program whose purpose is to show and add annotations on a video .
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    10
 *	This software is governed by the CeCILL-C license under French law and
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    11
 *	abiding by the rules of distribution of free software. You can  use, 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    12
 *	modify and/ or redistribute the software under the terms of the CeCILL-C
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    13
 *	license as circulated by CEA, CNRS and INRIA at the following URL
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    14
 *	"http://www.cecill.info". 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    15
 *	
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    16
 *	The fact that you are presently reading this means that you have had
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    17
 *	knowledge of the CeCILL-C license and that you accept its terms.
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
 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    24
	this.userPol    = new Array();
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    25
	this.userNoPol  = new Array();
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    26
	this.userst 	   = new Array();
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    27
	this.numberOfTweet = 0;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    28
	this.Users;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    29
	this.TweetPolemic;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    30
	this.yMax	  		= this.height; 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    31
	this.PaperSlider;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    32
	this.heightOfChart;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    33
	this.tweets  = new Array();
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    34
  
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    35
	// Make and define the Raphael area
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    36
	this.paper = Raphael(document.getElementById(this._id), config.width, config.height);
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    37
  
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    38
};
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    39
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    40
IriSP.PolemicWidget.prototype = new IriSP.Widget();
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    41
	
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    42
IriSP.PolemicWidget.prototype.draw = function() {
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    43
	
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    44
		// variable 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    45
		// yMax
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
    46
    
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
    47
    var self = this;
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    48
		var yCoef	  		= 2; 						// coef for height of 1 tweet 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    49
		var frameSize 		= 5; 						// frame size 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    50
		var margin 	  		= 1;						// marge between frame
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    51
		var lineSize  		= this.width;				// timeline pixel width 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    52
		var nbrframes 		= lineSize/frameSize; 		// frame numbers
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    53
		var numberOfTweet 	= 0;						// number of tweet overide later 
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
    54
		var duration  		= +this._serializer.currentMedia().meta["dc:duration"];			// timescale width 
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
    55
		var frameLenght 	= lineSize/frameSize;		// frame timescale	    
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    56
		var timeline;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    57
		var colors  = new Array("","#1D973D","#C5A62D","#CE0A15","#036AAE","#585858");
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    58
		
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    59
		// array 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    60
		//var tweets  = new Array();
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    61
		var element = new Array();
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    62
		var cluster = new Array();
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    63
		var frames  = new Array(frameLenght);
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    64
		var slices  = new Array();
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    65
		
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    66
		
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    67
		// Classes =======================================================================
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    68
		var Frames = function(){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    69
			
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    70
			var Myclusters;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    71
			var x;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    72
			var y;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    73
			var width;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    74
			var height;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    75
		};
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    76
		Frames = function(json){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    77
			// make my clusters
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    78
			// ou Frame vide 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    79
		};
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    80
		Frames.prototype.draw = function(){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    81
		};
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    82
		Frames.prototype.zoom = function(){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    83
		};
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    84
		Frames.prototype.inside = function(){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    85
		};
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    86
		var Clusters = function(){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    87
			var Object;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    88
			var yDist;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    89
			var x;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    90
			var y;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    91
			var width;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    92
			var height;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    93
		};
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    94
		Clusters = function(json){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    95
			// make my object
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    96
		};
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    97
		var Tweet = function(){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    98
		};
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
    99
		// Classes =======================================================================
187
6f1def85018a removed useless printfs.
hamidouk
parents: 176
diff changeset
   100
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   101
		// Refactoring (parametere) ************************************************************
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   102
		// color translastion
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   103
		var qTweet_0  =0;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   104
		var qTweet_Q  =0;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   105
		var qTweet_REF=0;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   106
		var qTweet_OK =0;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   107
		var qTweet_KO =0;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   108
		function colorTranslation(value){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   109
			if(value == "Q"){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   110
				qTweet_Q+=1;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   111
				return 2;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   112
			}else if(value =="REF"){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   113
				qTweet_REF+=1;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   114
				return 4;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   115
			}else if(value =="OK"){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   116
				qTweet_OK+=1;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   117
				return 1;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   118
			}else if(value =="KO"){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   119
				qTweet_KO+=1;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   120
				return 3;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   121
			}else if(value ==""){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   122
				qTweet_0+=1;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   123
				return 5;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   124
			}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   125
		}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   126
		
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   127
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   128
      this._serializer.sync(function(data) { loaded_callback.call(self, data) });
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   129
      
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   130
      function loaded_callback (json) {
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   131
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   132
		    // get current view (the first ???)
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   133
		    view = json.views[0];
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   134
		    
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   135
		    // the tweets are by definition of the second annotation type
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   136
		    tweet_annot_type = null;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   137
		    if(typeof(view.annotation_types) !== "undefined" && view.annotation_types.length > 1) {
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   138
		    	tweet_annot_type = view.annotation_types[1];
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   139
		    }
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   140
			
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   141
      for(var i = 0; i < json.annotations.length; i++) {
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   142
        var item = json.annotations[i];							
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   143
				var MyTime  = Math.floor(item.begin/duration*lineSize);
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   144
				var Myframe = Math.floor(MyTime/lineSize*frameLenght);
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   145
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   146
				if (typeof(item.meta) !== "undefined" 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   147
					&& typeof(item.meta["id-ref"]) !== "undefined"
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   148
					&& item.meta["id-ref"] === tweet_annot_type) {
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   149
						
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   150
					var MyTJson = JSON.parse(item.meta['dc:source']['content']);
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   151
					
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   152
						if (item.content['polemics'] != undefined 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   153
						&& item.content['polemics'][0] != null) {
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   154
						
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   155
						
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   156
							for(var j=0; j<item.content['polemics'].length; j++){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   157
									
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   158
									this.tweets[numberOfTweet] = {
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   159
												id:i,
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   160
												qualification:colorTranslation(item.content['polemics'][j]),
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   161
												yIndicator:MyTime,
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   162
												yframe:Myframe,
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   163
												title:item.content['title'],
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   164
												timeframe:item.begin,
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   165
												userId: MyTJson.id,
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   166
												userScreenName: MyTJson.screen_name,
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   167
												tsource:MyTJson
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   168
												};
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   169
									numberOfTweet+=1;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   170
									
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   171
							}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   172
					}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   173
					else {
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   174
						this.tweets[numberOfTweet] = {
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   175
									id:i,
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   176
									qualification:colorTranslation(""),
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   177
									yIndicator:MyTime,
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   178
									yframe:Myframe,
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   179
									title:item.content['title'],
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   180
									timeframe:item.begin,
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   181
									userId: MyTJson.id,
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   182
									userScreenName: MyTJson.screen_name,
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   183
									tsource:MyTJson
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   184
									
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   185
						};
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   186
						numberOfTweet+=1;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   187
					}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   188
					
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   189
				} 
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   190
			};	
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   191
			
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   192
		   DrawTweets.call (this); // FIXME: ugly.
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   193
		   
189
1a7bd51e7e46 got rid of statistical functions.
hamidouk
parents: 188
diff changeset
   194
		  };			
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   195
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   196
		// tweet Drawing (in raphael) 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   197
		function DrawTweets (){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   198
		// GROUPES TWEET ============================================
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   199
		// Count nbr of cluster and tweet in a frame an save int in "frames"
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   200
			numberOfTweet = this.tweets.length;
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   201
			for(var i=0; i<nbrframes; i++) {	
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   202
				for(var j=0; j<numberOfTweet; j++) {	
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   203
				
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   204
					if (i==this.tweets[j].yframe){
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   205
						
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   206
						var k = this.tweets[j].qualification;
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   207
						
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   208
						// make array for frame cluster
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   209
						if(frames[i]==undefined){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   210
							frames[i] = {id:i,
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   211
										 qualifVol:new Array(),
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   212
										 mytweetsID:new Array()
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   213
										};
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   214
						}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   215
						// add my tweet to frame
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   216
						frames[i].mytweetsID.push(this.tweets[j]);
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   217
						
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   218
						// count opinion by frame
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   219
						if( frames[i].qualifVol[k] == undefined){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   220
							frames[i].qualifVol[k] = 1;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   221
						}else{
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   222
							frames[i].qualifVol[k] += 1;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   223
						}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   224
						
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   225
					}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   226
				}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   227
			}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   228
		
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   229
		// GROUPES TWEET ============================================		
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   230
		// max of tweet by Frame 
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   231
			var max = 0; 
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   232
			for(var i = 0; i < nbrframes; i++) {
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   233
				var moy	= 0;
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   234
				for (var j = 0; j < 6; j++) {		
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   235
					if (frames[i] != undefined) {
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   236
						if (frames[i].qualifVol[j] != undefined) {
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   237
							moy += frames[i].qualifVol[j];
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   238
						}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   239
					}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   240
				}
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   241
				
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   242
				if (moy > max) {
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   243
          max = moy;
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   244
        }
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   245
			}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   246
		
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   247
			var tweetDrawed = new Array();
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   248
			var TweetHeight = 5;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   249
			
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   250
			// DRAW  TWEETS ============================================
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   251
			for(var i=0; i<nbrframes;i++) {
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   252
				var addEheight = 5;
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   253
				if (frames[i] != undefined){
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   254
				        
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   255
					// by type 
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   256
					for (var j = 6; j>-1; j--){
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   257
						if (frames[i].qualifVol[j]!=undefined){
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   258
							// show tweet by type 
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   259
							for (var k = 0; k < frames[i].mytweetsID.length; k++) {
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   260
								if (frames[i].mytweetsID[k].qualification == j) {                
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   261
                  var x = i*frameSize;
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   262
									var y = this.heightmax - addEheight;
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   263
									if (this.yMax > y) {
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   264
                    this.yMax = y;
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   265
                  }
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   266
                  
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   267
									var e = this.paper.rect(x, y, frameSize - margin, TweetHeight /* height */).attr({stroke:"#00","stroke-width":0.1,  fill: colors[j]});	
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   268
									addEheight += TweetHeight;
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   269
									e.time= frames[i].mytweetsID[k].timeframe;
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   270
									e.title= frames[i].mytweetsID[k].title;
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   271
                  
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   272
									e.mouseover(function(element) { return function (event) {                                             
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   273
                        // 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
   274
                        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
   275
                        element.displayed = true;
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   276
                      }}(e)).mouseout(function(element) { return function () {                          
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   277
                          self.TooltipWidget.hide.call(self);
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   278
									}}(e)).mousedown(function () {
190
46d34e01c9b0 removed unused code/dead comments.
hamidouk
parents: 189
diff changeset
   279
										self._Popcorn.currentTime(this.time/1000);
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   280
									});
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   281
									__IriSP.jQuery(e.node).attr('id', 't'+k+'');
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   282
									__IriSP.jQuery(e.node).attr('title', frames[i].mytweetsID[k].title);
190
46d34e01c9b0 removed unused code/dead comments.
hamidouk
parents: 189
diff changeset
   283
									__IriSP.jQuery(e.node).attr('begin',  frames[i].mytweetsID[k].timeframe);									
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   284
								}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   285
							}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   286
						}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   287
					}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   288
				}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   289
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   290
			}		
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   291
			// DRAW UI :: resize border and bgd
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   292
			var heightOfChart 	= (this.yMax-(this.height- this.yMax));
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   293
			var PaperBackground = this.paper.rect(0, this.yMax, this.width,heightOfChart).attr({fill:"#fff","stroke-width":0.1,opacity: 0.1});	
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   294
			var PaperBorder 	= this.paper.rect(0, this.yMax,this.width,1).attr({fill:"#fff",stroke: "none",opacity: 1});	
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   295
			var PaperSlider 	= this.paper.rect(0,20,1,heightOfChart).attr({fill:"#fc00ff",stroke: "none",opacity: 1});	
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   296
			
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   297
			// decalage 
176
c04283d7d1ef refactoring.
hamidouk
parents: 169
diff changeset
   298
			tweetSelection = this.paper.rect(-100,-100,5,5).attr({fill:"#fff",stroke: "none",opacity: 1});	
169
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   299
				
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   300
			PaperSlider.toFront();
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   301
			PaperBackground.toBack();
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   302
		}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   303
		
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   304
		if(typeof(PaperSlider) !== 'undefined' ) {
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   305
			PaperSlider.toFront();
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   306
		}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   307
	}
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   308
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   309
    
427632a324d5 first import of the polemic tweet widget.
hamidouk
parents:
diff changeset
   310