seitime-frappe/public/js/lib/slickgrid/plugins/slick.autotooltips.js
2012-09-24 19:18:30 +05:30

48 lines
No EOL
1.1 KiB
JavaScript

(function ($) {
// register namespace
$.extend(true, window, {
"Slick": {
"AutoTooltips": AutoTooltips
}
});
function AutoTooltips(options) {
var _grid;
var _self = this;
var _defaults = {
maxToolTipLength: null
};
function init(grid) {
options = $.extend(true, {}, _defaults, options);
_grid = grid;
_grid.onMouseEnter.subscribe(handleMouseEnter);
}
function destroy() {
_grid.onMouseEnter.unsubscribe(handleMouseEnter);
}
function handleMouseEnter(e, args) {
var cell = _grid.getCellFromEvent(e);
if (cell) {
var node = _grid.getCellNode(cell.row, cell.cell);
if ($(node).innerWidth() < node.scrollWidth) {
var text = $.trim($(node).text());
if (options.maxToolTipLength && text.length > options.maxToolTipLength) {
text = text.substr(0, options.maxToolTipLength - 3) + "...";
}
$(node).attr("title", text);
} else {
$(node).attr("title", "");
}
}
}
$.extend(this, {
"init": init,
"destroy": destroy
});
}
})(jQuery);