4 using System.ComponentModel;
38 public string LastUsedParametersFileName
40 get {
return Path.GetFileNameWithoutExtension(PathToParameters); }
46 private string PathToParameters
53 OnPropertyChanged(
"LastUsedParametersFileName");
60 public double P1_CellLength
69 public TimeSpan P2_SimulationStepInterval
75 OnPropertyChanged(
"P2_SimulationStepInterval");
82 public double P5_LowSpeedDecProbability
88 OnPropertyChanged(
"P5_LowSpeedDecProbability");
95 public int P6_DecProbabilitySpeedBound
101 OnPropertyChanged(
"P6_DecProbabilitySpeedBound");
108 public double P7_AccelerationProbability
114 OnPropertyChanged(
"P7_AccelerationProbability");
121 public double P8_HighSpeedDecProbability
127 OnPropertyChanged(
"P8_HighSpeedDecProbability");
134 public double P9_DecRateWhenLeadingAcc
140 OnPropertyChanged(
"P9_DecRateWhenLeadingAcc");
147 public double P10_DecRateWhenLeadingDec
153 OnPropertyChanged(
"P10_DecRateWhenLeadingDec");
160 private ICommand defaultCommand;
164 public ICommand DefaultCommand
168 if (defaultCommand == null)
172 return defaultCommand;
179 private ICommand importCommand;
183 public ICommand ImportCommand
187 if (importCommand == null)
191 return importCommand;
198 private ICommand exportCommand;
202 public ICommand ExportCommand
206 if (exportCommand == null)
210 return exportCommand;
217 private ICommand okCommand;
221 public ICommand OkCommand
225 if (okCommand == null)
241 this.messenger = messenger;
242 this.settings = settings;
243 this.interactions = interactions;
251 if (PathToParameters ==
string.Empty)
259 Import(PathToParameters);
263 PathToParameters =
string.Empty;
272 private void SetDefaults()
276 P2_SimulationStepInterval = TimeSpan.FromSeconds(1.0);
277 P5_LowSpeedDecProbability = 0.2;
278 P6_DecProbabilitySpeedBound = 15;
279 P7_AccelerationProbability = 0.8;
280 P8_HighSpeedDecProbability = 0.1;
281 P9_DecRateWhenLeadingAcc = 2.0;
282 P10_DecRateWhenLeadingDec = 3.0;
283 PathToParameters =
string.Empty;
284 OnPropertyChanged(
string.Empty);
290 private void Import()
293 if (!
string.IsNullOrEmpty(pathToOpen))
303 private void Import(
string path)
308 PathToParameters = path;
309 OnPropertyChanged(
string.Empty);
321 private void Export()
324 if (!
string.IsNullOrEmpty(pathToSave))
329 PathToParameters = pathToSave;
341 private void UseParameters()
343 messenger.GetEvent<ParametersMessage>().Publish(parameters);
void ScreamErrorMessage(string errorMessage)
Screaming error message.
string GetPathToOpenParametersFile()
Asking which parameters file to open for loading.
Class containing all simulator parameters.
Class representing message with payload.
Interface of application settings.
TimeSpan P2_SimulationStepInterval
Cell length parameter.
Class representing messenger for communicating between viewmodels.
void Serialize(string path)
Save parameters to file.
string GetPathToSaveParametersFile()
Asking which paramters file the data to be saved into.
Command class for binding UI commands with view models.
ParametersViewModel(Messenger messenger, ISettings settings, IInteractions interactions)
Constructor to parameters view model.
CellularTopologyParameters CellularTopologyParameters
Reference to cellular topology parameters.
Interface for interactions with user.
void Initialize()
Initialize parameters view model by getting last used or default parameters.
string PathToParameters
Path to last used file with parameters.
TransitionFunctionParameters TransitionFunctionParameters
Reference to transition function parameters.
Class representing view model of parameters view.
double P1_CellLength
Cell length parameter.
static Parameters Deserialize(string path)
Opens parameters file to import.
void Save()
Saves application settings.