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); } } }
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; } } }
private static (GraphXEdgeFormatLookup, SlackColorFormatLookup) GetEdgeFormatLookups(ArrowGraphSettingsModel arrowGraphSettings) { if (arrowGraphSettings == null) { throw new ArgumentNullException(nameof(arrowGraphSettings)); } return(new GraphXEdgeFormatLookup(arrowGraphSettings.EdgeTypeFormats), new SlackColorFormatLookup(arrowGraphSettings.ActivitySeverities)); }