|
|
@@ -31,11 +31,31 @@ namespace Shadowsocks.View |
|
|
|
_pingSeries = StatisticsChart.Series["Ping"]; |
|
|
|
_controller = controller; |
|
|
|
_controller.ConfigChanged += (sender, args) => LoadConfiguration(); |
|
|
|
UpdateTexts(); |
|
|
|
LoadConfiguration(); |
|
|
|
Load += (sender, args) => InitData(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
private void UpdateTexts() |
|
|
|
{ |
|
|
|
Control[] controls = new Control[] |
|
|
|
{ |
|
|
|
StatisticsEnabledCheckBox,PingCheckBox,label6, |
|
|
|
byHourOfDayCheckBox,label9,label8,label2,label3, |
|
|
|
label1,chartModeSelector,dayMode,allMode, |
|
|
|
OKButton,CancelButton |
|
|
|
}; |
|
|
|
foreach (var item in controls) |
|
|
|
{ |
|
|
|
item.Text = I18N.GetString(item.Text); |
|
|
|
} |
|
|
|
|
|
|
|
foreach (var item in StatisticsChart.Series) |
|
|
|
{ |
|
|
|
item.Name = I18N.GetString(item.Name); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
private void LoadConfiguration() |
|
|
|
{ |
|
|
|
var configs = _controller.GetCurrentConfiguration().configs; |
|
|
@@ -60,13 +80,13 @@ namespace Shadowsocks.View |
|
|
|
serverSelector.DataSource = _servers; |
|
|
|
|
|
|
|
_dataTable.Columns.Add("Timestamp", typeof(DateTime)); |
|
|
|
_dataTable.Columns.Add("Speed", typeof (int)); |
|
|
|
_dataTable.Columns.Add("Speed", typeof(int)); |
|
|
|
_speedSeries.XValueMember = "Timestamp"; |
|
|
|
_speedSeries.YValueMembers = "Speed"; |
|
|
|
|
|
|
|
// might be empty |
|
|
|
_dataTable.Columns.Add("Package Loss", typeof (int)); |
|
|
|
_dataTable.Columns.Add("Ping", typeof (int)); |
|
|
|
_dataTable.Columns.Add("Package Loss", typeof(int)); |
|
|
|
_dataTable.Columns.Add("Ping", typeof(int)); |
|
|
|
_packageLossSeries.XValueMember = "Timestamp"; |
|
|
|
_packageLossSeries.YValueMembers = "Package Loss"; |
|
|
|
_pingSeries.XValueMember = "Timestamp"; |
|
|
@@ -127,8 +147,8 @@ namespace Shadowsocks.View |
|
|
|
{ |
|
|
|
dataGroup.First().Timestamp, |
|
|
|
Speed = dataGroup.Max(data => data.MaxInboundSpeed) ?? 0, |
|
|
|
Ping = (int) (dataGroup.Average(data => data.AverageResponse) ?? 0), |
|
|
|
PackageLossPercentage = (int) (dataGroup.Average(data => data.PackageLoss) ?? 0) * 100 |
|
|
|
Ping = (int)(dataGroup.Average(data => data.AverageResponse) ?? 0), |
|
|
|
PackageLossPercentage = (int)(dataGroup.Average(data => data.PackageLoss) ?? 0) * 100 |
|
|
|
}; |
|
|
|
foreach (var data in finalData.Where(data => data.Speed != 0 || data.PackageLossPercentage != 0 || data.Ping != 0)) |
|
|
|
{ |
|
|
|