/// <summary> /// Example starts here /// </summary> public ExampleFull() { InitializeComponent(); // Create a Project and some Tasks _mManager = new ProjectManager(); var work = new MyTask(_mManager) { Name = "Prepare for Work" }; var wake = new MyTask(_mManager) { Name = "Wake Up" }; var teeth = new MyTask(_mManager) { Name = "Brush Teeth" }; var shower = new MyTask(_mManager) { Name = "Shower" }; var clothes = new MyTask(_mManager) { Name = "Change into New Clothes" }; var hair = new MyTask(_mManager) { Name = "Blow My Hair" }; var pack = new MyTask(_mManager) { Name = "Pack the Suitcase" }; _mManager.Add(work); _mManager.Add(wake); _mManager.Add(teeth); _mManager.Add(shower); _mManager.Add(clothes); _mManager.Add(hair); _mManager.Add(pack); // Create another 1000 tasks for stress testing Random rand = new Random(); for (int i = 0; i < 1000; i++) { var task = new MyTask(_mManager) { Name = string.Format("New Task {0}", i.ToString()) }; _mManager.Add(task); _mManager.SetStart(task, rand.Next(300)); _mManager.SetDuration(task, rand.Next(50)); } // Set task durations, e.g. using ProjectManager methods _mManager.SetDuration(wake, 3); _mManager.SetDuration(teeth, 5); _mManager.SetDuration(shower, 7); _mManager.SetDuration(clothes, 4); _mManager.SetDuration(hair, 3); _mManager.SetDuration(pack, 5); // demostrate splitting a task _mManager.Split(pack, new MyTask(_mManager), new MyTask(_mManager), 2); // Set task complete status, e.g. using newly created properties wake.Complete = 0.9f; teeth.Complete = 0.5f; shower.Complete = 0.4f; // Give the Tasks some organisation, setting group and precedents _mManager.Group(work, wake); _mManager.Group(work, teeth); _mManager.Group(work, shower); _mManager.Group(work, clothes); _mManager.Group(work, hair); _mManager.Group(work, pack); _mManager.Relate(wake, teeth); _mManager.Relate(wake, shower); _mManager.Relate(shower, clothes); _mManager.Relate(shower, hair); _mManager.Relate(hair, pack); _mManager.Relate(clothes, pack); // Create and assign Resources. // MyResource is just custom user class. The API can accept any object as resource. var jake = new MyResource() { Name = "Jake" }; var peter = new MyResource() { Name = "Peter" }; var john = new MyResource() { Name = "John" }; var lucas = new MyResource() { Name = "Lucas" }; var james = new MyResource() { Name = "James" }; var mary = new MyResource() { Name = "Mary" }; // Add some resources _mManager.Assign(wake, jake); _mManager.Assign(wake, peter); _mManager.Assign(wake, john); _mManager.Assign(teeth, jake); _mManager.Assign(teeth, james); _mManager.Assign(pack, james); _mManager.Assign(pack, lucas); _mManager.Assign(shower, mary); _mManager.Assign(shower, lucas); _mManager.Assign(shower, john); // Initialize the Chart with our ProjectManager and CreateTaskDelegate _mChart.Init(_mManager); _mChart.CreateTaskDelegate = delegate() { return new MyTask(_mManager); }; // Attach event listeners for events we are interested in _mChart.TaskMouseOver += new EventHandler<TaskMouseEventArgs>(_mChart_TaskMouseOver); _mChart.TaskMouseOut += new EventHandler<TaskMouseEventArgs>(_mChart_TaskMouseOut); _mChart.TaskSelected += new EventHandler<TaskMouseEventArgs>(_mChart_TaskSelected); _mChart.PaintOverlay += _mOverlay.ChartOverlayPainter; _mChart.AllowTaskDragDrop = true; // set some tooltips to show the resources in each task _mChart.SetToolTip(wake, string.Join(", ", _mManager.ResourcesOf(wake).Select(x => (x as MyResource).Name))); _mChart.SetToolTip(teeth, string.Join(", ", _mManager.ResourcesOf(teeth).Select(x => (x as MyResource).Name))); _mChart.SetToolTip(pack, string.Join(", ", _mManager.ResourcesOf(pack).Select(x => (x as MyResource).Name))); _mChart.SetToolTip(shower, string.Join(", ", _mManager.ResourcesOf(shower).Select(x => (x as MyResource).Name))); // Set Time information _mManager.TimeScale = TimeScale.Day; var span = DateTime.Today - _mManager.Start; _mManager.Now = (int)Math.Round(span.TotalDays); // set the "Now" marker at the correct date _mChart.TimeScaleDisplay = TimeScaleDisplay.DayOfWeek; // Set the chart to display days of week in header // Init the rest of the UI _InitExampleUI(); }
/// <summary> /// Example starts here /// </summary> public ExampleFull() { InitializeComponent(); mnuViewDayOfMonth_Click(null, EventArgs.Empty); mnuViewIntructions_Click(null, EventArgs.Empty); // Create a Project and some Tasks _mManager = new ProjectManager(); var work = new MyTask(_mManager) { Name = "Prepare for Work" }; var wake = new MyTask(_mManager) { Name = "Wake Up" }; var teeth = new MyTask(_mManager) { Name = "Brush Teeth" }; var shower = new MyTask(_mManager) { Name = "Shower" }; var clothes = new MyTask(_mManager) { Name = "Change into New Clothes" }; var hair = new MyTask(_mManager) { Name = "Blow My Hair" }; var pack = new MyTask(_mManager) { Name = "Pack the Suitcase" }; _mManager.Add(work); _mManager.Add(wake); _mManager.Add(teeth); _mManager.Add(shower); _mManager.Add(clothes); _mManager.Add(hair); _mManager.Add(pack); // Create another 1000 tasks for stress testing Random rand = new Random(); for (int i = 0; i < 1000; i++) { var task = new MyTask(_mManager) { Name = string.Format("New Task {0}", i.ToString()) }; _mManager.Add(task); _mManager.SetStart(task, rand.Next(300)); _mManager.SetDuration(task, rand.Next(50)); } // Set task durations, e.g. using ProjectManager methods _mManager.SetDuration(wake, 3); _mManager.SetDuration(teeth, 5); _mManager.SetDuration(shower, 7); _mManager.SetDuration(clothes, 4); _mManager.SetDuration(hair, 3); _mManager.SetDuration(pack, 5); // demostrate splitting a task _mManager.Split(pack, new MyTask(_mManager), new MyTask(_mManager), 2); // Set task complete status, e.g. using newly created properties wake.Complete = 0.9f; teeth.Complete = 0.5f; shower.Complete = 0.4f; // Give the Tasks some organisation, setting group and precedents _mManager.Group(work, wake); _mManager.Group(work, teeth); _mManager.Group(work, shower); _mManager.Group(work, clothes); _mManager.Group(work, hair); _mManager.Group(work, pack); _mManager.Relate(wake, teeth); _mManager.Relate(wake, shower); _mManager.Relate(shower, clothes); _mManager.Relate(shower, hair); _mManager.Relate(hair, pack); _mManager.Relate(clothes, pack); // Create and assign Resources. // MyResource is just custom user class. The API can accept any object as resource. var jake = new MyResource("Jake", Color.Aqua, Color.CadetBlue); var peter = new MyResource("Peter", Color.Chartreuse); var john = new MyResource("John", Color.DeepPink); var lucas = new MyResource("Lucas", Color.DarkOrange); var james = new MyResource("James", Color.Gold); var mary = new MyResource("Mary", Color.LightGray); // Add some resources _mManager.Assign(wake, jake); _mManager.Assign(wake, peter); _mManager.Assign(wake, john); _mManager.Assign(teeth, jake); _mManager.Assign(teeth, james); _mManager.Assign(pack, james); _mManager.Assign(pack, lucas); _mManager.Assign(shower, mary); _mManager.Assign(shower, lucas); _mManager.Assign(shower, john); // Initialize the Chart with our ProjectManager and CreateTaskDelegate _mChart.Init(_mManager); _mChart.CreateTaskDelegate = delegate() { return(new MyTask(_mManager)); }; // Attach event listeners for events we are interested in _mChart.TaskMouseOver += new EventHandler <TaskMouseEventArgs>(_mChart_TaskMouseOver); _mChart.TaskMouseOut += new EventHandler <TaskMouseEventArgs>(_mChart_TaskMouseOut); _mChart.TaskSelected += new EventHandler <TaskMouseEventArgs>(_mChart_TaskSelected); _mChart.PaintOverlay += _mOverlay.ChartOverlayPainter; _mChart.AllowTaskDragDrop = true; // set some tooltips to show the resources in each task _mChart.SetToolTip(wake, string.Join(", ", _mManager.ResourcesOf(wake).Select(x => (x as MyResource).Name))); _mChart.SetToolTip(teeth, string.Join(", ", _mManager.ResourcesOf(teeth).Select(x => (x as MyResource).Name))); _mChart.SetToolTip(pack, string.Join(", ", _mManager.ResourcesOf(pack).Select(x => (x as MyResource).Name))); _mChart.SetToolTip(shower, string.Join(", ", _mManager.ResourcesOf(shower).Select(x => (x as MyResource).Name))); // Set Time information _mManager.TimeScale = TimeScale.Day; var span = DateTime.Today - _mManager.Start; _mManager.Now = (int)Math.Round(span.TotalDays); // set the "Now" marker at the correct date _mChart.TimeScaleDisplay = TimeScaleDisplay.DayOfWeek; // Set the chart to display days of week in header // Init the rest of the UI _InitExampleUI(); }