Beispiel #1
0
        private void SetEarnedValueChartPlotModel()
        {
            lock (m_Lock)
            {
                IList <EarnedValuePoint> pointSet = m_EarnedValueChartPointSet;
                PlotModel plotModel = null;
                if (pointSet != null &&
                    pointSet.Any())
                {
                    plotModel = new PlotModel();
                    plotModel.Axes.Add(BuildEarnedValueChartXAxis());
                    plotModel.Axes.Add(BuildEarnedValueChartYAxis());
                    plotModel.LegendPlacement = LegendPlacement.Outside;
                    plotModel.LegendPosition  = LegendPosition.RightMiddle;

                    var lineSeries = new LineSeries();
                    m_DateTimeCalculator.UseBusinessDays(UseBusinessDays);

                    foreach (EarnedValuePoint point in pointSet)
                    {
                        lineSeries.Points.Add(
                            new DataPoint(ChartHelper.CalculateChartTimeXValue(point.Time, ShowDates, ProjectStart, m_DateTimeCalculator),
                                          point.EarnedValuePercentage));
                    }
                    plotModel.Series.Add(lineSeries);
                }
                EarnedValueChartPlotModel = plotModel;
            }
            RaiseCanExecuteChangedAllCommands();
        }
Beispiel #2
0
        private Axis BuildEarnedValueChartXAxis()
        {
            lock (m_Lock)
            {
                IEnumerable <IDependentActivity <int, int> > dependentActivities = GraphCompilation?.DependentActivities;
                Axis axis = null;
                if (dependentActivities != null &&
                    dependentActivities.Any())
                {
                    int finishTime = dependentActivities.Max(x => x.EarliestFinishTime.GetValueOrDefault());
                    m_DateTimeCalculator.UseBusinessDays(UseBusinessDays);
                    double minValue = ChartHelper.CalculateChartTimeXValue(0, ShowDates, ProjectStart, m_DateTimeCalculator);
                    double maxValue = ChartHelper.CalculateChartTimeXValue(finishTime, ShowDates, ProjectStart, m_DateTimeCalculator);

                    if (ShowDates)
                    {
                        axis = new DateTimeAxis
                        {
                            Position     = AxisPosition.Bottom,
                            Minimum      = minValue,
                            Maximum      = maxValue,
                            Title        = Resource.ProjectPlan.Resources.Label_TimeAxisTitle,
                            StringFormat = "d"
                        };
                    }
                    else
                    {
                        axis = new LinearAxis
                        {
                            Position = AxisPosition.Bottom,
                            Minimum  = minValue,
                            Maximum  = maxValue,
                            Title    = Resource.ProjectPlan.Resources.Label_TimeAxisTitle
                        };
                    }
                }
                else
                {
                    axis = new LinearAxis();
                }
                return(axis);
            }
        }
Beispiel #3
0
        private Axis BuildResourceChartXAxis()
        {
            lock (m_Lock)
            {
                IEnumerable <IResourceSchedule <int, int> > resourceSchedules = GraphCompilation?.ResourceSchedules;
                Axis axis = null;
                if (resourceSchedules != null &&
                    resourceSchedules.Any())
                {
                    int finishTime = resourceSchedules.Max(x => x.FinishTime);
                    m_DateTimeCalculator.UseBusinessDays(UseBusinessDays);
                    double minValue = ChartHelper.CalculateChartTimeXValue(0, ShowDates, ProjectStart, m_DateTimeCalculator);
                    double maxValue = ChartHelper.CalculateChartTimeXValue(finishTime, ShowDates, ProjectStart, m_DateTimeCalculator);

                    if (ShowDates)
                    {
                        axis = new DateTimeAxis
                        {
                            Position     = AxisPosition.Bottom,
                            Minimum      = minValue,
                            Maximum      = maxValue,
                            Title        = Resource.ProjectPlan.Properties.Resources.Label_TimeAxisTitle,
                            StringFormat = "d"
                        };
                    }
                    else
                    {
                        axis = new LinearAxis
                        {
                            Position = AxisPosition.Bottom,
                            Minimum  = minValue,
                            Maximum  = maxValue,
                            Title    = Resource.ProjectPlan.Properties.Resources.Label_TimeAxisTitle
                        };
                    }
                }
                else
                {
                    axis = new LinearAxis();
                }
                return(axis);
            }
        }
Beispiel #4
0
        private void CalculateResourceChartPlotModel()
        {
            lock (m_Lock)
            {
                ResourceSeriesSetModel resourceSeriesSet = ResourceSeriesSet;
                PlotModel plotModel = null;

                if (resourceSeriesSet != null)
                {
                    IEnumerable <ResourceSeriesModel> combinedResourceSeries = resourceSeriesSet.Combined.OrderBy(x => x.DisplayOrder);

                    if (combinedResourceSeries.Any())
                    {
                        plotModel = new PlotModel();
                        plotModel.Axes.Add(BuildResourceChartXAxis());
                        plotModel.Axes.Add(BuildResourceChartYAxis());
                        plotModel.LegendPlacement = LegendPlacement.Outside;
                        plotModel.LegendPosition  = LegendPosition.RightMiddle;

                        var total = new List <int>();
                        m_DateTimeCalculator.UseBusinessDays(UseBusinessDays);

                        foreach (ResourceSeriesModel series in combinedResourceSeries)
                        {
                            if (series != null)
                            {
                                var areaSeries = new AreaSeries
                                {
                                    //Smooth = false,
                                    StrokeThickness = 0.0,
                                    Title           = series.Title,
                                    Color           = OxyColor.FromArgb(
                                        series.ColorFormat.A,
                                        series.ColorFormat.R,
                                        series.ColorFormat.G,
                                        series.ColorFormat.B)
                                };
                                for (int i = 0; i < series.Values.Count; i++)
                                {
                                    int j = series.Values[i];
                                    if (i >= total.Count)
                                    {
                                        total.Add(0);
                                    }
                                    areaSeries.Points.Add(
                                        new DataPoint(ChartHelper.CalculateChartTimeXValue(i, ShowDates, ProjectStart, m_DateTimeCalculator),
                                                      total[i]));
                                    total[i] += j;
                                    areaSeries.Points2.Add(
                                        new DataPoint(ChartHelper.CalculateChartTimeXValue(i, ShowDates, ProjectStart, m_DateTimeCalculator),
                                                      total[i]));
                                }
                                plotModel.Series.Add(areaSeries);
                            }
                        }
                    }
                }
                ResourceChartPlotModel = plotModel;
            }
            RaiseCanExecuteChangedAllCommands();
        }