Example #1
0
        private void GenerateGanttChartFromGraphCompilation()
        {
            lock (m_Lock)
            {
                GanttChart = null;
                IList <IDependentActivity <int, int> > dependentActivities =
                    GraphCompilation.DependentActivities
                    .Select(x => (IDependentActivity <int, int>)x.CloneObject())
                    .ToList();

                if (!HasCompilationErrors &&
                    dependentActivities.Any())
                {
                    List <IDependentActivity <int, int> > orderedActivities =
                        dependentActivities.OrderBy(x => x.EarliestStartTime)
                        .ThenBy(x => x.Duration)
                        .ToList();

                    ArrowGraphSettingsModel arrowGraphSettings = ArrowGraphSettings;
                    ResourceSeriesSetModel  resourceSeriesSet  = ResourceSeriesSet;

                    if (arrowGraphSettings != null &&
                        resourceSeriesSet != null)
                    {
                        GanttChart = new GanttChartModel
                        {
                            DependentActivities = m_Mapper.Map <List <IDependentActivity <int, int> >, List <DependentActivityModel> >(orderedActivities),
                            ResourceSeriesSet   = resourceSeriesSet,
                            IsStale             = false,
                        };
                    }
                }
            }
            PublishGanttChartDataUpdatedPayload();
        }
 public ArrowGraphSettingsManagerConfirmation(ArrowGraphSettingsModel arrowGraphSettings)
 {
     if (arrowGraphSettings == null)
     {
         throw new ArgumentNullException(nameof(arrowGraphSettings));
     }
     m_EdgeTypeFormats  = new List <EdgeTypeFormatModel>();
     ActivitySeverities = new ObservableCollection <IManagedActivitySeverityViewModel>();
     SetManagedActivitySeverities(arrowGraphSettings.ActivitySeverities);
     SetEdgeTypeFormats(arrowGraphSettings.EdgeTypeFormats);
 }
        public void UpdateArrowGraphSettings(ArrowGraphSettingsModel arrowGraphSettings)
        {
            if (arrowGraphSettings is null)
            {
                throw new ArgumentNullException(nameof(arrowGraphSettings));
            }

            lock (m_Lock)
            {
                ArrowGraphSettings = arrowGraphSettings;
                RecordCoreState();
            }
        }
        private void GenerateGanttChart()
        {
            GanttChartAreaCtrl.ClearGantt();
            GanttChartModel ganttChart = ViewModel.GanttChart;

            if (ganttChart != null)
            {
                IList <DependentActivityModel> dependentActivities = ganttChart.DependentActivities;
                ResourceSeriesSetModel         resourceSeriesSet   = ganttChart.ResourceSeriesSet;

                m_DateTimeCalculator.UseBusinessDays(ViewModel.UseBusinessDays);

                DateTime projectStart = ViewModel.ProjectStart;

                DateTime minDate = DatePicker.SelectedDate ?? projectStart;
                DateTime maxDate = minDate.AddDays(DaysSelect.Value.GetValueOrDefault());
                GanttChartAreaCtrl.Initialize(minDate, maxDate);

                // Create timelines and define how they should be presented.
                GanttChartAreaCtrl.CreateTimeLine(new PeriodYearSplitter(minDate, maxDate), FormatYear);
                GanttChartAreaCtrl.CreateTimeLine(new PeriodMonthSplitter(minDate, maxDate), FormatMonth);
                TimeLine gridLineTimeLine = GanttChartAreaCtrl.CreateTimeLine(new PeriodDaySplitter(minDate, maxDate), FormatDay);
                //GanttChartAreaCtrl.CreateTimeLine(new PeriodDaySplitter(minDate, maxDate), FormatDayName);

                // Attach gridlines.
                GanttChartAreaCtrl.SetGridLinesTimeline(gridLineTimeLine, DetermineBackground);

                // Prep formatting helpers.
                SlackColorFormatLookup  colorFormatLookup  = null;
                ArrowGraphSettingsModel arrowGraphSettings = ViewModel.ArrowGraphSettings;

                if (arrowGraphSettings?.ActivitySeverities != null)
                {
                    colorFormatLookup = new SlackColorFormatLookup(arrowGraphSettings.ActivitySeverities);
                }

                if (GroupByResource.IsChecked.GetValueOrDefault())
                {
                    BuildGanttChart(dependentActivities.Select(x => x.Activity), resourceSeriesSet, projectStart, colorFormatLookup);
                }
                else
                {
                    BuildGanttChart(dependentActivities.Select(x => x.Activity), projectStart, colorFormatLookup);
                }
            }
        }
Example #5
0
 private static void DecorateArrowGraphByGraphSettings(
     ArrowGraphData arrowGraphData,
     ArrowGraphSettingsModel arrowGraphSettings)
 {
     if (arrowGraphData == null)
     {
         return;
     }
     if (arrowGraphSettings == null)
     {
         throw new ArgumentNullException(nameof(arrowGraphSettings));
     }
     (GraphXEdgeFormatLookup edgeFormatLookup, SlackColorFormatLookup colorFormatLookup) = GetEdgeFormatLookups(arrowGraphSettings);
     foreach (ArrowGraphEdge edge in arrowGraphData.Edges)
     {
         edge.ForegroundHexCode = colorFormatLookup.FindSlackColorHexCode(edge.TotalSlack);
         edge.StrokeThickness   = edgeFormatLookup.FindStrokeThickness(edge.IsCritical, edge.IsDummy);
         edge.DashStyle         = edgeFormatLookup.FindGraphXEdgeDashStyle(edge.IsCritical, edge.IsDummy);
     }
 }
        private void SetCoreState(CoreStateModel coreState)
        {
            if (coreState is null)
            {
                return;
            }

            lock (m_Lock)
            {
                try
                {
                    IsBusy = true;

                    ClearManagedActivities();

                    m_ArrowGraphSettingsModel = coreState.ArrowGraphSettings;
                    m_ResourceSettingsModel   = coreState.ResourceSettings;

                    m_ProjectStart    = coreState.ProjectStart;
                    m_UseBusinessDays = coreState.UseBusinessDays;
                    m_ShowDates       = coreState.ShowDates;
                    RaisePropertyChanged(nameof(ProjectStart));
                    RaisePropertyChanged(nameof(UseBusinessDays));
                    RaisePropertyChanged(nameof(ShowDates));

                    AddManagedActivities(new HashSet <DependentActivityModel>(coreState.DependentActivities));

                    RunAutoCompile();

                    RecordCoreState();
                }
                finally
                {
                    IsBusy = false;
                }
            }
        }
Example #7
0
 private static (GraphXEdgeFormatLookup, SlackColorFormatLookup) GetEdgeFormatLookups(ArrowGraphSettingsModel arrowGraphSettings)
 {
     if (arrowGraphSettings == null)
     {
         throw new ArgumentNullException(nameof(arrowGraphSettings));
     }
     return(new GraphXEdgeFormatLookup(arrowGraphSettings.EdgeTypeFormats),
            new SlackColorFormatLookup(arrowGraphSettings.ActivitySeverities));
 }