diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml.cs | 160 |
1 files changed, 24 insertions, 136 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml.cs index 2341c21c1..f82196fed 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml.cs @@ -16,6 +16,8 @@ using System.Windows.Navigation; using System.Windows.Shapes; using RealTimeGraphEx; using RealTimeGraphEx.Controllers; +using RealTimeGraphX; +using RealTimeGraphX.WPF.DataSeries; namespace Tango.MachineStudio.Common.Controls { @@ -24,166 +26,52 @@ namespace Tango.MachineStudio.Common.Controls /// </summary> public partial class RealTimeGraphControl : UserControl, IRealTimeGraph { - private Grid headerGrid; - #region Properties - /// <summary> - /// Gets or sets the name of the sensor. - /// </summary> - public String SensorName - { - get { return (String)GetValue(SensorNameProperty); } - set { SetValue(SensorNameProperty, value); } - } - public static readonly DependencyProperty SensorNameProperty = - DependencyProperty.Register("SensorName", typeof(String), typeof(RealTimeGraphControl), new PropertyMetadata(null)); - - /// <summary> - /// Gets or sets the sensor units. - /// </summary> - public String SensorUnits - { - get { return (String)GetValue(SensorUnitsProperty); } - set { SetValue(SensorUnitsProperty, value); } - } - public static readonly DependencyProperty SensorUnitsProperty = - DependencyProperty.Register("SensorUnits", typeof(String), typeof(RealTimeGraphControl), new PropertyMetadata(null)); - - - - public double Minimum + public String DisplayName { - get { return (double)GetValue(MinimumProperty); } - set { SetValue(MinimumProperty, value); } + get { return (String)GetValue(DisplayNameProperty); } + set { SetValue(DisplayNameProperty, value); } } - public static readonly DependencyProperty MinimumProperty = - DependencyProperty.Register("Minimum", typeof(double), typeof(RealTimeGraphControl), new PropertyMetadata(0.0)); - + public static readonly DependencyProperty DisplayNameProperty = + DependencyProperty.Register("DisplayName", typeof(String), typeof(RealTimeGraphControl), new PropertyMetadata(null)); - - public double Maximum + public String DisplayUnits { - get { return (double)GetValue(MaximumProperty); } - set { SetValue(MaximumProperty, value); } + get { return (String)GetValue(DisplayUnitsProperty); } + set { SetValue(DisplayUnitsProperty, value); } } - public static readonly DependencyProperty MaximumProperty = - DependencyProperty.Register("Maximum", typeof(double), typeof(RealTimeGraphControl), new PropertyMetadata(100.0)); - - + public static readonly DependencyProperty DisplayUnitsProperty = + DependencyProperty.Register("DisplayUnits", typeof(String), typeof(RealTimeGraphControl), new PropertyMetadata(null)); - public Color Color + public String StringFormat { - get { return (Color)GetValue(ColorProperty); } - set { SetValue(ColorProperty, value); } + get { return (String)GetValue(StringFormatProperty); } + set { SetValue(StringFormatProperty, value); } } - public static readonly DependencyProperty ColorProperty = - DependencyProperty.Register("Color", typeof(Color), typeof(RealTimeGraphControl), new PropertyMetadata(Colors.DodgerBlue)); + public static readonly DependencyProperty StringFormatProperty = + DependencyProperty.Register("StringFormat", typeof(String), typeof(RealTimeGraphControl), new PropertyMetadata("0.0")); - public bool UseAutoRange + public IGraphController<WpfDataSeries> Controller { - get { return (bool)GetValue(UseAutoRangeProperty); } - set { SetValue(UseAutoRangeProperty, value); } + get { return (IGraphController<WpfDataSeries>)GetValue(ControllerProperty); } + set { SetValue(ControllerProperty, value); } } - public static readonly DependencyProperty UseAutoRangeProperty = - DependencyProperty.Register("UseAutoRange", typeof(bool), typeof(RealTimeGraphControl), new PropertyMetadata(false)); - - + public static readonly DependencyProperty ControllerProperty = + DependencyProperty.Register("Controller", typeof(IGraphController<WpfDataSeries>), typeof(RealTimeGraphControl), new PropertyMetadata(null,(d,e) => (d as RealTimeGraphControl).OnControllerChanged())); - public void InvalidateGraph() + private void OnControllerChanged() { - InnerGraph.Clear(); - yAxis.Render(InnerGraph); - yAxisTicks.Render(InnerGraph); + Controller.Output.Output.ConnectOutput(Graph); } - /// <summary> - /// Gets or sets the inner real-time graph control. - /// </summary> - public RealTimeGraphExBase InnerGraph { get; set; } - - /// <summary> - /// Gets or sets the inner graph controller. - /// </summary> - public GraphControllerBase Controller { get; set; } - - - private bool _enableToolbar; - /// <summary> - /// Gets or sets a value indicating whether to enable toolbar buttons. - /// </summary> - public bool EnableToolBar - { - get { return _enableToolbar; } - set - { - _enableToolbar = value; - - if (!value) - { - if (headerGrid != null) - { - ThicknessAnimation ani = new ThicknessAnimation(); - ani.To = new Thickness(0, -35, 0, 0); - ani.Duration = TimeSpan.FromSeconds(0.2); - headerGrid.BeginAnimation(Grid.MarginProperty, ani); - } - } - } - } - - - #endregion - - #region Events - - public event EventHandler GraphRemoveButtonPressed; - public event EventHandler GraphFullScreenButtonPressed; - #endregion public RealTimeGraphControl() { InitializeComponent(); - EnableToolBar = true; - InnerGraph = Graph; - Controller = new GraphController(); } - - private void OnGraphFullScreen(object sender, RoutedEventArgs e) - { - GraphFullScreenButtonPressed?.Invoke(this, new EventArgs()); - } - - private void Graph_MouseEnter(object sender, MouseEventArgs e) - { - if (EnableToolBar) - { - Grid mainGrid = sender as Grid; - headerGrid = mainGrid.Children.OfType<Grid>().ToList().First(); - ThicknessAnimation ani = new ThicknessAnimation(); - ani.To = new Thickness(0, 0, 0, 0); - ani.Duration = TimeSpan.FromSeconds(0.2); - headerGrid.BeginAnimation(Grid.MarginProperty, ani); - } - } - - private void Graph_MouseLeave(object sender, MouseEventArgs e) - { - Grid mainGrid = sender as Grid; - headerGrid = mainGrid.Children.OfType<Grid>().ToList().First(); - ThicknessAnimation ani = new ThicknessAnimation(); - ani.To = new Thickness(0, -35, 0, 0); - ani.Duration = TimeSpan.FromSeconds(0.2); - headerGrid.BeginAnimation(Grid.MarginProperty, ani); - } - - private void OnGraphRemove(object sender, RoutedEventArgs e) - { - GraphRemoveButtonPressed?.Invoke(this, new EventArgs()); - } - } } |
