using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using Core.Common.Controls.Commands;
using Core.Common.Gui;
using Core.Components.Charting.Data;
using Core.Components.Charting.Styles;
using Demo.Ringtoets.Properties;
namespace Demo.Ringtoets.Commands
{
///
/// This class describes the command for opening a view for with some arbitrary data.
///
public class OpenChartViewCommand : ICommand
{
private readonly IDocumentViewController documentViewController;
///
/// Creates a new instance of .
///
/// The to use internally.
public OpenChartViewCommand(IDocumentViewController documentViewController)
{
this.documentViewController = documentViewController;
}
public bool Enabled
{
get
{
return true;
}
}
public bool Checked
{
get
{
return false;
}
}
public void Execute(params object[] arguments)
{
var line1 = new ChartLineData(new Collection>
{
Tuple.Create(0.0, 0.500),
Tuple.Create(0.1, 0.723),
Tuple.Create(0.2, 0.892),
Tuple.Create(0.3, 1.013),
Tuple.Create(0.4, 1.092),
Tuple.Create(0.5, 1.135),
Tuple.Create(0.6, 1.148),
Tuple.Create(0.7, 1.137),
Tuple.Create(0.8, 1.108),
Tuple.Create(0.9, 1.067),
Tuple.Create(1.0, 1.020),
Tuple.Create(1.1, 0.973),
Tuple.Create(1.2, 0.932),
Tuple.Create(1.3, 0.903),
Tuple.Create(1.4, 0.892),
Tuple.Create(1.5, 0.905),
Tuple.Create(1.6, 0.948),
Tuple.Create(1.7, 1.027),
Tuple.Create(1.8, 1.148),
Tuple.Create(1.9, 1.317),
Tuple.Create(2.0, 1.540),
Tuple.Create(2.1, 1.823)
}, Resources.OpenChartViewCommand_Execute_Line_one)
{
Style = new ChartLineStyle(Color.DarkRed, 3, DashStyle.Solid)
};
var line2 = new ChartLineData(new Collection>
{
Tuple.Create(0.0, 0.800),
Tuple.Create(0.1, 1.009),
Tuple.Create(0.2, 1.162),
Tuple.Create(0.3, 1.267),
Tuple.Create(0.4, 1.328),
Tuple.Create(0.5, 1.351),
Tuple.Create(0.6, 1.340),
Tuple.Create(0.7, 1.302),
Tuple.Create(0.8, 1.242),
Tuple.Create(0.9, 1.165),
Tuple.Create(1.0, 1.076),
Tuple.Create(1.1, 0.982),
Tuple.Create(1.2, 0.886),
Tuple.Create(1.3, 0.796),
Tuple.Create(1.4, 0.716),
Tuple.Create(1.5, 0.652),
Tuple.Create(1.6, 0.608),
Tuple.Create(1.7, 0.591),
Tuple.Create(1.8, 0.606),
Tuple.Create(1.9, 0.658),
Tuple.Create(2.0, 0.752),
Tuple.Create(2.1, 0.895)
}, Resources.OpenChartViewCommand_Execute_Line_two)
{
Style = new ChartLineStyle(Color.DarkSlateBlue, 2, DashStyle.DashDot)
};
var area1 = new ChartAreaData(new Collection>
{
Tuple.Create(0.0, 0.500),
Tuple.Create(0.1, 0.723),
Tuple.Create(0.2, 0.892),
Tuple.Create(0.3, 1.013),
Tuple.Create(0.4, 1.092),
Tuple.Create(0.5, 1.135),
Tuple.Create(0.6, 1.148),
Tuple.Create(0.7, 1.137),
Tuple.Create(0.8, 1.108),
Tuple.Create(0.9, 1.067),
Tuple.Create(1.0, 1.020),
Tuple.Create(1.1, 0.973),
Tuple.Create(1.2, 0.932),
Tuple.Create(1.3, 0.903),
Tuple.Create(1.4, 0.892),
Tuple.Create(1.5, 0.905),
Tuple.Create(1.5, 0.905 - 0.5),
Tuple.Create(1.4, 0.892 - 0.5),
Tuple.Create(1.3, 0.903 - 0.5),
Tuple.Create(1.2, 0.932 - 0.5),
Tuple.Create(1.1, 0.973 - 0.5),
Tuple.Create(1.0, 1.020 - 0.5),
Tuple.Create(0.9, 1.067 - 0.5),
Tuple.Create(0.8, 1.108 - 0.51),
Tuple.Create(0.7, 1.137 - 0.52),
Tuple.Create(0.6, 1.148 - 0.53),
Tuple.Create(0.5, 1.135 - 0.52),
Tuple.Create(0.4, 1.092 - 0.51),
Tuple.Create(0.3, 1.013 - 0.5),
Tuple.Create(0.2, 0.892 - 0.5),
Tuple.Create(0.1, 0.723 - 0.5),
Tuple.Create(0.0, 0.000),
Tuple.Create(0.0, 0.500)
}, Resources.OpenChartViewCommand_Execute_Area_one)
{
Style = new ChartAreaStyle(Color.DarkSeaGreen, Color.DarkGreen, 5)
};
var area2 = new ChartAreaData(new Collection>
{
Tuple.Create(0.1, 0.723 - 0.5),
Tuple.Create(0.2, 0.892 - 0.5),
Tuple.Create(0.3, 1.013 - 0.49),
Tuple.Create(0.4, 1.092 - 0.48),
Tuple.Create(0.5, 1.135 - 0.47),
Tuple.Create(0.6, 1.148 - 0.46),
Tuple.Create(0.7, 1.137 - 0.47),
Tuple.Create(0.8, 1.108 - 0.48),
Tuple.Create(0.9, 1.067 - 0.49),
Tuple.Create(1.0, 1.020 - 0.50),
Tuple.Create(1.1, 0.973 - 0.5),
Tuple.Create(1.2, 0.932 - 0.5),
Tuple.Create(1.3, 0.903 - 0.5),
Tuple.Create(1.4, 0.892 - 0.5),
Tuple.Create(1.5, 0.905 - 0.5),
Tuple.Create(1.5, 0.905),
Tuple.Create(1.6, 0.948),
Tuple.Create(1.7, 1.027),
Tuple.Create(1.8, 1.148),
Tuple.Create(1.8, 0.606),
Tuple.Create(1.9, 0.658),
Tuple.Create(2.0, 0.752),
Tuple.Create(2.0, 0.350),
Tuple.Create(1.5, 0.905 - 0.7),
Tuple.Create(1.4, 0.892 - 0.7),
Tuple.Create(1.3, 0.903 - 0.7),
Tuple.Create(1.2, 0.932 - 0.7),
Tuple.Create(1.1, 0.973 - 0.7),
Tuple.Create(1.0, 1.020 - 0.7),
Tuple.Create(0.9, 1.067 - 0.7),
Tuple.Create(0.8, 1.108 - 0.7),
Tuple.Create(0.7, 1.137 - 0.7),
Tuple.Create(0.6, 1.148 - 0.7),
Tuple.Create(0.5, 1.135 - 0.7),
Tuple.Create(0.4, 1.092 - 0.7),
Tuple.Create(0.3, 1.013 - 0.7),
Tuple.Create(0.2, 0.892 - 0.7),
Tuple.Create(0.1, 0.723 - 0.7),
Tuple.Create(0.1, 0.723 - 0.5)
}, Resources.OpenChartViewCommand_Execute_Area_two)
{
Style = new ChartAreaStyle(Color.FromArgb(120, Color.Wheat), Color.DarkOrange, 2)
};
var points1 = new ChartPointData(new Collection>
{
Tuple.Create(0.2, 0.892 + 0.04),
Tuple.Create(0.3, 1.013 + 0.02),
Tuple.Create(0.4, 1.092),
Tuple.Create(0.5, 1.135 - 0.02),
Tuple.Create(0.6, 1.148 + 0.01),
Tuple.Create(1.4, 0.892 - 0.02),
Tuple.Create(1.5, 0.905 + 0.01),
Tuple.Create(1.8, 1.148 + 0.02)
}, Resources.OpenChartViewCommand_Execute_Points_one)
{
Style = new ChartPointStyle(Color.Crimson, 6, Color.AntiqueWhite, 3, ChartPointSymbol.Circle)
};
var points2 = new ChartPointData(new Collection>
{
Tuple.Create(0.0, 0.800 + 0.01),
Tuple.Create(0.1, 1.009 + 0.02),
Tuple.Create(0.2, 1.162 + 0.03),
Tuple.Create(0.2, 1.162 + 0.05),
Tuple.Create(0.2, 1.162 - 0.03),
Tuple.Create(0.2, 1.162 - 0.01),
Tuple.Create(0.3, 1.267),
Tuple.Create(0.4, 1.328 - 0.01),
Tuple.Create(0.53, 1.351),
Tuple.Create(0.69, 1.340),
Tuple.Create(0.73, 1.302),
Tuple.Create(1.4, 0.716 - 0.02),
Tuple.Create(1.4, 0.716 + 0.02),
Tuple.Create(1.7, 0.591),
Tuple.Create(1.8, 0.606)
}, Resources.OpenChartViewCommand_Execute_Points_two)
{
Style = new ChartPointStyle(Color.FromArgb(190, Color.Gold), 7, Color.DeepSkyBlue, 2, ChartPointSymbol.Diamond)
};
documentViewController.DocumentViewsResolver.OpenViewForData(new ChartDataCollection(new List
{
area1, area2, line1, line2, points1, points2
}, Resources.OpenChartViewCommand_Execute_Graph_data));
}
}
}