| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 | 
							- <!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-axis-Gauge'>/**
 
- </span> * @class Ext.chart.axis.Gauge
 
-  *
 
-  * Gauge Axis is the axis to be used with a Gauge series. The Gauge axis
 
-  * displays numeric data from an interval defined by the `minimum`, `maximum` and
 
-  * `step` configuration properties. The placement of the numeric data can be changed
 
-  * by altering the `margin` option that is set to `10` by default.
 
-  *
 
-  * A possible configuration for this axis would look like:
 
-  *
 
-  *     axes: [{
 
-  *         type: 'gauge',
 
-  *         position: 'gauge',
 
-  *         minimum: 0,
 
-  *         maximum: 100,
 
-  *         steps: 10,
 
-  *         margin: 7
 
-  *     }],
 
-  */
 
- Ext.define('Ext.chart.axis.Gauge', {
 
-     /* Begin Definitions */
 
-     extend: 'Ext.chart.axis.Abstract',
 
-     /* End Definitions */
 
- <span id='Ext-chart-axis-Gauge-cfg-minimum'>    /**
 
- </span>     * @cfg {Number} minimum (required)
 
-      * The minimum value of the interval to be displayed in the axis.
 
-      */
 
- <span id='Ext-chart-axis-Gauge-cfg-maximum'>    /**
 
- </span>     * @cfg {Number} maximum (required)
 
-      * The maximum value of the interval to be displayed in the axis.
 
-      */
 
- <span id='Ext-chart-axis-Gauge-cfg-steps'>    /**
 
- </span>     * @cfg {Number} steps (required)
 
-      * The number of steps and tick marks to add to the interval.
 
-      */
 
- <span id='Ext-chart-axis-Gauge-cfg-margin'>    /**
 
- </span>     * @cfg {Number} [margin=10]
 
-      * The offset positioning of the tick marks and labels in pixels.
 
-      */
 
- <span id='Ext-chart-axis-Gauge-cfg-title'>    /**
 
- </span>     * @cfg {String} title
 
-      * The title for the Axis.
 
-      */
 
-     position: 'gauge',
 
-     alias: 'axis.gauge',
 
-     drawAxis: function(init) {
 
-         var chart = this.chart,
 
-             surface = chart.surface,
 
-             bbox = chart.chartBBox,
 
-             centerX = bbox.x + (bbox.width / 2),
 
-             centerY = bbox.y + bbox.height,
 
-             margin = this.margin || 10,
 
-             rho = Math.min(bbox.width, 2 * bbox.height) /2 + margin,
 
-             sprites = [], sprite,
 
-             steps = this.steps,
 
-             i, pi = Math.PI,
 
-             cos = Math.cos,
 
-             sin = Math.sin;
 
-         if (this.sprites && !chart.resizing) {
 
-             this.drawLabel();
 
-             return;
 
-         }
 
-         if (this.margin >= 0) {
 
-             if (!this.sprites) {
 
-                 //draw circles
 
-                 for (i = 0; i <= steps; i++) {
 
-                     sprite = surface.add({
 
-                         type: 'path',
 
-                         path: ['M', centerX + (rho - margin) * cos(i / steps * pi - pi),
 
-                                     centerY + (rho - margin) * sin(i / steps * pi - pi),
 
-                                     'L', centerX + rho * cos(i / steps * pi - pi),
 
-                                     centerY + rho * sin(i / steps * pi - pi), 'Z'],
 
-                         stroke: '#ccc'
 
-                     });
 
-                     sprite.setAttributes({
 
-                         hidden: false
 
-                     }, true);
 
-                     sprites.push(sprite);
 
-                 }
 
-             } else {
 
-                 sprites = this.sprites;
 
-                 //draw circles
 
-                 for (i = 0; i <= steps; i++) {
 
-                     sprites[i].setAttributes({
 
-                         path: ['M', centerX + (rho - margin) * cos(i / steps * pi - pi),
 
-                                     centerY + (rho - margin) * sin(i / steps * pi - pi),
 
-                                'L', centerX + rho * cos(i / steps * pi - pi),
 
-                                     centerY + rho * sin(i / steps * pi - pi), 'Z'],
 
-                         stroke: '#ccc'
 
-                     }, true);
 
-                 }
 
-             }
 
-         }
 
-         this.sprites = sprites;
 
-         this.drawLabel();
 
-         if (this.title) {
 
-             this.drawTitle();
 
-         }
 
-     },
 
-     drawTitle: function() {
 
-         var me = this,
 
-             chart = me.chart,
 
-             surface = chart.surface,
 
-             bbox = chart.chartBBox,
 
-             labelSprite = me.titleSprite,
 
-             labelBBox;
 
-         if (!labelSprite) {
 
-             me.titleSprite = labelSprite = surface.add({
 
-                 type: 'text',
 
-                 zIndex: 2
 
-             });
 
-         }
 
-         labelSprite.setAttributes(Ext.apply({
 
-             text: me.title
 
-         }, me.label || {}), true);
 
-         labelBBox = labelSprite.getBBox();
 
-         labelSprite.setAttributes({
 
-             x: bbox.x + (bbox.width / 2) - (labelBBox.width / 2),
 
-             y: bbox.y + bbox.height - (labelBBox.height / 2) - 4
 
-         }, true);
 
-     },
 
- <span id='Ext-chart-axis-Gauge-method-setTitle'>    /**
 
- </span>     * Updates the {@link #title} of this axis.
 
-      * @param {String} title
 
-      */
 
-     setTitle: function(title) {
 
-         this.title = title;
 
-         this.drawTitle();
 
-     },
 
-     drawLabel: function() {
 
-         var chart = this.chart,
 
-             surface = chart.surface,
 
-             bbox = chart.chartBBox,
 
-             centerX = bbox.x + (bbox.width / 2),
 
-             centerY = bbox.y + bbox.height,
 
-             margin = this.margin || 10,
 
-             rho = Math.min(bbox.width, 2 * bbox.height) /2 + 2 * margin,
 
-             round = Math.round,
 
-             labelArray = [], label,
 
-             maxValue = this.maximum || 0,
 
-             minValue = this.minimum || 0,
 
-             steps = this.steps, i = 0,
 
-             adjY,
 
-             pi = Math.PI,
 
-             cos = Math.cos,
 
-             sin = Math.sin,
 
-             labelConf = this.label,
 
-             renderer = labelConf.renderer || function(v) { return v; };
 
-         if (!this.labelArray) {
 
-             //draw scale
 
-             for (i = 0; i <= steps; i++) {
 
-                 // TODO Adjust for height of text / 2 instead
 
-                 adjY = (i === 0 || i === steps) ? 7 : 0;
 
-                 label = surface.add({
 
-                     type: 'text',
 
-                     text: renderer(round(minValue + i / steps * (maxValue - minValue))),
 
-                     x: centerX + rho * cos(i / steps * pi - pi),
 
-                     y: centerY + rho * sin(i / steps * pi - pi) - adjY,
 
-                     'text-anchor': 'middle',
 
-                     'stroke-width': 0.2,
 
-                     zIndex: 10,
 
-                     stroke: '#333'
 
-                 });
 
-                 label.setAttributes({
 
-                     hidden: false
 
-                 }, true);
 
-                 labelArray.push(label);
 
-             }
 
-         }
 
-         else {
 
-             labelArray = this.labelArray;
 
-             //draw values
 
-             for (i = 0; i <= steps; i++) {
 
-                 // TODO Adjust for height of text / 2 instead
 
-                 adjY = (i === 0 || i === steps) ? 7 : 0;
 
-                 labelArray[i].setAttributes({
 
-                     text: renderer(round(minValue + i / steps * (maxValue - minValue))),
 
-                     x: centerX + rho * cos(i / steps * pi - pi),
 
-                     y: centerY + rho * sin(i / steps * pi - pi) - adjY
 
-                 }, true);
 
-             }
 
-         }
 
-         this.labelArray = labelArray;
 
-     }
 
- });</pre>
 
- </body>
 
- </html>
 
 
  |