Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/23/20 14:18:19 (4 years ago)
Author:
abeham
Message:

#2521: fixed encoding change of JSSP, added tostring and itemimage change to ValueChanged event of ReferenceParameter

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Problems.Scheduling/3.3/JobShopSchedulingProblem.cs

    r17680 r17694  
    2121
    2222using System;
    23 using System.ComponentModel;
    2423using System.Drawing;
    2524using System.Linq;
     
    187186    protected override void OnEncodingChanged() {
    188187      base.OnEncodingChanged();
     188      var jobData = (ItemList<Job>)JobData.Clone();
     189      var jobs = Jobs;
     190      var resources = Resources;
    189191      Parameters.Remove(JobDataParameter);
    190192      Parameters.Add(JobDataParameter = new ReferenceParameter<ItemList<Job>>("JobData", "Jobdata defining the precedence relationships and the duration of the tasks in this JSSP-Instance.", Encoding.JobDataParameter));
     
    193195      Parameters.Remove(ResourcesParameter);
    194196      Parameters.Add(ResourcesParameter = new ReferenceParameter<IntValue>("Resources", "The number of resources used in this JSSP instance.", Encoding.ResourcesParameter));
     197      JobData = jobData;
     198      Jobs = jobs;
     199      Resources = resources;
     200
     201      RegisterEventHandlers();
    195202    }
    196203
    197204
    198205    private void RegisterEventHandlers() {
    199       JobDataParameter.ValueChanged += JobDataParameterOnValueChanged;
    200       JobData.PropertyChanged += JobDataOnPropertyChanged;
    201     }
    202 
    203     private void JobDataParameterOnValueChanged(object sender, EventArgs e) {
    204       JobData.PropertyChanged += JobDataOnPropertyChanged;
     206      ItemListParameterChangeHandler<Job>.Create(JobDataParameter, JobDataOnChanged);
     207    }
     208
     209    private void JobDataOnChanged() {
    205210      Jobs = JobData.Count;
    206     }
    207 
    208     private void JobDataOnPropertyChanged(object sender, PropertyChangedEventArgs e) {
    209       if (e.PropertyName == nameof(JobData.Count)) {
    210         Jobs = JobData.Count;
    211       }
    212     }
     211      Resources = JobData.SelectMany(x => x.Tasks).Select(x => x.ResourceNr).Distinct().Count();
     212    }
     213
    213214
    214215    #region Problem Instance Handling
Note: See TracChangeset for help on using the changeset viewer.