init chart
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Forms.DataVisualization.Charting;
|
||||
using Shadowsocks.Controller;
|
||||
using Shadowsocks.Model;
|
||||
using SimpleJson;
|
||||
@@ -11,6 +14,8 @@ namespace Shadowsocks.View
|
||||
{
|
||||
private readonly ShadowsocksController _controller;
|
||||
private StatisticsStrategyConfiguration _configuration;
|
||||
private DataTable _dataTable = new DataTable();
|
||||
private List<string> _servers;
|
||||
|
||||
public StatisticsStrategyConfigurationForm(ShadowsocksController controller)
|
||||
{
|
||||
@@ -24,6 +29,8 @@ namespace Shadowsocks.View
|
||||
|
||||
private void LoadConfiguration()
|
||||
{
|
||||
var configs = _controller.GetCurrentConfiguration().configs;
|
||||
_servers = configs.Select(server => server.FriendlyName()).ToList();
|
||||
_configuration = _controller.StatisticsConfiguration
|
||||
?? new StatisticsStrategyConfiguration();
|
||||
if (_configuration.Calculations == null)
|
||||
@@ -40,8 +47,23 @@ namespace Shadowsocks.View
|
||||
var calculation = new CalculationControl(kv.Key, kv.Value);
|
||||
calculationContainer.Controls.Add(calculation);
|
||||
}
|
||||
|
||||
serverSelector.DataSource = _servers;
|
||||
|
||||
_dataTable.Columns.Add("Timestamp", typeof (DateTime));
|
||||
_dataTable.Columns.Add("Package Loss", typeof (int));
|
||||
_dataTable.Columns.Add("Ping", typeof (int));
|
||||
|
||||
StatisticsChart.Series["Package Loss"].XValueMember = "Timestamp";
|
||||
StatisticsChart.Series["Package Loss"].YValueMembers = "PackageLoss";
|
||||
StatisticsChart.Series["Ping"].XValueMember = "Timestamp";
|
||||
StatisticsChart.Series["Ping"].YValueMembers = "Ping";
|
||||
StatisticsChart.DataSource = _dataTable;
|
||||
loadChartData(serverSelector.SelectedText);
|
||||
StatisticsChart.DataBind();
|
||||
}
|
||||
|
||||
|
||||
private void CancelButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Close();
|
||||
@@ -57,5 +79,21 @@ namespace Shadowsocks.View
|
||||
_controller?.UpdateStatisticsConfiguration(StatisticsEnabledCheckBox.Checked);
|
||||
Close();
|
||||
}
|
||||
|
||||
private void loadChartData(string serverName)
|
||||
{
|
||||
_dataTable.Rows.Clear();
|
||||
List<AvailabilityStatistics.RawStatisticsData> statistics;
|
||||
if (!_controller.availabilityStatistics.FilteredStatistics.TryGetValue(serverName, out statistics)) return;
|
||||
foreach (var data in statistics)
|
||||
{
|
||||
_dataTable.Rows.Add(data.Timestamp, (float) new Random().Next() % 50, new Random().Next() % 200);
|
||||
}
|
||||
}
|
||||
|
||||
private void serverSelector_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
loadChartData(_servers[serverSelector.SelectedIndex]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user