<!DOCTYPE html>
|
<html>
|
<head>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<title>The source code</title>
|
<link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
|
<script type="text/javascript" src="../resources/prettify/prettify.js"></script>
|
<style type="text/css">
|
.highlight { display: block; background-color: #ddd; }
|
</style>
|
<script type="text/javascript">
|
function highlight() {
|
document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
|
}
|
</script>
|
</head>
|
<body onload="prettyPrint(); highlight();">
|
<pre class="prettyprint lang-js"><span id='Ext-chart-Tip'>/**
|
</span> * @class Ext.chart.Tip
|
* Provides tips for Ext.chart.series.Series.
|
*/
|
Ext.define('Ext.chart.Tip', {
|
|
/* Begin Definitions */
|
|
requires: ['Ext.tip.ToolTip', 'Ext.chart.TipSurface'],
|
|
<span id='Ext-chart-Tip-method-constructor'> /* End Definitions */
|
</span>
|
constructor: function(config) {
|
var me = this,
|
surface,
|
sprites,
|
tipSurface;
|
if (config.tips) {
|
me.tipTimeout = null;
|
me.tipConfig = Ext.apply({}, config.tips, {
|
renderer: Ext.emptyFn,
|
constrainPosition: true,
|
autoHide: true
|
});
|
me.tooltip = new Ext.tip.ToolTip(me.tipConfig);
|
me.chart.surface.on('mousemove', me.tooltip.onMouseMove, me.tooltip);
|
me.chart.surface.on('mouseleave', function() {
|
me.hideTip();
|
});
|
if (me.tipConfig.surface) {
|
//initialize a surface
|
surface = me.tipConfig.surface;
|
sprites = surface.sprites;
|
tipSurface = new Ext.chart.TipSurface({
|
id: 'tipSurfaceComponent',
|
sprites: sprites
|
});
|
if (surface.width && surface.height) {
|
tipSurface.setSize(surface.width, surface.height);
|
}
|
me.tooltip.add(tipSurface);
|
me.spriteTip = tipSurface;
|
}
|
}
|
},
|
|
<span id='Ext-chart-Tip-method-showTip'> showTip: function(item) {
|
</span> var me = this,
|
tooltip,
|
spriteTip,
|
tipConfig,
|
trackMouse,
|
sprite,
|
surface,
|
surfaceExt,
|
pos,
|
x,
|
y;
|
if (!me.tooltip) {
|
return;
|
}
|
clearTimeout(me.tipTimeout);
|
tooltip = me.tooltip;
|
spriteTip = me.spriteTip;
|
tipConfig = me.tipConfig;
|
trackMouse = tooltip.trackMouse;
|
if (!trackMouse) {
|
tooltip.trackMouse = true;
|
sprite = item.sprite;
|
surface = sprite.surface;
|
surfaceExt = Ext.get(surface.getId());
|
if (surfaceExt) {
|
pos = surfaceExt.getXY();
|
x = pos[0] + (sprite.attr.x || 0) + (sprite.attr.translation && sprite.attr.translation.x || 0);
|
y = pos[1] + (sprite.attr.y || 0) + (sprite.attr.translation && sprite.attr.translation.y || 0);
|
tooltip.targetXY = [x, y];
|
}
|
}
|
if (spriteTip) {
|
tipConfig.renderer.call(tooltip, item.storeItem, item, spriteTip.surface);
|
} else {
|
tipConfig.renderer.call(tooltip, item.storeItem, item);
|
}
|
tooltip.show();
|
tooltip.trackMouse = trackMouse;
|
},
|
|
<span id='Ext-chart-Tip-method-hideTip'> hideTip: function(item) {
|
</span> var tooltip = this.tooltip;
|
if (!tooltip) {
|
return;
|
}
|
clearTimeout(this.tipTimeout);
|
this.tipTimeout = setTimeout(function() {
|
tooltip.hide();
|
}, 0);
|
}
|
});</pre>
|
</body>
|
</html>
|