Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/31/14 17:34:11 (10 years ago)
Author:
abeham
Message:

#2127:

  • Fixed tab order in JobView and TaskView
  • Added additional events and registriations to account for changes to the jobs and tasks
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.Scheduling.Views/3.3/JobShopSchedulingProblemView.cs

    r10213 r10433  
    2020#endregion
    2121
     22using System;
    2223using System.Windows.Forms;
     24using HeuristicLab.Collections;
     25using HeuristicLab.Encodings.ScheduleEncoding;
    2326using HeuristicLab.MainForm;
    2427using HeuristicLab.Optimization.Views;
     
    4346    protected override void OnContentChanged() {
    4447      base.OnContentChanged();
    45       if (Content == null) {
    46         ganttChart.Reset();
    47       } else {
    48         FillGanttChart(Content);
    49       }
     48      FillGanttChart();
    5049    }
    5150
    5251    protected override void DeregisterContentEvents() {
    53       Content.JobDataParameter.ValueChanged -= JobDataParameter_ValueChanged;
     52      Content.JobDataParameter.ValueChanged -= JobDataParameterOnValueChanged;
     53      Content.JobData.ItemsAdded -= JobsOnChanged;
     54      Content.JobData.ItemsRemoved -= JobsOnChanged;
     55      Content.JobData.ItemsReplaced -= JobsOnChanged;
     56      Content.JobData.CollectionReset -= JobsOnChanged;
     57      foreach (var job in Content.JobData) {
     58        job.TasksChanged -= JobOnTasksChanged;
     59      }
    5460      base.DeregisterContentEvents();
    5561    }
    5662    protected override void RegisterContentEvents() {
    5763      base.RegisterContentEvents();
    58       Content.JobDataParameter.ValueChanged += JobDataParameter_ValueChanged;
    59     }
    60 
    61     void JobDataParameter_ValueChanged(object sender, System.EventArgs e) {
    62       if (Content != null) {
    63         FillGanttChart(Content);
     64      Content.JobDataParameter.ValueChanged += JobDataParameterOnValueChanged;
     65      Content.JobData.ItemsAdded += JobsOnChanged;
     66      Content.JobData.ItemsRemoved += JobsOnChanged;
     67      Content.JobData.ItemsReplaced += JobsOnChanged;
     68      Content.JobData.CollectionReset += JobsOnChanged;
     69      foreach (var job in Content.JobData) {
     70        job.TasksChanged += JobOnTasksChanged;
    6471      }
    6572    }
    6673
    67     private void FillGanttChart(JobShopSchedulingProblem content) {
     74    private void JobsOnChanged(object sender, CollectionItemsChangedEventArgs<IndexedItem<Job>> e) {
     75      foreach (var job in e.OldItems)
     76        job.Value.TasksChanged -= JobOnTasksChanged;
     77      foreach (var job in e.Items)
     78        job.Value.TasksChanged += JobOnTasksChanged;
     79      FillGanttChart();
     80    }
     81
     82    private void JobDataParameterOnValueChanged(object sender, EventArgs e) {
     83      Content.JobData.ItemsAdded += JobsOnChanged;
     84      Content.JobData.ItemsRemoved += JobsOnChanged;
     85      Content.JobData.ItemsReplaced += JobsOnChanged;
     86      Content.JobData.CollectionReset += JobsOnChanged;
     87      foreach (var job in Content.JobData) {
     88        job.TasksChanged += JobOnTasksChanged;
     89      }
     90      FillGanttChart();
     91    }
     92
     93    private void JobOnTasksChanged(object sender, EventArgs e) {
     94      FillGanttChart();
     95    }
     96
     97    private void FillGanttChart() {
    6898      ganttChart.Reset();
     99      if (Content == null) return;
    69100      int jobCount = 0;
    70       foreach (var j in content.JobData) {
     101      foreach (var j in Content.JobData) {
    71102        double lastEndTime = 0;
    72         foreach (var t in content.JobData[jobCount].Tasks) {
     103        foreach (var t in Content.JobData[jobCount].Tasks) {
    73104          int categoryNr = t.JobNr;
    74105          string categoryName = "Job" + categoryNr;
     
    78109            lastEndTime + 1,
    79110            lastEndTime + t.Duration,
    80             "Job" + t.JobNr + " - " + "Task#" + t.TaskNr.ToString());
     111            "Job" + t.JobNr + " - " + "Task#" + t.TaskNr);
    81112          lastEndTime += t.Duration;
    82113        }
Note: See TracChangeset for help on using the changeset viewer.