Free cookie consent management tool by TermsFeed Policy Generator

source: branches/3026_IntegrationIntoSymSpace/HeuristicLab.Manufacture/TypeTransformer/MultiCheckedOperatorTransformer.cs @ 17271

Last change on this file since 17271 was 17271, checked in by dpiringe, 5 years ago

#3026

  • renamed ParameterData to Component
  • renamed File Template.cs to Component.cs
File size: 1.2 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Threading.Tasks;
6using HeuristicLab.Core;
7
8namespace HeuristicLab.Manufacture {
9  public class MultiCheckedOperatorTransformer : ParameterizedItemTransformer {
10    public override Component ExtractData(IItem value) {
11      Component data = base.ExtractData(value);
12
13      data.Operators = new List<Component>();
14      dynamic val = value.Cast<dynamic>();
15      foreach (var op in val.Operators) {
16        data.Operators.Add(new Component() {
17          Name = op.Name,
18          Default = val.Operators.ItemChecked(op),
19          Range = new object[] { false, true }
20        });
21      }
22      return data;
23    }
24
25    public override void InjectData(IItem item, Component data) {
26      base.InjectData(item, data);
27
28      dynamic val = item.Cast<dynamic>();
29      foreach (var op in val.Operators) {
30        val.Operators.SetItemCheckedState(op, GetOperatorState(op.Name, data));
31      }
32    }
33
34    private bool GetOperatorState(string name, Component data) {
35      foreach(var op in data.Operators) {
36        if (op.Name == name) return op.Default.Cast<bool>();
37      }
38      return false;
39    }
40  }
41}
Note: See TracBrowser for help on using the repository browser.