front_idill/src/mosaic/js/search.js
author bastiena
Mon, 09 Jul 2012 14:24:42 +0200
changeset 47 4e1ee94d70b1
parent 46 9d7a2aa112fb
child 52 277c94533395
permissions -rw-r--r--
Front IDILL: Help adapted to screen size & mouse interactions
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     1
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     2
 * Lance une recherche par courbes.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     3
 */
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     4
mosaic.prototype.startSearch = function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     5
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     6
	var _this = this;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     7
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     8
	var top, left, width, height, margin_top, inMosaic;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
     9
	//Si on est dans le cas d'un filtrage de mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    10
	if(this.currentMode == "FILTER")
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    11
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    12
		var mainPanel = $('#mainPanel');
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    13
		top = mainPanel.position().top;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    14
		left = mainPanel.position().left;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    15
		width = mainPanel.width();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    16
		height = mainPanel.height();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    17
		margin_top = this.MPTop_margin;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    18
		inMosaic = true;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    19
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    20
	//Sinon si c'est une recherche dans la vidéo.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    21
	else if(this.currentMode == "SEARCH")
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    22
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    23
		top = this.snTop;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    24
		left = this.snLeft;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    25
		width = this.snWidth;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    26
		height = this.snHeight;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    27
		margin_top = '0px';
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    28
		inMosaic = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    29
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    30
	
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    31
	this.searchCanvas = new searchCanvas(top, left, width, height, margin_top, this.timeSearchFade, inMosaic, this);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    32
	this.searchCanvas.create(this.dictionary);
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    33
}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    34
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    35
/*
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    36
 * Lit le dictionnaire pour reconnaître les courbes de recherche.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    37
*/
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    38
mosaic.prototype.getDictionary = function()
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    39
{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    40
	var path = this.config['dico'];
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    41
	var dico = [];
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    42
	
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    43
	var _this = this;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    44
	
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    45
	$.getJSON(path, function(data)
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    46
	{
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    47
		for(var i = 0 ; i < data.gestures.length ; i++)
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    48
		{
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    49
			_this.dictionary[i] = data.gestures[i];
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    50
		}
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    51
	});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    52
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    53
46
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    54
/*
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    55
 * Charge le texte affichable en fonction de la langue.
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    56
*/
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    57
mosaic.prototype.getLang = function(lang)
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    58
{
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    59
	var path = 'lang/' + this.config['lang'] + '.json';
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    60
	
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    61
	var _this = this;
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    62
	
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    63
	$.getJSON(path, function(data)
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    64
	{
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    65
		_this.gesturesText = data.gesturesText;
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    66
	});
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    67
}
9d7a2aa112fb Front IDILL:
bastiena
parents: 45
diff changeset
    68
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    69
mosaic.prototype.listenToPointers = function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    70
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    71
	if(this.searchCanvas)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    72
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    73
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    74
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    75
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    76
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    77
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    78
 * Quitte une recherche par courbes.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    79
 */
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    80
mosaic.prototype.leaveSearch = function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    81
{
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    82
	if(this.searchCanvas)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    83
	{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    84
		this.searchCanvas.leaveSearch();
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
    85
	}
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    86
	this.searchCanvas = null;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    87
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    88
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    89
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    90
 * Affiche les types de marqueurs correspondants à ce qu'on a commencé à tracer lors d'une recherche.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    91
*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    92
 mosaic.prototype.notifySearchMarkers = function(markersStr)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    93
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    94
	if($('.notifications_inSearch_container').length > 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    95
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    96
		return;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    97
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    98
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
    99
	// console.log(markersStr);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   100
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   101
	var markersList = markersStr.split(new RegExp(';'));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   102
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   103
	var notification_search_markers = "<div class='notifications_inSearch_container'>";
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   104
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   105
	//On spécifie les notifications en div.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   106
	for(var i = 0 ; i < markersList.length ; i++)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   107
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   108
		notification_search_markers += "<div class='notifications_inSearch' style='background-image: url(./pictos/big/normal/" + markersList[i] + ".png);'></div>";
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   109
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   110
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   111
	notification_search_markers += "</div>";
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   112
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   113
	//On les ajoute à la mosaïque.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   114
	$('#mainPanel').append(notification_search_markers);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   115
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   116
	//On calcule leurs coordonnées et dimensions.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   117
	var notify_width = $('.notifications_inSearch_container').width(), notify_height = $('.notifications_inSearch_container').height();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   118
	var notify_margin = parseInt($('.notifications_inSearch').css('margin'));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   119
	var point_left = $(window).width() / 2 - (notify_width) / 2 - notify_margin;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   120
	var point_top = 0;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   121
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   122
	if(this.currentMode == "VIDEO" || this.currentMode == "SEARCH")
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   123
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   124
		point_top = -this.notifyTopVideo,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   125
		point_left = -this.notifyLeftVideo + ($(window).width() - notify_width) / 2
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   126
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   127
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   128
	//On les positionne.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   129
	$('.notifications_inSearch_container').css(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   130
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   131
		left: point_left,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   132
		top: point_top
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   133
	});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   134
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   135
	//On les fait apparaître.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   136
	$('.notifications_inSearch').css(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   137
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   138
		opacity: "0.9"
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   139
	});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   140
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   141
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   142
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   143
 * Supprime la notification de maintient du pointage.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   144
*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   145
mosaic.prototype.removeSearchMarkers = function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   146
{	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   147
	$('.notifications_inSearch_container').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   148
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   149
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   150
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   151
 * Effectuer un filtrage de la mosaïque par rapport à un type de marqueurs.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   152
*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   153
mosaic.prototype.searchFilter = function(type)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   154
{
47
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   155
	// type = 'a';
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   156
	var _this = this;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   157
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   158
	if(this.currentMode == "FILTER")
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   159
	{
47
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   160
		for(var i = 0 ; i < this.config['imagesToShow'] ; i++)
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   161
		{
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   162
			this.currentSearchGesture[i] = type;
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   163
		}
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   164
		
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   165
		this.filterSearchedType = type;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   166
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   167
		// console.log('Annotations length : ' + this.annotations.length);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   168
		if(this.annotations.length > 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   169
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   170
			this.isMosaicFiltering = true;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   171
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   172
			var gestureNumberByVideo = new Object();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   173
			var maxAnnotationNumber = 0;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   174
			// for(var i = 0 ; i < this.config['imagesToShow'] ; i++)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   175
			for(var i = 0 ; i < this.annotations.length ; i++)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   176
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   177
				var current = this.annotations[i];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   178
				// console.log(current.annotationType.contents.title + ' == ' + type);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   179
				if(current.annotationType.contents.title == type)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   180
				{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   181
					if(gestureNumberByVideo[current.source.url] == undefined || gestureNumberByVideo[current.source.url] == '')
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   182
					{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   183
						gestureNumberByVideo[current.source.url] = 0;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   184
					}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   185
					
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   186
					gestureNumberByVideo[current.source.url]++;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   187
				}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   188
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   189
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   190
			for(var i = 0 ; i < this.config['imagesToShow'] ; i++)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   191
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   192
				if(gestureNumberByVideo[this.urls[i]] == undefined || gestureNumberByVideo[this.urls[i]] == '')
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   193
				{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   194
					gestureNumberByVideo[this.urls[i]] = 0;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   195
				}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   196
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   197
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   198
			//On récupère la vidéo qui score le nombre d'occurences de la gesture le plus haut.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   199
			for(i in gestureNumberByVideo)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   200
			{	
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   201
				// console.log(i + " " + gestureNumberByVideo[i] + ' ' + type);
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   202
				if(maxAnnotationNumber < gestureNumberByVideo[i])
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   203
				{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   204
					maxAnnotationNumber = gestureNumberByVideo[i];
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   205
				}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   206
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   207
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   208
			var snMargin = parseInt($('.snapshotDivs').css('margin'));
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   209
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   210
			//On affiche l'opacité résultante pour chaque vidéo.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   211
			for(var i = 0 ; i < this.config['imagesToShow'] ; i++)// in gestureNumberByVideo)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   212
			{
47
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   213
				//Toutes les videos ont cette recherche.
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   214
				this.filterSearchedType[i] = type;
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   215
				//Opacité conventionelle.
47
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   216
				var opacity;
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   217
				if(maxAnnotationNumber > 0)
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   218
				{
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   219
					opacity = gestureNumberByVideo[this.urls[i]] / maxAnnotationNumber;
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   220
				}
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   221
				else
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   222
				{
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   223
					opacity = 0;
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   224
				}
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   225
				
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   226
				// console.log('opacity b : ' + opacity + ' for ' + gestureNumberByVideo[i]);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   227
				//Ce qui est à zéro le restera (par conséquent le snapshot associé sera invisible).
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   228
				if(opacity > 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   229
				{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   230
					//On réhausse l'opacité de 50%.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   231
					opacity = this.scaleIntervals(0., 1., 0.5, 1., opacity);	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   232
				}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   233
				this.opacities[i] = opacity;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   234
				
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   235
				//var filterIndex = this.getIdxFromMetadata(i);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   236
				var filterIndex = i;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   237
				//if(filterIndex >= 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   238
				//{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   239
					// console.log('#snapshotDiv-' + filterIndex + " " + _this.config['timeFilterFade'] + " " + opacity);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   240
					$('#snapshotDiv-' + filterIndex).fadeTo(this.config['timeFilterFade'], opacity, function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   241
					{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   242
						//Pour ne notifier qu'une fois.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   243
						if(_this.isMosaicFiltering)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   244
						{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   245
							_this.isMosaicFiltering = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   246
						}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   247
					});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   248
					
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   249
					// console.log('filterIdx : ' + filterIndex);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   250
					
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   251
					if(opacity == 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   252
					{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   253
						var filteredSnapshot = $('#snapshotDiv-' + filterIndex);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   254
						
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   255
						if(filteredSnapshot.length > 0)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   256
						{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   257
							var hider = '<div id="filterHider-' + filterIndex + '" class="filterHiders"></div>';
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   258
							$('#mainPanel').append(hider);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   259
							
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   260
							$('#filterHider-' + filterIndex).css(
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   261
							{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   262
								width: +filteredSnapshot.width() + 4 * snMargin,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   263
								height: +filteredSnapshot.height() + 4 * snMargin,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   264
								top: filteredSnapshot.position().top - snMargin,
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   265
								left: filteredSnapshot.position().left - snMargin
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   266
							});
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   267
						}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   268
					}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   269
				//}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   270
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   271
			// for(var a = 0 ; a < this.config['imagesToShow'] ; a++)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   272
				// console.log('op : ' + ' ' + this.imgs[a] + ' \t ' + this.opacities[a]);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   273
			
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   274
			this.isMosaicFiltered = true;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   275
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   276
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   277
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   278
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   279
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   280
 * Passe une valeur de l'intervalle [A, B] à l'intervalle [C, D].
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   281
*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   282
mosaic.prototype.scaleIntervals = function(A, B, C, D, val)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   283
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   284
	return (D - C + A) * val + (C - A);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   285
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   286
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   287
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   288
 * Retourne l'index d'un snapshot en fonction de ses metadonnées.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   289
*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   290
mosaic.prototype.getIdxFromMetadata = function(metadata)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   291
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   292
	var _this = this;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   293
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   294
	for(idx in this.urls)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   295
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   296
		if(this.urls[idx] == metadata)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   297
		{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   298
			for(id in this.ids)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   299
			{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   300
				if(this.ids[id] == idx)
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   301
				{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   302
					return id;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   303
				}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   304
			}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   305
		}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   306
	}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   307
	
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   308
	return -1;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   309
}
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   310
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   311
/*
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   312
 * Enlève une recherche par filtre.
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   313
*/
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   314
mosaic.prototype.removeFilter = function()
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   315
{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   316
	if(this.currentMode == "FILTER")
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   317
	{
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   318
		this.currentMode = "MOSAIC";
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   319
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   320
		var _this = this;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   321
		
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   322
		this.isMosaicFiltered = false;
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   323
		this.filterSearchedType = '';
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   324
		
47
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   325
		for(var i = 0 ; i < this.config['imagesToShow'] ; i++)
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   326
		{
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   327
			this.currentSearchGesture[i] = '';
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   328
		}
4e1ee94d70b1 Front IDILL:
bastiena
parents: 46
diff changeset
   329
		
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   330
		$('#notify_search').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   331
		$('#notify_search_1gesture').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   332
		$('.filterHiders').remove();
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   333
		$('.snapshotDivs').fadeTo(_this.config['timeFilterFade'], 1);
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   334
	}
45
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   335
}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   336
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   337
/*
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   338
 * Parcours le dictionnaire pour trouver la première gesture à avoir un code identique à celui en entrée.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   339
*/
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   340
mosaic.prototype.gestureWithSameCode = function(code)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   341
{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   342
	//Pour tout le dictionnaire.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   343
	for(var i = 0 ; i < this.dictionary.length ; i++)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   344
	{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   345
		//Pour touts les codes de chaque gesture du dictionnaire.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   346
		for(var j = 0 ; j < this.dictionary[i].codes.length ; j++)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   347
		{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   348
			//Si le code en entrée est une partie début d'un des codes.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   349
			if(this.dictionary[i].codes[j] === code)
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   350
			{
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   351
				//On retourne le nom de la gesture.
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   352
				return this.dictionary[i].name;
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   353
			}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   354
		}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   355
	}
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   356
	
0e29ae4568a0 Front IDILL:
bastiena
parents: 44
diff changeset
   357
	return '';
44
8393d3473b98 Front IDILL:
bastiena
parents:
diff changeset
   358
}