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)));
}
}
}