web/res/metadataplayer/Tooltip.js
author Raphael Velt <raph.velt@gmail.com>
Wed, 19 Dec 2012 16:52:21 +0100
changeset 755 d50aeed9a54b
parent 694 e9400c80e1e4
child 765 8cde4d15a173
permissions -rw-r--r--
Update Tooltip
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
598
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     1
/* this widget displays a small tooltip */
694
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 648
diff changeset
     2
IriSP.Widgets.Tooltip = function(player, config) {
e9400c80e1e4 Updated Metadataplayer
Raphael Velt <raph.velt@gmail.com>
parents: 648
diff changeset
     3
    IriSP.Widgets.Widget.call(this, player, config);
598
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     4
};
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     5
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     6
IriSP.Widgets.Tooltip.prototype = new IriSP.Widgets.Widget();
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
     7
755
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
     8
IriSP.Widgets.Tooltip.prototype.defaults = {
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
     9
    
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    10
};
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    11
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    12
IriSP.Widgets.Tooltip.prototype.template =
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    13
    '<div class="Ldt-Tooltip"><div class="Ldt-Tooltip-Main"><div class="Ldt-Tooltip-Corner-NW"></div>'
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    14
    + '<div class="Ldt-Tooltip-Border-Top"></div><div class="Ldt-Tooltip-Corner-NE"></div>'
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    15
    + '<div class="Ldt-Tooltip-Border-Left"></div><div class="Ldt-Tooltip-Border-Right"></div>'
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    16
    + '<div class="Ldt-Tooltip-Corner-SW"></div><div class="Ldt-Tooltip-Border-SW"></div>'
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    17
    + '<div class="Ldt-Tooltip-Tip"></div><div class="Ldt-Tooltip-Border-SE"></div>'
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    18
    + '<div class="Ldt-Tooltip-Corner-SE"></div><div class="Ldt-Tooltip-Inner">'
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    19
    + '<div class="Ldt-Tooltip-Color"></div><p class="Ldt-Tooltip-Text"></p></div></div></div>';
598
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    20
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    21
IriSP.Widgets.Tooltip.prototype.draw = function() {
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    22
    _this = this;
755
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    23
    this.renderTemplate();
598
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    24
    this.$.parent().css({
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    25
        "position" : "relative"
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    26
    });
755
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    27
    this.$tooltip = this.$.find(".Ldt-Tooltip");
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    28
    this.$tip = this.$.find(".Ldt-Tooltip-Tip");
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    29
    this.$sw = this.$.find(".Ldt-Tooltip-Border-SW");
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    30
    this.$se = this.$.find(".Ldt-Tooltip-Border-SE");
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    31
    this.__halfWidth = Math.floor(this.$.find(".Ldt-Tooltip-Main").width()/2);
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    32
    this.__borderWidth = this.$.find(".Ldt-Tooltip-Border-Left").width();
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    33
    this.__tipDelta = this.__halfWidth - Math.floor(this.$tip.width()/2);
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    34
    this.__maxShift = this.__tipDelta - this.__borderWidth;
598
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    35
    this.$.mouseover(function() {
755
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    36
        _this.$tooltip.hide();
598
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    37
    });
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    38
    this.hide();
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    39
};
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    40
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    41
IriSP.Widgets.Tooltip.prototype.show = function(x, y, text, color) {
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    42
    
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    43
    if (typeof color !== "undefined") {
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    44
        this.$.find(".Ldt-Tooltip-Color").show().css("background-color", color);
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    45
    } else {
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    46
        this.$.find(".Ldt-Tooltip-Color").hide();
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    47
    }
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    48
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    49
    this.$.find(".Ldt-Tooltip-Text").html(text);
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    50
755
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    51
    this.$tooltip.show();
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    52
    
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    53
    var shift = 0;
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    54
    
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    55
    if (typeof this.min_x !== "undefined" && (x - this.__halfWidth < this.min_x)) {
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    56
        shift = Math.max(x - this.__halfWidth - this.min_x, - this.__maxShift);
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    57
    }
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    58
    
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    59
    if (typeof this.max_x !== "undefined" && (x + this.__halfWidth > this.max_x)) {
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    60
        shift = Math.min(x + this.__halfWidth - this.max_x, this.__maxShift);
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    61
    }
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    62
    
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    63
    this.$tooltip.css({
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    64
        "left" : (x - shift) + "px",
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    65
        "top" : y + "px"
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    66
    });
598
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    67
    this.$tip.css({
755
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    68
        "left": (this.__tipDelta + shift) + "px"
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    69
    });
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    70
    this.$sw.css({
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    71
        "width": (this.__tipDelta + shift - this.__borderWidth) + "px"
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    72
    });
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    73
    this.$se.css({
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    74
        "width": (this.__tipDelta - shift - this.__borderWidth) + "px"
598
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    75
    });
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    76
};
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    77
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    78
IriSP.Widgets.Tooltip.prototype.hide = function() {
755
d50aeed9a54b Update Tooltip
Raphael Velt <raph.velt@gmail.com>
parents: 694
diff changeset
    79
    this.$tooltip.hide();
598
d366aa22bd79 New Metadataplayer version
Raphael Velt <raph.velt@gmail.com>
parents:
diff changeset
    80
};