using RealTimeGraphX; using System; using System.Windows; using System.Windows.Controls; using System.Windows.Media; namespace Tango.FSE.Common.Graphs { public class RealTimeGraph : Control { /// /// Gets or sets the graph controller. /// public IGraphController Controller { get { return (IGraphController)GetValue(ControllerProperty); } set { SetValue(ControllerProperty, value); } } public static readonly DependencyProperty ControllerProperty = DependencyProperty.Register("Controller", typeof(IGraphController), typeof(RealTimeGraph), new PropertyMetadata(null)); /// /// Gets or sets the string format of the y-axis. /// public String StringFormat { get { return (String)GetValue(StringFormatProperty); } set { SetValue(StringFormatProperty, value); } } public static readonly DependencyProperty StringFormatProperty = DependencyProperty.Register("StringFormat", typeof(String), typeof(RealTimeGraph), new PropertyMetadata("0.0")); /// /// Gets or sets the display name. /// public String DisplayName { get { return (String)GetValue(DisplayNameProperty); } set { SetValue(DisplayNameProperty, value); } } public static readonly DependencyProperty DisplayNameProperty = DependencyProperty.Register("DisplayName", typeof(String), typeof(RealTimeGraph), new PropertyMetadata(null)); /// /// Gets or sets the display units. /// public String DisplayUnits { get { return (String)GetValue(DisplayUnitsProperty); } set { SetValue(DisplayUnitsProperty, value); } } public static readonly DependencyProperty DisplayUnitsProperty = DependencyProperty.Register("DisplayUnits", typeof(String), typeof(RealTimeGraph), new PropertyMetadata(null)); /// /// Gets or sets the graph label visibility. /// public Visibility GraphLabelVisibility { get { return (Visibility)GetValue(GraphLabelVisibilityProperty); } set { SetValue(GraphLabelVisibilityProperty, value); } } public static readonly DependencyProperty GraphLabelVisibilityProperty = DependencyProperty.Register("GraphLabelVisibility", typeof(Visibility), typeof(RealTimeGraph), new PropertyMetadata(Visibility.Visible)); /// /// Gets or sets the vertical ticks. /// public int VerticalTicks { get { return (int)GetValue(VerticalTicksProperty); } set { SetValue(VerticalTicksProperty, value); } } public static readonly DependencyProperty VerticalTicksProperty = DependencyProperty.Register("VerticalTicks", typeof(int), typeof(RealTimeGraph), new PropertyMetadata(10)); /// /// Gets or sets the horizontal ticks. /// public int HorizontalTicks { get { return (int)GetValue(HorizontalTicksProperty); } set { SetValue(HorizontalTicksProperty, value); } } public static readonly DependencyProperty HorizontalTicksProperty = DependencyProperty.Register("HorizontalTicks", typeof(int), typeof(RealTimeGraph), new PropertyMetadata(10)); public Brush GridLinesBrush { get { return (Brush)GetValue(GridLinesBrushProperty); } set { SetValue(GridLinesBrushProperty, value); } } public static readonly DependencyProperty GridLinesBrushProperty = DependencyProperty.Register("GridLinesBrush", typeof(Brush), typeof(RealTimeGraph), new PropertyMetadata(null)); public Visibility HorizontalAxisVisibility { get { return (Visibility)GetValue(HorizontalAxisVisibilityProperty); } set { SetValue(HorizontalAxisVisibilityProperty, value); } } public static readonly DependencyProperty HorizontalAxisVisibilityProperty = DependencyProperty.Register("HorizontalAxisVisibility", typeof(Visibility), typeof(RealTimeGraph), new PropertyMetadata(Visibility.Visible)); public Visibility VerticalAxisVisibility { get { return (Visibility)GetValue(VerticalAxisVisibilityProperty); } set { SetValue(VerticalAxisVisibilityProperty, value); } } public static readonly DependencyProperty VerticalAxisVisibilityProperty = DependencyProperty.Register("VerticalAxisVisibility", typeof(Visibility), typeof(RealTimeGraph), new PropertyMetadata(Visibility.Visible)); public Visibility CurrentValueVisibility { get { return (Visibility)GetValue(CurrentValueVisibilityProperty); } set { SetValue(CurrentValueVisibilityProperty, value); } } public static readonly DependencyProperty CurrentValueVisibilityProperty = DependencyProperty.Register("CurrentValueVisibility", typeof(Visibility), typeof(RealTimeGraph), new PropertyMetadata(Visibility.Collapsed)); public double CurrentValueFontSize { get { return (double)GetValue(CurrentValueFontSizeProperty); } set { SetValue(CurrentValueFontSizeProperty, value); } } public static readonly DependencyProperty CurrentValueFontSizeProperty = DependencyProperty.Register("CurrentValueFontSize", typeof(double), typeof(RealTimeGraph), new PropertyMetadata(25.0)); public Thickness CurrentValueMargin { get { return (Thickness)GetValue(CurrentValueMarginProperty); } set { SetValue(CurrentValueMarginProperty, value); } } public static readonly DependencyProperty CurrentValueMarginProperty = DependencyProperty.Register("CurrentValueMargin", typeof(Thickness), typeof(RealTimeGraph), new PropertyMetadata(new Thickness(20))); /// /// Initializes the class. /// static RealTimeGraph() { DefaultStyleKeyProperty.OverrideMetadata(typeof(RealTimeGraph), new FrameworkPropertyMetadata(typeof(RealTimeGraph))); } } }