// Control area commands. private void SetColorButton_Click(object sender, RoutedEventArgs e) { NetworkDiagramItem item = NetworkDiagramView.Items[2]; DlhSoft.Windows.Controls.Pert.NetworkDiagramView.SetShapeFill(item, Resources["CustomShapeFill"] as Brush); DlhSoft.Windows.Controls.Pert.NetworkDiagramView.SetShapeStroke(item, Resources["CustomShapeStroke"] as Brush); }
private void setDependencies(List <NetworkDiagramItem> listItem, NetworkDiagramItem itemStart, NetworkDiagramItem lastItem) { for (int i = 0; i < PERTTaskResult.Count(); i++) { List <PERTTask> poprzednicy = PERTTaskResult[i].PreTask; if (poprzednicy.Count() == 0) { NetworkDiagramItem initItem = listItem.Where(x => x.DisplayedText == PERTTaskResult[i].Name).FirstOrDefault(); initItem.Predecessors.Add(new NetworkPredecessorItem { Item = itemStart }); } if (PERTTaskResult[i].PostTask.Count() == 0) { NetworkDiagramItem endItem = listItem.Where(x => x.DisplayedText == PERTTaskResult[i].Name).FirstOrDefault(); lastItem.Predecessors.Add(new NetworkPredecessorItem { Item = endItem }); } NetworkDiagramItem itemCoMaPoprzednika = listItem.Where(x => x.DisplayedText == PERTTaskResult[i].Name).FirstOrDefault(); for (int j = 0; j < poprzednicy.Count(); j++) { NetworkDiagramItem poprzednik = listItem.Where(x => x.DisplayedText == poprzednicy[j].Name).FirstOrDefault(); itemCoMaPoprzednika.Predecessors.Add(new NetworkPredecessorItem { Item = poprzednik }); } } }
private NetworkDiagramItem setFirstNetworkDiagramItem(List <NetworkDiagramItem> listItem) { NetworkDiagramItem itemStart = new NetworkDiagramItem { DisplayedText = "Start", Content = "Start" }; itemStart.Effort = TimeSpan.Zero; itemStart.EarlyStart = StartProject; itemStart.EarlyFinish = StartProject; itemStart.LateStart = StartProject; itemStart.LateFinish = StartProject; itemStart.Slack = TimeSpan.Zero; listItem.Add(itemStart); return(itemStart); }
private NetworkDiagramItem setLastNetworkDiagramItem(List <NetworkDiagramItem> listItem) { int maxCS = PERTTaskResult.Max(x => x.CS); PERTTask tmpPertTask = PERTTaskResult.Where(x => x.CS == maxCS).FirstOrDefault(); NetworkDiagramItem lastItem = new NetworkDiagramItem { DisplayedText = "End", Content = "End" }; lastItem.Effort = TimeSpan.Zero; lastItem.EarlyStart = StartProject.AddDays(maxCS); lastItem.EarlyFinish = StartProject.AddDays(maxCS); lastItem.LateStart = StartProject.AddDays(maxCS); lastItem.LateFinish = StartProject.AddDays(maxCS); lastItem.Slack = TimeSpan.Zero; listItem.Add(lastItem); return(lastItem); }
private void setNetworkDiagramItems(List <NetworkDiagramItem> listItem) { for (int i = 0; i < PERTTaskResult.Count(); i++) { NetworkDiagramItem item = new NetworkDiagramItem { DisplayedText = PERTTaskResult[i].Name, Content = PERTTaskResult[i].Name }; item.Effort = TimeSpan.Parse(PERTTaskResult[i].Expected_t + ":00:00:00"); item.EarlyStart = StartProject.AddDays(PERTTaskResult[i].ES); item.EarlyFinish = StartProject.AddDays(PERTTaskResult[i].EF); item.LateStart = StartProject.AddDays(PERTTaskResult[i].LS); item.LateFinish = StartProject.AddDays(PERTTaskResult[i].LF); item.Slack = item.LateStart - item.EarlyStart; listItem.Add(item); } }
public MainWindow() { InitializeComponent(); NetworkDiagramItem item0 = NetworkDiagramView.Items[0]; item0.EarlyStart = DateTime.Today.Add(TimeSpan.Parse("08:00:00")); item0.EarlyFinish = item0.EarlyStart; item0.LateStart = item0.EarlyStart; item0.LateFinish = item0.LateStart; item0.AssignmentsContent = "N/A"; NetworkDiagramItem item1 = NetworkDiagramView.Items[1]; item1.Effort = TimeSpan.Parse("08:00:00"); item1.EarlyStart = DateTime.Today.Add(TimeSpan.Parse("08:00:00")); item1.EarlyFinish = DateTime.Today.Add(TimeSpan.Parse("16:00:00")); item1.LateStart = DateTime.Today.Add(TimeSpan.Parse("08:00:00")); item1.LateFinish = DateTime.Today.Add(TimeSpan.Parse("16:00:00")); item1.Slack = TimeSpan.Zero; item1.AssignmentsContent = "Resource 1"; item1.Predecessors.Add(new NetworkPredecessorItem { Item = item0 }); NetworkDiagramItem item2 = NetworkDiagramView.Items[2]; item2.Effort = TimeSpan.Parse("04:00:00"); item2.EarlyStart = DateTime.Today.Add(TimeSpan.Parse("08:00:00")); item2.EarlyFinish = DateTime.Today.Add(TimeSpan.Parse("12:00:00")); item2.LateStart = DateTime.Today.Add(TimeSpan.Parse("12:00:00")); item2.LateFinish = DateTime.Today.Add(TimeSpan.Parse("16:00:00")); item2.Slack = TimeSpan.Parse("04:00:00"); item2.AssignmentsContent = "Resource 2"; item2.Predecessors.Add(new NetworkPredecessorItem { Item = item0 }); NetworkDiagramItem item3 = NetworkDiagramView.Items[3]; item3.Effort = TimeSpan.Parse("16:00:00"); item3.EarlyStart = DateTime.Today.AddDays(1).Add(TimeSpan.Parse("08:00:00")); item3.EarlyFinish = DateTime.Today.AddDays(2).Add(TimeSpan.Parse("16:00:00")); item3.LateStart = DateTime.Today.AddDays(1).Add(TimeSpan.Parse("08:00:00")); item3.LateFinish = DateTime.Today.AddDays(2).Add(TimeSpan.Parse("16:00:00")); item3.Slack = TimeSpan.Zero; item3.AssignmentsContent = "Resource 1, Resource 2"; item3.Predecessors.Add(new NetworkPredecessorItem { Item = item1 }); item3.Predecessors.Add(new NetworkPredecessorItem { Item = item2 }); NetworkDiagramItem item4 = NetworkDiagramView.Items[4]; item4.Effort = TimeSpan.Parse("04:00:00"); item4.EarlyStart = DateTime.Today.AddDays(1).Add(TimeSpan.Parse("08:00:00")); item4.EarlyFinish = DateTime.Today.AddDays(1).Add(TimeSpan.Parse("12:00:00")); item4.LateStart = DateTime.Today.AddDays(2).Add(TimeSpan.Parse("12:00:00")); item4.LateFinish = DateTime.Today.AddDays(2).Add(TimeSpan.Parse("16:00:00")); item4.Slack = TimeSpan.Parse("12:00:00"); item4.AssignmentsContent = "Resource 2"; item4.Predecessors.Add(new NetworkPredecessorItem { Item = item1 }); NetworkDiagramItem item5 = NetworkDiagramView.Items[5]; item5.Effort = TimeSpan.Parse("12:00:00"); item5.EarlyStart = DateTime.Today.AddDays(3).Add(TimeSpan.Parse("08:00:00")); item5.EarlyFinish = DateTime.Today.AddDays(4).Add(TimeSpan.Parse("12:00:00")); item5.LateStart = DateTime.Today.AddDays(3).Add(TimeSpan.Parse("08:00:00")); item5.LateFinish = DateTime.Today.AddDays(4).Add(TimeSpan.Parse("12:00:00")); item5.Slack = TimeSpan.Zero; item5.AssignmentsContent = "Resource 2"; item5.Predecessors.Add(new NetworkPredecessorItem { Item = item3 }); item5.Predecessors.Add(new NetworkPredecessorItem { Item = item4 }); NetworkDiagramItem item6 = NetworkDiagramView.Items[6]; item6.Effort = TimeSpan.Parse("2.00:00:00"); item6.EarlyStart = DateTime.Today.AddDays(4).Add(TimeSpan.Parse("12:00:00")); item6.EarlyFinish = DateTime.Today.AddDays(10).Add(TimeSpan.Parse("12:00:00")); item6.LateStart = DateTime.Today.AddDays(4).Add(TimeSpan.Parse("12:00:00")); item6.LateFinish = DateTime.Today.AddDays(10).Add(TimeSpan.Parse("12:00:00")); item6.Slack = TimeSpan.Zero; item6.AssignmentsContent = "Resource 1"; item6.Predecessors.Add(new NetworkPredecessorItem { Item = item5 }); NetworkDiagramItem item7 = NetworkDiagramView.Items[7]; item7.Effort = TimeSpan.Parse("20:00:00"); item7.EarlyStart = DateTime.Today.AddDays(4).Add(TimeSpan.Parse("12:00:00")); item7.EarlyFinish = DateTime.Today.AddDays(6).Add(TimeSpan.Parse("16:00:00")); item7.LateStart = DateTime.Today.AddDays(8).Add(TimeSpan.Parse("08:00:00")); item7.LateFinish = DateTime.Today.AddDays(10).Add(TimeSpan.Parse("12:00:00")); item7.Slack = TimeSpan.Parse("1.04:00:00"); item7.AssignmentsContent = "Resource 2"; item7.Predecessors.Add(new NetworkPredecessorItem { Item = item5 }); NetworkDiagramItem item8 = NetworkDiagramView.Items[8]; item8.LateFinish = DateTime.Today.AddDays(10).Add(TimeSpan.Parse("12:00:00")); item8.LateStart = item8.LateFinish; item8.EarlyFinish = item8.LateFinish; item8.EarlyStart = item8.EarlyFinish; item8.AssignmentsContent = "N/A"; item8.Predecessors.Add(new NetworkPredecessorItem { Item = item6 }); item8.Predecessors.Add(new NetworkPredecessorItem { Item = item7 }); // Optionally, reposition start and finish milestones between the first and second rows of the view. // Dispatcher.BeginInvoke((Action)delegate { NetworkDiagramView.RepositionEnds(); }, DispatcherPriority.Background); }
private void SetCriticalPathHighlighting(NetworkDiagramItem item, bool isHighlighted) { DlhSoft.Windows.Controls.Pert.NetworkDiagramView.SetShapeFill(item, isHighlighted ? Resources["CustomShapeFill"] as Brush : NetworkDiagramView.ShapeFill); DlhSoft.Windows.Controls.Pert.NetworkDiagramView.SetShapeStroke(item, isHighlighted ? Resources["CustomShapeStroke"] as Brush : NetworkDiagramView.ShapeStroke); }