aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml.cs
diff options
context:
space:
mode:
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.cs160
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());
- }
-
}
}