Example #1
0
        /// <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;
        }
Example #3
0
 /// <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);
         }
     }
 }
Example #4
0
        /// <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);
                }
            }
        }