-
Notifications
You must be signed in to change notification settings - Fork 62
Expand file tree
/
Copy pathSelected.razor
More file actions
82 lines (72 loc) · 2.17 KB
/
Selected.razor
File metadata and controls
82 lines (72 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
@using Plotly.Blazor.Interop
@using Plotly.Blazor.LayoutLib
@using Plotly.Blazor.Traces.ScatterLib
<PlotlyChart style="height: 60vh; min-height: 350px"
@bind-Config="config" @bind-Layout="layout" @bind-Data="data" @ref="chart"
SelectedAction="SelectedAction" AfterRender="SubscribeEvents"/>
@if (SelectedInfos != null && SelectedInfos.Any())
{
@foreach (var selected in SelectedInfos)
{
<MudText>(Trace: @(selected.TraceIndex), X: @(selected.X), Y: @(selected.Y))</MudText>
}
}
@code
{
[CascadingParameter]
private MudTheme Theme { get; set; }
private PlotlyChart chart;
private Config config;
private Layout layout;
private IList<ITrace> data;
private IEnumerable<EventDataPoint> SelectedInfos { get; set; }
/// <inheritdoc />
protected override void OnInitialized()
{
config = new Config
{
Responsive = true
};
layout = new Layout
{
Title = new Title
{
Text = GetType().Name
},
PaperBgColor = Theme.PaletteDark.Surface.ToString(),
PlotBgColor = Theme.PaletteDark.Surface.ToString(),
Font = new Font
{
Color = Theme.PaletteDark.TextPrimary.ToString()
},
HoverMode = HoverModeEnum.XUnified
};
data = new List<ITrace>
{
new Scatter
{
Name = "ScatterTrace",
Mode = ModeFlag.Markers,
X = Enumerable.Range(0, 30).Cast<object>().ToList(),
Y = Helper.GenerateData(0, 30).Y
},
new Scatter
{
Name = "ScatterTrace 2",
Mode = ModeFlag.Markers,
X = Enumerable.Range(0, 30).Cast<object>().ToList(),
Y = Helper.GenerateData(0, 30).Y
}
};
base.OnInitialized();
}
public void SelectedAction(IEnumerable<EventDataPoint> eventData)
{
SelectedInfos = eventData;
StateHasChanged();
}
public async void SubscribeEvents()
{
await chart.SubscribeSelectedEvent();
}
}