From 79eb19cbd10785a7dbc972bc0b26817932237419 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Wed, 10 Oct 2018 16:55:44 +0300 Subject: Sign-out works ! Fixed issue where color conversion was busy while not in research module but research module in job view. Added new RealTimeGraphX ! --- .../Controls/IRealTimeGraph.cs | 28 +--- .../Controls/RealTimeGraphControl.xaml | 105 +++++-------- .../Controls/RealTimeGraphControl.xaml.cs | 160 +++---------------- .../Controls/RealTimeGraphMultiControl.xaml | 91 ----------- .../Controls/RealTimeGraphMultiControl.xaml.cs | 174 --------------------- 5 files changed, 71 insertions(+), 487 deletions(-) delete mode 100644 Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml delete mode 100644 Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml.cs (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls') diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/IRealTimeGraph.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/IRealTimeGraph.cs index bf40d459e..dcf2cdf81 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/IRealTimeGraph.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/IRealTimeGraph.cs @@ -1,5 +1,7 @@ using RealTimeGraphEx; using RealTimeGraphEx.Controllers; +using RealTimeGraphX; +using RealTimeGraphX.WPF.DataSeries; using System; using System.Collections.Generic; using System.Linq; @@ -13,7 +15,7 @@ namespace Tango.MachineStudio.Common.Controls /// /// Gets or sets the name of the sensor. /// - String SensorName { get; set; } + String DisplayName { get; set; } /// /// Gets or sets the tag. @@ -23,31 +25,11 @@ namespace Tango.MachineStudio.Common.Controls /// /// Gets or sets the sensor units. /// - String SensorUnits { get; set; } - - /// - /// Occurs when the graph remove button has been pressed. - /// - event EventHandler GraphRemoveButtonPressed; - - /// - /// Occurs when the graph full screen button has been pressed. - /// - event EventHandler GraphFullScreenButtonPressed; - - /// - /// Gets or sets the inner real-time graph control. - /// - RealTimeGraphExBase InnerGraph { get; set; } + String DisplayUnits { get; set; } /// /// Gets or sets the inner graph controller. /// - GraphControllerBase Controller { get; set; } - - /// - /// Gets or sets a value indicating whether to enable toolbar buttons. - /// - bool EnableToolBar { get; set; } + IGraphController Controller { get; set; } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml index bf2e41afa..b5e809a3e 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml @@ -5,6 +5,8 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:graphEx="clr-namespace:RealTimeGraphEx.FastGraphs;assembly=RealTimeGraphEx" + xmlns:graphX="clr-namespace:RealTimeGraphX.WPF.Surfaces;assembly=RealTimeGraphX.WPF" + xmlns:componentsX="clr-namespace:RealTimeGraphX.WPF.Components;assembly=RealTimeGraphX.WPF" xmlns:components="clr-namespace:RealTimeGraphEx.Components;assembly=RealTimeGraphEx" xmlns:converters="clr-namespace:Tango.MachineStudio.Common.Converters" xmlns:local="clr-namespace:Tango.MachineStudio.Common.Controls" @@ -14,73 +16,50 @@ - - - - - - - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + 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 /// public partial class RealTimeGraphControl : UserControl, IRealTimeGraph { - private Grid headerGrid; - #region Properties - /// - /// Gets or sets the name of the sensor. - /// - 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)); - - /// - /// Gets or sets the sensor units. - /// - 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 Controller { - get { return (bool)GetValue(UseAutoRangeProperty); } - set { SetValue(UseAutoRangeProperty, value); } + get { return (IGraphController)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), 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); } - /// - /// Gets or sets the inner real-time graph control. - /// - public RealTimeGraphExBase InnerGraph { get; set; } - - /// - /// Gets or sets the inner graph controller. - /// - public GraphControllerBase Controller { get; set; } - - - private bool _enableToolbar; - /// - /// Gets or sets a value indicating whether to enable toolbar buttons. - /// - 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().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().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()); - } - } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml deleted file mode 100644 index 4976739e4..000000000 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml.cs deleted file mode 100644 index 21054d94e..000000000 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml.cs +++ /dev/null @@ -1,174 +0,0 @@ -using RealTimeGraphEx; -using RealTimeGraphEx.Controllers; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Animation; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; - -namespace Tango.MachineStudio.Common.Controls -{ - /// - /// Interaction logic for RealTimeGraphControl.xaml - /// - public partial class RealTimeGraphMultiControl : UserControl , IRealTimeGraph - { - private Grid headerGrid; - - #region Properties - - /// - /// Gets or sets the name of the sensor. - /// - public String SensorName - { - get { return (String)GetValue(SensorNameProperty); } - set { SetValue(SensorNameProperty, value); } - } - public static readonly DependencyProperty SensorNameProperty = - DependencyProperty.Register("SensorName", typeof(String), typeof(RealTimeGraphMultiControl), new PropertyMetadata(null)); - - /// - /// Gets or sets the sensor units. - /// - public String SensorUnits - { - get { return (String)GetValue(SensorUnitsProperty); } - set { SetValue(SensorUnitsProperty, value); } - } - public static readonly DependencyProperty SensorUnitsProperty = - DependencyProperty.Register("SensorUnits", typeof(String), typeof(RealTimeGraphMultiControl), new PropertyMetadata(null)); - - public double Minimum - { - get { return (double)GetValue(MinimumProperty); } - set { SetValue(MinimumProperty, value); } - } - public static readonly DependencyProperty MinimumProperty = - DependencyProperty.Register("Minimum", typeof(double), typeof(RealTimeGraphMultiControl), new PropertyMetadata(0.0)); - - - - public double Maximum - { - get { return (double)GetValue(MaximumProperty); } - set { SetValue(MaximumProperty, value); } - } - public static readonly DependencyProperty MaximumProperty = - DependencyProperty.Register("Maximum", typeof(double), typeof(RealTimeGraphMultiControl), new PropertyMetadata(100.0)); - - - - public bool UseAutoRange - { - get { return (bool)GetValue(UseAutoRangeProperty); } - set { SetValue(UseAutoRangeProperty, value); } - } - public static readonly DependencyProperty UseAutoRangeProperty = - DependencyProperty.Register("UseAutoRange", typeof(bool), typeof(RealTimeGraphMultiControl), new PropertyMetadata(false)); - - - - public void InvalidateGraph() - { - InnerGraph.Clear(); - yAxis.Render(InnerGraph); - yAxisTicks.Render(InnerGraph); - } - - /// - /// Gets or sets the inner real-time graph control. - /// - public RealTimeGraphExBase InnerGraph { get; set; } - - /// - /// Gets or sets the inner graph controller. - /// - public GraphControllerBase Controller { get; set; } - - private bool _enableToolbar; - /// - /// Gets or sets a value indicating whether to enable toolbar buttons. - /// - 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 RealTimeGraphMultiControl() - { - InitializeComponent(); - EnableToolBar = true; - InnerGraph = Graph; - Controller = new GraphMultiController(); - } - - 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().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().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()); - } - } -} -- cgit v1.3.1