123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- <!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-Highlight'>/**
- </span> * @class Ext.chart.Highlight
- * A mixin providing highlight functionality for Ext.chart.series.Series.
- */
- Ext.define('Ext.chart.Highlight', {
- /* Begin Definitions */
- requires: ['Ext.fx.Anim'],
- /* End Definitions */
- <span id='Ext-chart-Highlight-method-highlight'> /**
- </span> * Highlight the given series item.
- * @param {Boolean/Object} Default's false. Can also be an object width style properties (i.e fill, stroke, radius)
- * or just use default styles per series by setting highlight = true.
- */
- highlight: false,
- highlightCfg : {
- fill: '#fdd',
- "stroke-width": 5,
- stroke: '#f55'
- },
- constructor: function(config) {
- if (config.highlight) {
- if (config.highlight !== true) { //is an object
- this.highlightCfg = Ext.merge(this.highlightCfg, config.highlight);
- }
- }
- },
- <span id='Ext-chart-Highlight-method-highlightItem'> /**
- </span> * Highlight the given series item.
- * @param {Object} item Info about the item; same format as returned by #getItemForPoint.
- */
- highlightItem: function(item) {
- if (!item) {
- return;
- }
-
- var me = this,
- sprite = item.sprite,
- opts = Ext.merge({}, me.highlightCfg, me.highlight),
- surface = me.chart.surface,
- animate = me.chart.animate,
- p, from, to, pi;
- if (!me.highlight || !sprite || sprite._highlighted) {
- return;
- }
- if (sprite._anim) {
- sprite._anim.paused = true;
- }
- sprite._highlighted = true;
- if (!sprite._defaults) {
- sprite._defaults = Ext.apply({}, sprite.attr);
- from = {};
- to = {};
- for (p in opts) {
- if (! (p in sprite._defaults)) {
- sprite._defaults[p] = surface.availableAttrs[p];
- }
- from[p] = sprite._defaults[p];
- to[p] = opts[p];
- if (Ext.isObject(opts[p])) {
- from[p] = {};
- to[p] = {};
- Ext.apply(sprite._defaults[p], sprite.attr[p]);
- Ext.apply(from[p], sprite._defaults[p]);
- for (pi in sprite._defaults[p]) {
- if (! (pi in opts[p])) {
- to[p][pi] = from[p][pi];
- } else {
- to[p][pi] = opts[p][pi];
- }
- }
- for (pi in opts[p]) {
- if (! (pi in to[p])) {
- to[p][pi] = opts[p][pi];
- }
- }
- }
- }
- sprite._from = from;
- sprite._to = to;
- sprite._endStyle = to;
- }
- if (animate) {
- sprite._anim = new Ext.fx.Anim({
- target: sprite,
- from: sprite._from,
- to: sprite._to,
- duration: 150
- });
- } else {
- sprite.setAttributes(sprite._to, true);
- }
- },
- <span id='Ext-chart-Highlight-method-unHighlightItem'> /**
- </span> * Un-highlight any existing highlights
- */
- unHighlightItem: function() {
- if (!this.highlight || !this.items) {
- return;
- }
- var me = this,
- items = me.items,
- len = items.length,
- opts = Ext.merge({}, me.highlightCfg, me.highlight),
- animate = me.chart.animate,
- i = 0,
- obj, p, sprite;
- for (; i < len; i++) {
- if (!items[i]) {
- continue;
- }
- sprite = items[i].sprite;
- if (sprite && sprite._highlighted) {
- if (sprite._anim) {
- sprite._anim.paused = true;
- }
- obj = {};
- for (p in opts) {
- if (Ext.isObject(sprite._defaults[p])) {
- obj[p] = {};
- Ext.apply(obj[p], sprite._defaults[p]);
- }
- else {
- obj[p] = sprite._defaults[p];
- }
- }
- if (animate) {
- //sprite._to = obj;
- sprite._endStyle = obj;
- sprite._anim = new Ext.fx.Anim({
- target: sprite,
- to: obj,
- duration: 150
- });
- }
- else {
- sprite.setAttributes(obj, true);
- }
- delete sprite._highlighted;
- //delete sprite._defaults;
- }
- }
- },
- cleanHighlights: function() {
- if (!this.highlight) {
- return;
- }
- var group = this.group,
- markerGroup = this.markerGroup,
- i = 0,
- l;
- for (l = group.getCount(); i < l; i++) {
- delete group.getAt(i)._defaults;
- }
- if (markerGroup) {
- for (l = markerGroup.getCount(); i < l; i++) {
- delete markerGroup.getAt(i)._defaults;
- }
- }
- }
- });</pre>
- </body>
- </html>
|