Skip to content

Commit fd7602a

Browse files
committed
feat: Primary implementation for Pie Chart.
1 parent 0a6e2e1 commit fd7602a

25 files changed

+2366
-1677
lines changed

demo/app/examples/NSChart.js

+39-1
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ const fs = require("@nativescript/core/file-system");
33
const imageSourceModule = require("@nativescript/core/image-source");
44
const bd = require("@nativescript-community/ui-chart/data/BarData");
55
const bds = require("@nativescript-community/ui-chart/data/BarDataSet");
6-
const be = require("@nativescript-community/ui-chart/data/BarEntry");
76
const ld = require("@nativescript-community/ui-chart/data/LineData");
87
const lds = require("@nativescript-community/ui-chart/data/LineDataSet");
8+
const pd = require("@nativescript-community/ui-chart/data/PieData");
9+
const pds = require("@nativescript-community/ui-chart/data/PieDataSet");
910

1011
function getRandomInt(min, max)
1112
{
@@ -39,6 +40,7 @@ exports.onBarChartLoaded = function(args)
3940
chart.setScaleEnabled(true);
4041
chart.setDragEnabled(true);
4142
chart.getAxisRight().setEnabled(false);
43+
chart.setHighlightPerTapEnabled(true);
4244
// chart.setHardwareAccelerationEnabled(true);
4345

4446
const data = new Array(5).fill(0).map(function(v, i)
@@ -89,6 +91,36 @@ exports.onLineChartLoaded = function(args)
8991
chart.setData(linedata);
9092
};
9193

94+
exports.onPieChartLoaded = function(args)
95+
{
96+
const chart = args.object;
97+
98+
chart.drawFameRate = true;
99+
chart.setLogEnabled(true);
100+
chart.setHighlightPerTapEnabled(true);
101+
//chart.setHoleRadius(10);
102+
//chart.setDrawHoleEnabled(false);
103+
// chart.setHardwareAccelerationEnabled(true);
104+
105+
const data = new Array(5).fill(0).map(function(v, i)
106+
{
107+
return {label: i + "", value: Math.random() * 100};
108+
});
109+
110+
console.log('setData', data.length, data[0]);
111+
const sets = [];
112+
const set = new pds.PieDataSet(data, 'value', 'value');
113+
set.setColors([getRandomColor(), getRandomColor()]);
114+
set.setDrawValues(true);
115+
sets.push(set);
116+
117+
// create a data object with the data sets
118+
const piedata = new pd.PieData(sets);
119+
120+
// set data
121+
chart.setData(piedata);
122+
};
123+
92124
exports.redraw = function(args)
93125
{
94126
const page = args.object.page;
@@ -110,6 +142,12 @@ exports.redraw = function(args)
110142
{
111143
lc.invalidate();
112144
}
145+
146+
const pc = page.getViewById("pie-chart");
147+
if (pc)
148+
{
149+
pc.invalidate();
150+
}
113151
};
114152

115153
exports.onNavigationButtonTap = function(args)

demo/app/examples/NSChart.xml

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
<chart:BarChart id="bar-chart" backgroundColor="lightgray" width="300" height="350" loaded="onBarChartLoaded"/>
1212
<Label text="Horizontal Bar Chart" fontSize="20"/>
1313
<chart:HorizontalBarChart id="horizontal-bar-chart" backgroundColor="lightgray" width="300" height="350" loaded="onBarChartLoaded"/>
14+
<Label text="Pie Chart" fontSize="20"/>
15+
<chart:PieChart id="pie-chart" backgroundColor="lightgray" width="300" height="350" loaded="onPieChartLoaded"/>
1416
</StackLayout>
1517
</ScrollView>
1618
</Page>

src/charting/charts/Chart.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ export abstract class Chart<U extends Entry, D extends IDataSet<U>, T extends Ch
393393
*/
394394
protected mOffsetsCalculated = false;
395395

396-
onDraw(canvas: Canvas) {
396+
public onDraw(canvas: Canvas) {
397397
// super.onDraw(canvas);
398398

399399
if (this.mData === null) {

src/charting/charts/HorizontalBarChart.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ export class HorizontalBarChart extends BarChart
188188
}
189189
return null;
190190
}
191-
return this.getHighlighter().getHighlight(y, x); // switch x and y
191+
return this.getHighlighter().getHighlight(x, y);
192192
}
193193

194194

src/charting/charts/PieChart.java

-2
Original file line numberDiff line numberDiff line change
@@ -335,8 +335,6 @@ private let calcAngle(let value, let yValueSum) {
335335
*
336336
* @return
337337
*/
338-
339-
340338
public XAxis getXAxis() {
341339
throw new RuntimeException("PieChart has no XAxis");
342340
}

0 commit comments

Comments
 (0)