]> git.proxmox.com Git - sencha-touch.git/blobdiff - src/src/chart/series/Polar.js
import Sencha Touch 2.4.2 source
[sencha-touch.git] / src / src / chart / series / Polar.js
diff --git a/src/src/chart/series/Polar.js b/src/src/chart/series/Polar.js
new file mode 100644 (file)
index 0000000..a3d5da4
--- /dev/null
@@ -0,0 +1,90 @@
+/**
+ * Polar series.
+ */
+Ext.define('Ext.chart.series.Polar', {
+
+    extend: 'Ext.chart.series.Series',
+
+    config: {
+        /**
+         * @cfg {Number} rotation
+         * The angle in degrees at which the first polar series item should start.
+         */
+        rotation: 0,
+
+        /**
+         * @cfg {Number} radius
+         * The radius of the polar series. Set to `null` will fit the polar series to the boundary.
+         */
+        radius: null,
+
+        /**
+         * @cfg {Array} center for the polar series.
+         */
+        center: [0, 0],
+
+        /**
+         * @cfg {Number} offsetX
+         * The x-offset of center of the polar series related to the center of the boundary.
+         */
+        offsetX: 0,
+
+        /**
+         * @cfg {Number} offsetY
+         * The y-offset of center of the polar series related to the center of the boundary.
+         */
+        offsetY: 0,
+
+        /**
+         * @cfg {Boolean} showInLegend
+         * Whether to add the series elements as legend items.
+         */
+        showInLegend: true,
+
+        /**
+         * @cfg {String} xField
+         * The store record field name for the labels used in the radar series.
+         */
+        xField: null,
+
+        /**
+         * @cfg {String} yField
+         * The store record field name for the deflection of the graph in the radar series.
+         */
+        yField: null,
+
+        xAxis: null,
+
+        yAxis: null
+    },
+
+    directions: ['X', 'Y'],
+
+    fieldCategoryX: ['X'],
+    fieldCategoryY: ['Y'],
+
+    getDefaultSpriteConfig: function () {
+        return {
+            type: this.seriesType,
+            renderer: this.getRenderer(),
+            centerX: 0,
+            centerY: 0,
+            rotationCenterX: 0,
+            rotationCenterY: 0
+        };
+    },
+
+    applyRotation: function (rotation) {
+        var twoPie = Math.PI * 2;
+        return (rotation % twoPie + Math.PI) % twoPie - Math.PI;
+    },
+
+    updateRotation: function (rotation) {
+        var sprites = this.getSprites();
+        if (sprites && sprites[0]) {
+            sprites[0].setAttributes({
+                baseRotation: rotation
+            });
+        }
+    }
+});
\ No newline at end of file