Skip to content

Commit

Permalink
Merge pull request #371 from beto-rodriguez/events
Browse files Browse the repository at this point in the history
A review to simplify events
  • Loading branch information
beto-rodriguez authored Jan 24, 2022
2 parents 343996f + 4829b5a commit ec36871
Show file tree
Hide file tree
Showing 59 changed files with 925 additions and 269 deletions.
2 changes: 1 addition & 1 deletion samples/AvaloniaSample/Events/Cartesian/View.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ private void Chart_DataPointerDown(

foreach (var point in points)
{
if (point.Context.DataSource is City city)
if (point.Context.DataSource is Fruit city)
{
Trace.WriteLine($"[chart.dataPointerDownEvent] clicked on {city.Name}");
continue;
Expand Down
2 changes: 1 addition & 1 deletion samples/BlazorSample/Pages/Events/Cartesian.razor
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
foreach (var point in points)
{
if (point.Context.DataSource is City city)
if (point.Context.DataSource is Fruit city)
{
Console.WriteLine($"[chart.dataPointerDownEvent] clicked on {city.Name}");
continue;
Expand Down
2 changes: 1 addition & 1 deletion samples/MauiSample/Events/Cartesian/View.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ private void Chart_DataPointerDown(

foreach (var point in points)
{
if (point.Context.DataSource is City city)
if (point.Context.DataSource is Fruit city)
{
Trace.WriteLine($"[chart.dataPointerDownEvent] clicked on {city.Name}");
continue;
Expand Down
2 changes: 1 addition & 1 deletion samples/UWPSample/Events/Cartesian/View.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ private void Chart_DataPointerDown(

foreach (var point in points)
{
if (point.Context.DataSource is City city)
if (point.Context.DataSource is Fruit city)
{
Trace.WriteLine($"[chart.dataPointerDownEvent] clicked on {city.Name}");
continue;
Expand Down
8 changes: 0 additions & 8 deletions samples/ViewModelsSamples/Events/Cartesian/City.cs

This file was deleted.

8 changes: 8 additions & 0 deletions samples/ViewModelsSamples/Events/Cartesian/Fruit.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace ViewModelsSamples.Events.Cartesian;

public class Fruit
{
public string Name { get; set; }
public double SalesPerDay { get; set; }
public int Stock { get; set; }
}
2 changes: 1 addition & 1 deletion samples/ViewModelsSamples/Events/Cartesian/RelayCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public void Execute(object parameter)

foreach (var point in points)
{
if (point.Context.DataSource is City city)
if (point.Context.DataSource is Fruit city)
{
Trace.WriteLine($"[chart.dataPointerDownCommand] clicked on {city.Name}");
continue;
Expand Down
65 changes: 41 additions & 24 deletions samples/ViewModelsSamples/Events/Cartesian/ViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using LiveChartsCore.Kernel;
using LiveChartsCore.Kernel.Sketches;
using LiveChartsCore.SkiaSharpView;
using LiveChartsCore.SkiaSharpView.Drawing;
using LiveChartsCore.SkiaSharpView.Drawing.Geometries;

namespace ViewModelsSamples.Events.Cartesian;
Expand All @@ -15,43 +16,59 @@ public ViewModel()
{
var data = new[]
{
new City { Name = "Tokyo", Population = 4 },
new City { Name = "New York", Population = 6 },
new City { Name = "Seoul", Population = 2 },
new City { Name = "Moscow", Population = 8 },
new City { Name = "Shanghai", Population = 3 },
new City { Name = "Guadalajara", Population = 4 }
};

var columnSeries = new ColumnSeries<City>
new Fruit { Name = "Apple", SalesPerDay = 4, Stock = 6 },
new Fruit { Name = "Orange", SalesPerDay = 6, Stock = 4 },
new Fruit { Name = "Pinaple", SalesPerDay = 2, Stock = 2 },
new Fruit { Name = "Potoato", SalesPerDay = 8, Stock = 4 },
new Fruit { Name = "Lettuce", SalesPerDay = 3, Stock = 6 },
new Fruit { Name = "Cherry", SalesPerDay = 4, Stock = 8 }
};

var salesPerDaysSeries = new LineSeries<Fruit>
{
Name = "Items sold per day",
Values = data,
TooltipLabelFormatter = point => $"{point.Model.Name} {point.Model.Population} Million",
Mapping = (city, point) =>
TooltipLabelFormatter = point => $"{point.Model.Name}, sold {point.Model.SalesPerDay} items",
Mapping = (fruit, point) =>
{
point.PrimaryValue = city.Population; // use the population property in this series // mark
point.PrimaryValue = fruit.SalesPerDay; // use the SalesPerDay property in this series // mark
point.SecondaryValue = point.Context.Index;
}
};

columnSeries.DataPointerDown += ColumnSeries_DataPointerDown;

Series = new ISeries[]
var stockSeries = new StepLineSeries<Fruit>
{
columnSeries,
new LineSeries<int> { Values = new[] { 6, 7, 2, 9, 6, 2 } },
Name = "Active stock",
Values = data,
TooltipLabelFormatter = point => $"{point.Model.Stock} items remaining",
Mapping = (fruit, point) =>
{
point.PrimaryValue = fruit.Stock; // use the Stock property in this series // mark
point.SecondaryValue = point.Context.Index;
}
};

salesPerDaysSeries.ChartPointPointerDown += SalesPerDaysSeries_ChartPointPointerDown;
stockSeries.ChartPointPointerDown += StockSeries_ChartPointPointerDown;

Series = new ISeries[] { salesPerDaysSeries, stockSeries };
}

private void ColumnSeries_DataPointerDown(
private void SalesPerDaysSeries_ChartPointPointerDown(
IChartView chart,
IEnumerable<ChartPoint<City, RoundedRectangleGeometry, LabelGeometry>> points)
ChartPoint<Fruit, BezierPoint<CircleGeometry>, LabelGeometry> point)
{
// the event passes a collection of the points that were triggered by the pointer down event.
foreach (var point in points)
{
Trace.WriteLine($"[series.dataPointerDownEvent] clicked on {point.Model.Name}");
}
Trace.WriteLine(
$"[salesPerDay ChartPointPointerDown] clicked on {point.Model.Name}, {point.Model.SalesPerDay} items sold per day");
}


private void StockSeries_ChartPointPointerDown(
IChartView chart,
ChartPoint<Fruit, StepPoint<CircleGeometry>, LabelGeometry> point)
{
Trace.WriteLine(
$"[stock ChartPointPointerDown] clicked on {point.Model.Name}, current stock {point.Model.Stock}");
}

public IEnumerable<ISeries> Series { get; set; }
Expand Down
212 changes: 106 additions & 106 deletions samples/ViewModelsSamples/Index.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,112 +4,112 @@ public static class Index
{
public static string[] Samples =
{
"Design/LinearGradients",
"Design/RadialGradients",

"Lines/Basic",
"Lines/AutoUpdate",
"Lines/Straight",
"Lines/Properties",
"Lines/Area",
"Lines/Custom",
"Lines/Padding",
"Lines/XY",
"Lines/Zoom",

"StepLines/Basic",
"StepLines/AutoUpdate",
"StepLines/Properties",
"StepLines/Area",
"StepLines/Custom",
"StepLines/Zoom",

"StackedArea/Basic",
"StackedArea/StepArea",

"Bars/Basic",
"Bars/AutoUpdate",
"Bars/Custom",
"Bars/WithBackground",
"Bars/Spacing",
"Bars/DelayedAnimation",
"Bars/Race",
"Bars/RowsWithLabels",
"Bars/Layered",
"Bars/States",

"StackedBars/Basic",
"StackedBars/Groups",

"Pies/Basic",
"Pies/AutoUpdate",
"Pies/Processing",
"Pies/Doughnut",
"Pies/Pushout",
"Pies/Custom",
"Pies/NightingaleRose",
"Pies/Gauges",
//"Pies/Gauge",
"Pies/Gauge1",
"Pies/Gauge2",
"Pies/Gauge3",
"Pies/Gauge4",
"Pies/Gauge5",

"Scatter/Basic",
"Scatter/Bubbles",
"Scatter/AutoUpdate",
"Scatter/Custom",

"Financial/BasicCandlesticks",

"Heat/Basic",

"Polar/Basic",
"Polar/RadialArea",
"Polar/Coordinates",

"Axes/ColorsAndPosition",
"Axes/LabelsFormat",
"Axes/LabelsFormat2",
"Axes/NamedLabels",
"Axes/LabelsRotation",
"Axes/Multiple",
"Axes/Shared",
"Axes/DateTimeScaled",
"Axes/TimeSpanScaled",
"Axes/Logarithmic",
"Axes/Style",
"Axes/Paging",

"Events/AddPointOnClick",
//"Design/LinearGradients",
//"Design/RadialGradients",

//"Lines/Basic",
//"Lines/AutoUpdate",
//"Lines/Straight",
//"Lines/Properties",
//"Lines/Area",
//"Lines/Custom",
//"Lines/Padding",
//"Lines/XY",
//"Lines/Zoom",

//"StepLines/Basic",
//"StepLines/AutoUpdate",
//"StepLines/Properties",
//"StepLines/Area",
//"StepLines/Custom",
//"StepLines/Zoom",

//"StackedArea/Basic",
//"StackedArea/StepArea",

//"Bars/Basic",
//"Bars/AutoUpdate",
//"Bars/Custom",
//"Bars/WithBackground",
//"Bars/Spacing",
//"Bars/DelayedAnimation",
//"Bars/Race",
//"Bars/RowsWithLabels",
//"Bars/Layered",
//"Bars/States",

//"StackedBars/Basic",
//"StackedBars/Groups",

//"Pies/Basic",
//"Pies/AutoUpdate",
//"Pies/Processing",
//"Pies/Doughnut",
//"Pies/Pushout",
//"Pies/Custom",
//"Pies/NightingaleRose",
//"Pies/Gauges",
////"Pies/Gauge",
//"Pies/Gauge1",
//"Pies/Gauge2",
//"Pies/Gauge3",
//"Pies/Gauge4",
//"Pies/Gauge5",

//"Scatter/Basic",
//"Scatter/Bubbles",
//"Scatter/AutoUpdate",
//"Scatter/Custom",

//"Financial/BasicCandlesticks",

//"Heat/Basic",

//"Polar/Basic",
//"Polar/RadialArea",
//"Polar/Coordinates",

//"Axes/ColorsAndPosition",
//"Axes/LabelsFormat",
//"Axes/LabelsFormat2",
//"Axes/NamedLabels",
//"Axes/LabelsRotation",
//"Axes/Multiple",
//"Axes/Shared",
//"Axes/DateTimeScaled",
//"Axes/TimeSpanScaled",
//"Axes/Logarithmic",
//"Axes/Style",
//"Axes/Paging",

//"Events/AddPointOnClick",
"Events/Cartesian",
"Events/Pie",
"Events/Polar",

"General/Sections",
"General/Sections2",
"General/ChartToImage",
"General/Tooltips",
"General/Legends",
"General/Animations",
"General/Visibility",
"General/TemplatedTooltips",
"General/TemplatedLegends",
"General/UserDefinedTypes",
"General/NullPoints",
"General/MultiThreading",
"General/MultiThreading2",

"VisualTest/TwoChartsOneSeries",
"VisualTest/ReattachVisual",
"VisualTest/DataTemplate",
"VisualTest/Tabs",

"Test/ChangeSeriesInstance",
"Test/Dispose",
"Test/MotionCanvasDispose",

"Maps/World"
//"Events/Pie",
//"Events/Polar",

//"General/Sections",
//"General/Sections2",
//"General/ChartToImage",
//"General/Tooltips",
//"General/Legends",
//"General/Animations",
//"General/Visibility",
//"General/TemplatedTooltips",
//"General/TemplatedLegends",
//"General/UserDefinedTypes",
//"General/NullPoints",
//"General/MultiThreading",
//"General/MultiThreading2",

//"VisualTest/TwoChartsOneSeries",
//"VisualTest/ReattachVisual",
//"VisualTest/DataTemplate",
//"VisualTest/Tabs",

//"Test/ChangeSeriesInstance",
//"Test/Dispose",
//"Test/MotionCanvasDispose",

//"Maps/World"
};
}
2 changes: 1 addition & 1 deletion samples/WPFSample/Events/Cartesian/View.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ private void CartesianChart_DataPointerDown(IChartView chart, IEnumerable<ChartP

foreach (var point in points)
{
if (point.Context.DataSource is City city)
if (point.Context.DataSource is Fruit city)
{
Trace.WriteLine($"[chart.dataPointerDownEvent] clicked on {city.Name}");
continue;
Expand Down
2 changes: 1 addition & 1 deletion samples/WinFormsSample/Events/Cartesian/View.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ private void Chart_DataPointerDown(

foreach (var point in points)
{
if (point.Context.DataSource is City city)
if (point.Context.DataSource is Fruit city)
{
Trace.WriteLine($"[chart.dataPointerDownEvent] clicked on {city.Name}");
continue;
Expand Down
Loading

0 comments on commit ec36871

Please sign in to comment.