1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using Tango.DispenserAnalyzer.UI.Models;
using Tango.SharedUI;
namespace Tango.DispenserAnalyzer.UI.ViewModels
{
[JsonObject(MemberSerialization.OptIn)]
public class CollectionSettings : ViewModel
{
private string _name;
[JsonProperty]
public string Name
{
get { return _name; }
set { _name = value; }
}
private ObservableCollection<BaseSettingModel> _settings;
[JsonProperty]
public ObservableCollection<BaseSettingModel> Settings
{
get { return _settings; }
set { _settings = value; RaisePropertyChangedAuto(); }
}
public CollectionSettings(string name)
{
_settings = new ObservableCollection<BaseSettingModel>();
Name = name;
}
public void AddSettings(List<BaseSettingModel> settings)
{
settings.ForEach(x => Settings.Add(x));
}
}
public class SettingsVM : ViewModel, IDisposable
{
#region Properties
public Dictionary<AnalyzerSettingsEnum, object> ChangedValues { get; set; }
private ObservableCollection<CollectionSettings> _settings;
public ObservableCollection<CollectionSettings> Settings
{
get { return _settings; }
set { _settings = value; RaisePropertyChangedAuto(); }
}
#endregion
public SettingsVM()
{
_settings = new ObservableCollection<CollectionSettings>();
ChangedValues = new Dictionary<AnalyzerSettingsEnum, object>();
InitPBUTestSettings();
InitProcessSettings();
InitFlowTestSettings();
}
private void InitPBUTestSettings()
{
CollectionSettings model = new CollectionSettings("Pressure build up");
List<BaseSettingModel> list = new List<BaseSettingModel>();
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.PBUPassFail, "4.5 sec"));
model.AddSettings(list);
list.ForEach(x => x.SettingValueEvent += new EventHandler(OnSettingValueChanged));
Settings.Add(model);
}
private void InitFlowTestSettings()
{
CollectionSettings model = new CollectionSettings("Flow test");
List<BaseSettingModel> list = new List<BaseSettingModel>();
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.FlowPBUPassFail, "4.5 sec"));
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.ExcludeAnalysis, "1800 reads"));
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.AvgMinValue, "1400-1850 [mbar]", true));
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.MaxMinRange, "450 reads"));
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.MaxMinIntervals, "450 reads"));
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.MaxError, "1.67%"));
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.TakeOffMaxMin, "3"));
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.CancelMovingAVG, "False"));
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.DividerMaxError, "1500"));
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.DeviationAtRevolutionsMin, AnalyzerSettingsEnum.DeviationAtRevolutionsMax, "200-218"));
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.DirectoryPath, ""));
list.ForEach(x => x.SettingValueEvent += new EventHandler(OnSettingValueChanged));
model.AddSettings(list);
Settings.Add(model);
}
private void InitProcessSettings()
{
CollectionSettings model = new CollectionSettings("Process");
List<BaseSettingModel> list = new List<BaseSettingModel>();
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.TimeInterval, "0.1 sec"));
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.StartCalculation, "600 sec"));
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.EndCalculation, "900 sec"));
list.Add(new BaseSettingModel(AnalyzerSettingsEnum.MovingAvg, "50 points"));
list.ForEach(x => x.SettingValueEvent += new EventHandler(OnSettingValueChanged));
model.AddSettings(list);
Settings.Add(model);
}
private void OnSettingValueChanged(object sender, EventArgs e)
{
if (sender is BaseSettingModel)
{
BaseSettingModel settingModel = sender as BaseSettingModel;
if (settingModel.IsRangeVisible)
{
ChangedValues[AnalyzerSettingsEnum.AvgMinValue] = settingModel.MinRangeValue;
ChangedValues[AnalyzerSettingsEnum.AvgMaxValue] = settingModel.MaxRangeValue;
}
else
ChangedValues[settingModel._enumName] = settingModel.PropertyValue;
}
}
public Dictionary<AnalyzerSettingsEnum, object> GetChanges()
{
return ChangedValues;
}
public void Dispose()
{
Settings.ToList().ForEach(x => {
x.Settings.ToList().ForEach(k => k.SettingValueEvent -= OnSettingValueChanged);
});
}
}
}
|