src/js/widgets/arrowWidget.js
branchnew-model
changeset 876 03967b6ada7c
parent 875 43629caa77bc
child 880 4c7b33bf2795
--- a/src/js/widgets/arrowWidget.js	Mon Apr 23 19:11:08 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-IriSP.ArrowWidget = function(Popcorn, config, Serializer) {
-  IriSP.Widget.call(this, Popcorn, config, Serializer);
-
-  this._oldAnnotation = null;
-  this._blockArrow = false;
-};
-
-
-IriSP.ArrowWidget.prototype = new IriSP.Widget();
-
-IriSP.ArrowWidget.prototype.clear = function() {
-
-};
-
-IriSP.ArrowWidget.prototype.clearWidget = function() {
-};
-
-IriSP.ArrowWidget.prototype.draw = function() {
-  var templ = Mustache.to_html(IriSP.arrowWidget_template, {});
-  this.selector.append(templ);
-  this._Popcorn.listen("timeupdate", IriSP.wrap(this, this.timeUpdateHandler));
-  this._Popcorn.listen("IriSP.ArrowWidget.blockArrow", IriSP.wrap(this, this.blockArrow));
-  this._Popcorn.listen("IriSP.ArrowWidget.releaseArrow", IriSP.wrap(this, this.releaseArrow));
-  
-};
-
-IriSP.ArrowWidget.prototype.timeUpdateHandler = function(percents) {
-  if (this._blockArrow)
-    return;
-  
-  var currentTime = this._Popcorn.currentTime();
-  var currentAnnotation = this._serializer.currentChapitre(currentTime);
-  if (IriSP.null_or_undefined(currentAnnotation)) {
-    var c_annots = this._serializer.currentAnnotation(currentTime)
-    if (c_annots.length != 0)
-      var currentAnnotation = c_annots[0]; // FIXME : use the others ?
-    else
-      return;
-  }
-  
-  /* move the arrow only if the current annotation changes */
-  if (currentAnnotation != this._oldAnnotation) {
-    var begin = (+ currentAnnotation.begin) / 1000;
-    var end = (+ currentAnnotation.end) / 1000;
-
-    var duration = this.getDuration() / 1000;
-    var middle_time = (begin + end) / 2;
-    var percents = middle_time / duration;
-
-    // we need to apply a fix because the arrow has a certain length
-    // it's half the length of the arrow (27 / 2). We need to convert
-    // it in percents though.
-    var totalWidth = this.selector.width();    
-    var pixels = percents * totalWidth;
-    var correction = (27 / 2);
-    var corrected_pixels = pixels - correction;
-    
-    /* make sure that the arrow is aligned with the pattern
-       of the widget under it */
-    if (corrected_pixels % 3 != 0)
-      corrected_pixels -= (corrected_pixels % 3 - 1);
-    
-    /* don't move out of the screen */
-    if (corrected_pixels <= 0)
-      corrected_pixels = 0;
-    
-    if (corrected_pixels <= 15) {      
-      this.selector.children(".Ldt-arrowWidget").removeClass("Ldt-arrowLeftEdge Ldt-arrowCenter Ldt-arrowRightEdge")
-                                                .addClass("Ldt-arrowLeftEdge"); 
-    } else if (corrected_pixels >= totalWidth - 25) {
-           this.selector.children(".Ldt-arrowWidget").removeClass("Ldt-arrowLeftEdge Ldt-arrowCenter Ldt-arrowRightEdge")
-                                                .addClass("Ldt-arrowRightEdge"); 
-    } else {
-      this.selector.children(".Ldt-arrowWidget").removeClass("Ldt-arrowLeftEdge Ldt-arrowCenter Ldt-arrowRightEdge")
-                                                .addClass("Ldt-arrowCenter"); 
-    }
-    
-    this.selector.children(".Ldt-arrowWidget").animate({"left" : corrected_pixels + "px"});
-
-    this._oldAnnotation = currentAnnotation;
-  }
-};
-
-/** Block the arrow for instance when the user is annotating */
-IriSP.ArrowWidget.prototype.blockArrow = function() {
-  this._blockArrow = true;
-};
-
-IriSP.ArrowWidget.prototype.releaseArrow = function() {
-  this._blockArrow = false;   
-};