/// <summary> /// Initializes a new instance of the BarSeries class. /// </summary> public BarSeries() { SetBinding(DefinitionSeries.DependentAxisProperty, new Binding("DependentRangeAxis") { Source = this }); SetBinding(DefinitionSeries.SelectionModeProperty, new Binding("IsSelectionEnabled") { Source = this, Converter = new WinRTXamlToolkit.Controls.DataVisualization.Charting.Compatible.SelectionEnabledToSelectionModeConverter() }); _definition = new SeriesDefinition(); _definition.SetBinding(SeriesDefinition.ItemsSourceProperty, new Binding("ItemsSource") { Source = this }); _definition.SetBinding(SeriesDefinition.TitleProperty, new Binding("Title") { Source = this }); _definition.SetBinding(SeriesDefinition.DataPointStyleProperty, new Binding(DataPointStyleName) { Source = this }); _definition.SetBinding(SeriesDefinition.LegendItemStyleProperty, new Binding(LegendItemStyleName) { Source = this }); _definition.SetBinding(SeriesDefinition.TransitionDurationProperty, new Binding("TransitionDuration") { Source = this }); #if !NO_EASING_FUNCTIONS _definition.SetBinding(SeriesDefinition.TransitionEasingFunctionProperty, new Binding("TransitionEasingFunction") { Source = this }); #endif // For compatibility DependentValueBinding = new Binding(); IndependentValueBinding = new Binding(); SeriesDefinitions.Add(_definition); }
private static Channel ParseSeries(SeriesDefinition seriesDefinition) { Channel channel = new Channel(); Series series = new Series(); ChannelDefinition channelDefinition = seriesDefinition.ChannelDefinition; QuantityMeasured quantityMeasured = channelDefinition.QuantityMeasured; Phase phase = channelDefinition.Phase; // Populate channel properties channel.Name = channelDefinition.ChannelName; channel.HarmonicGroup = 0; channel.MeasurementType = new MeasurementType(); channel.MeasurementCharacteristic = new MeasurementCharacteristic(); channel.Phase = new Database.Phase(); if (seriesDefinition.HasElement(SeriesDefinition.SeriesNominalQuantityTag)) channel.PerUnitValue = seriesDefinition.SeriesNominalQuantity; // Populate series properties series.SeriesType = new SeriesType(); series.Channel = channel; series.SourceIndexes = string.Empty; // Populate measurement type properties channel.MeasurementType.Name = quantityMeasured.ToString(); // Populate characteristic properties channel.MeasurementCharacteristic.Name = QuantityCharacteristic.ToName(seriesDefinition.QuantityCharacteristicID) ?? seriesDefinition.QuantityCharacteristicID.ToString(); channel.MeasurementCharacteristic.Description = QuantityCharacteristic.ToString(seriesDefinition.QuantityCharacteristicID); // Popuplate phase properties channel.Phase.Name = phase.ToString(); // Populate series type properties series.SeriesType.Name = SeriesValueType.ToString(seriesDefinition.ValueTypeID) ?? seriesDefinition.ValueTypeName ?? seriesDefinition.ValueTypeID.ToString(); series.SeriesType.Description = seriesDefinition.ValueTypeName; return channel; }
/// <summary>Draws the specified series definition on the view.</summary> /// <param name="definition">The definition.</param> private void DrawOnView(SeriesDefinition definition) { if (graph.DisabledSeries == null || !graph.DisabledSeries.Contains(definition.Title)) { try { Color colour = definition.Colour; // If dark theme is active, and colour is black, use white instead. // This won't help at all if the colour is a dark grey. if (Utility.Configuration.Settings.DarkTheme && colour.R == 0 && colour.G == 0 && colour.B == 0) { colour = Color.White; } // Create the series and populate it with data. if (definition.Type == SeriesType.Bar) { graphView.DrawBar( definition.Title, definition.X, definition.Y, definition.XAxis, definition.YAxis, colour, definition.ShowInLegend); } else if (definition.Type == SeriesType.Scatter) { graphView.DrawLineAndMarkers( definition.Title, definition.X, definition.Y, definition.XFieldName, definition.YFieldName, definition.Error, definition.XAxis, definition.YAxis, colour, definition.Line, definition.Marker, definition.LineThickness, definition.MarkerSize, definition.ShowInLegend); } else if (definition.Type == SeriesType.Region) { graphView.DrawRegion( definition.Title, definition.X, definition.Y, definition.X2, definition.Y2, definition.XAxis, definition.YAxis, colour, definition.ShowInLegend); } else if (definition.Type == SeriesType.Area) { graphView.DrawArea( definition.Title, definition.X, definition.Y, definition.XAxis, definition.YAxis, colour, definition.ShowInLegend); } else if (definition.Type == SeriesType.StackedArea) { graphView.DrawStackedArea( definition.Title, definition.X.Cast <object>().ToArray(), definition.Y.Cast <double>().ToArray(), definition.XAxis, definition.YAxis, colour, definition.ShowInLegend); } } catch (Exception err) { explorerPresenter.MainPresenter.ShowError(err); } } }
/// <summary>Draws the specified series definition on the view.</summary> /// <param name="definition">The definition.</param> private void DrawOnView(SeriesDefinition definition) { if (graph.DisabledSeries == null || !graph.DisabledSeries.Contains(definition.Title)) { try { Color colour = GetColour(definition.Colour); // Create the series and populate it with data. if (definition.Type == SeriesType.Bar) { graphView.DrawBar( definition.Title, definition.X, definition.Y, definition.XAxis, definition.YAxis, colour, definition.ShowInLegend); } else if (definition.Type == SeriesType.Scatter) { graphView.DrawLineAndMarkers( definition.Title, definition.X, definition.Y, definition.XFieldName, definition.YFieldName, definition.XError, definition.YError, definition.XAxis, definition.YAxis, colour, definition.Line, definition.Marker, definition.LineThickness, definition.MarkerSize, definition.MarkerModifier, definition.ShowInLegend); } else if (definition.Type == SeriesType.Region) { graphView.DrawRegion( definition.Title, definition.X, definition.Y, definition.X2, definition.Y2, definition.XAxis, definition.YAxis, colour, definition.ShowInLegend); } else if (definition.Type == SeriesType.Area) { graphView.DrawArea( definition.Title, definition.X, definition.Y, definition.XAxis, definition.YAxis, colour, definition.ShowInLegend); } else if (definition.Type == SeriesType.StackedArea) { graphView.DrawStackedArea( definition.Title, definition.X.Cast <object>().ToArray(), definition.Y.Cast <double>().ToArray(), definition.XAxis, definition.YAxis, colour, definition.ShowInLegend); } else if (definition.Type == SeriesType.Box) { graphView.DrawBoxPLot(definition.Title, definition.X.Cast <object>().ToArray(), definition.Y.Cast <double>().ToArray(), definition.XAxis, definition.YAxis, definition.Colour, definition.ShowInLegend, definition.Line, definition.Marker, definition.LineThickness); } } catch (Exception err) { throw new Exception($"Unable to draw graph {graph.FullPath}", err); } } }