Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/19/20 17:53:36 (4 years ago)
Author:
abeham
Message:

#2521: work in progress (removed solution creator parameter from encoding), OrienteeringProblem and test functions are broken

Location:
branches/2521_ProblemRefactoring/HeuristicLab.Parameters/3.3
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Parameters/3.3/ConstrainedValueParameter.cs

    r17226 r17614  
    2121
    2222using System;
     23using System.Collections.Generic;
    2324using System.Linq;
    2425using HEAL.Attic;
     
    5758    }
    5859
     60    public override void Repopulate(IEnumerable<IItem> items) {
     61      var itemsOfT = items.OfType<T>().ToList();
     62      T oldItem = Value;
     63      ValidValues.Clear();
     64      T defaultItem = itemsOfT.FirstOrDefault();
     65
     66      foreach (T i in itemsOfT.OrderBy(x => x is INamedItem ? ((INamedItem)x).Name : x.ItemName))
     67        ValidValues.Add(i);
     68
     69      if (oldItem != null) {
     70        T item = ValidValues.FirstOrDefault(x => x.GetType() == oldItem.GetType());
     71        if (item != null) Value = item;
     72        else oldItem = null;
     73      }
     74      if (oldItem == null && defaultItem != null)
     75        Value = defaultItem;
     76    }
     77
    5978    protected override void ValidValues_ItemsAdded(object sender, CollectionItemsChangedEventArgs<T> e) {
    6079      if (Value == null) Value = ValidValues.First();
  • branches/2521_ProblemRefactoring/HeuristicLab.Parameters/3.3/OptionalConstrainedValueParameter.cs

    r17461 r17614  
    175175    }
    176176
     177    public virtual void Repopulate(IEnumerable<IItem> items) {
     178      var itemsOfT = items.OfType<T>().ToList();
     179      T oldItem = Value;
     180      ValidValues.Clear();
     181
     182      foreach (T i in itemsOfT.OrderBy(x => x is INamedItem ? ((INamedItem)x).Name : x.ItemName))
     183        ValidValues.Add(i);
     184
     185      if (oldItem != null) {
     186        T item = ValidValues.FirstOrDefault(x => x.GetType() == oldItem.GetType());
     187        if (item != null) Value = item;
     188      }
     189    }
     190
    177191    [StorableHook(HookType.AfterDeserialization)]
    178192    private void AfterDeserialization() {
  • branches/2521_ProblemRefactoring/HeuristicLab.Parameters/3.3/ParameterChangeHandler.cs

    r17587 r17614  
    2525
    2626namespace HeuristicLab.Parameters {
    27   public abstract class ParameterChangeHandler<TItem> where TItem : class, IItem {
     27  public class ParameterChangeHandler<TItem> where TItem : class, IItem {
    2828    protected Action handler;
    2929
     
    3737      handler();
    3838    }
     39
     40    public static ParameterChangeHandler<TItem> Create(IValueParameter<TItem> parameter, Action handler) {
     41      return new ParameterChangeHandler<TItem>(parameter, handler);
     42    }
    3943  }
    4044
Note: See TracChangeset for help on using the changeset viewer.