- Timestamp:
- 03/04/15 10:18:39 (10 years ago)
- Location:
- branches/TimeLimitRunOptimizer
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/TimeLimitRunOptimizer
-
Property
svn:ignore
set to
*.suo
-
Property
svn:ignore
set to
-
branches/TimeLimitRunOptimizer/HeuristicLab.Optimization
-
Property
svn:mergeinfo
set to
(toggle deleted branches)
/branches/HLScript/HeuristicLab.Optimization merged eligible /stable/HeuristicLab.Optimization merged eligible /trunk/sources/HeuristicLab.Optimization merged eligible /branches/1721-RandomForestPersistence/HeuristicLab.Optimization 10321-10322 /branches/Algorithms.GradientDescent/HeuristicLab.Optimization 5516-5520 /branches/Benchmarking/sources/HeuristicLab.Optimization 6917-7005 /branches/Classification-Extensions/HeuristicLab.Optimization 11687-11761 /branches/CloningRefactoring/HeuristicLab.Optimization 4656-4721 /branches/DataAnalysis Refactoring/HeuristicLab.Optimization 5471-5808 /branches/DataAnalysis SolutionEnsembles/HeuristicLab.Optimization 5815-6180 /branches/DataAnalysis/HeuristicLab.Optimization 4458-4459,4462,4464 /branches/DataPreprocessing/HeuristicLab.Optimization 10085-11101 /branches/GP.Grammar.Editor/HeuristicLab.Optimization 6284-6795 /branches/GP.Symbols (TimeLag, Diff, Integral)/HeuristicLab.Optimization 5060 /branches/HeuristicLab.Problems.DataAnalysis.Trading/HeuristicLab.Optimization 6123-9799 /branches/LogResidualEvaluator/HeuristicLab.Optimization 10202-10483 /branches/NET40/sources/HeuristicLab.Optimization 5138-5162 /branches/ParallelEngine/HeuristicLab.Optimization 5175-5192 /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Optimization 7568-7810 /branches/ProgrammableProblem/HeuristicLab.Optimization 11573-11959 /branches/QAPAlgorithms/HeuristicLab.Optimization 6350-6627 /branches/Restructure trunk solution/HeuristicLab.Optimization 6828 /branches/RuntimeOptimizer/HeuristicLab.Optimization 8943-9078 /branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization 7787-8333 /branches/SlaveShutdown/HeuristicLab.Optimization 8944-8956 /branches/SpectralKernelForGaussianProcesses/HeuristicLab.Optimization 10204-10479 /branches/SuccessProgressAnalysis/HeuristicLab.Optimization 5370-5682 /branches/Trunk/HeuristicLab.Optimization 6829-6865 /branches/UnloadJobs/HeuristicLab.Optimization 9168-9215 /branches/VNS/HeuristicLab.Optimization 5594-5752 /branches/histogram/HeuristicLab.Optimization 5959-6341
-
Property
svn:mergeinfo
set to
(toggle deleted branches)
-
branches/TimeLimitRunOptimizer/HeuristicLab.Optimization/3.3/RunCollection.cs
r8967 r12118 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 2Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 22 22 using System; 23 23 using System.Collections.Generic; 24 using System.ComponentModel; 24 25 using System.Linq; 25 26 using HeuristicLab.Collections; … … 58 59 RegisterConstraintsEvents(); 59 60 RegisterConstraintEvents(constraints); 61 62 foreach (var run in this) { 63 RegisterRunParametersEvents(run); 64 RegisterRunResultsEvents(run); 65 } 60 66 61 67 UpdateFiltering(true); … … 132 138 RegisterConstraintsEvents(); 133 139 RegisterConstraintEvents(constraints); 140 141 foreach (var run in this) { 142 RegisterRunParametersEvents(run); 143 RegisterRunResultsEvents(run); 144 } 134 145 UpdateFiltering(true); 135 146 } … … 160 171 foreach (KeyValuePair<string, IItem> result in run.Results) 161 172 AddResult(result.Key, result.Value); 173 run.PropertyChanged += RunOnPropertyChanged; 174 RegisterRunParametersEvents(run); 175 RegisterRunResultsEvents(run); 176 } 177 foreach (IRun run in oldItems) { 178 run.PropertyChanged -= RunOnPropertyChanged; 179 DeregisterRunParametersEvents(run); 180 DeregisterRunResultsEvents(run); 162 181 } 163 182 columnNameCache = null; … … 178 197 foreach (KeyValuePair<string, IItem> result in run.Results) 179 198 columnsChanged |= AddResult(result.Key, result.Value); 199 run.PropertyChanged += RunOnPropertyChanged; 200 RegisterRunParametersEvents(run); 201 RegisterRunResultsEvents(run); 180 202 } 181 203 if (columnsChanged) columnNameCache = null; … … 198 220 foreach (string resultName in run.Results.Keys) 199 221 columnsChanged |= RemoveResultName(resultName); 222 run.PropertyChanged -= RunOnPropertyChanged; 223 DeregisterRunParametersEvents(run); 224 DeregisterRunResultsEvents(run); 200 225 } 201 226 if (columnsChanged) columnNameCache = null; … … 205 230 OnRowsChanged(); 206 231 OnRowNamesChanged(); 232 if (columnsChanged) { 233 OnColumnsChanged(); 234 OnColumnNamesChanged(); 235 } 236 } 237 238 private void RunOnPropertyChanged(object sender, PropertyChangedEventArgs e) { 239 if (e.PropertyName == "Parameters") { 240 RegisterRunParametersEvents((IRun)sender); 241 } else if (e.PropertyName == "Results") { 242 RegisterRunResultsEvents((IRun)sender); 243 } 244 } 245 246 private void RegisterRunParametersEvents(IRun run) { 247 IObservableDictionary<string, IItem> dict = run.Parameters; 248 dict.ItemsAdded += RunOnParameterChanged; 249 dict.ItemsRemoved += RunOnParameterRemoved; 250 dict.ItemsReplaced += RunOnParameterChanged; 251 dict.CollectionReset += RunOnParameterChanged; 252 } 253 254 private void RegisterRunResultsEvents(IRun run) { 255 IObservableDictionary<string, IItem> dict = run.Results; 256 dict.ItemsAdded += RunOnResultChanged; 257 dict.ItemsRemoved += RunOnResultRemoved; 258 dict.ItemsReplaced += RunOnResultChanged; 259 dict.CollectionReset += RunOnResultChanged; 260 } 261 262 private void DeregisterRunParametersEvents(IRun run) { 263 IObservableDictionary<string, IItem> dict = run.Parameters; 264 dict.ItemsAdded -= RunOnParameterChanged; 265 dict.ItemsRemoved -= RunOnParameterRemoved; 266 dict.ItemsReplaced -= RunOnParameterChanged; 267 dict.CollectionReset -= RunOnParameterChanged; 268 } 269 270 private void DeregisterRunResultsEvents(IRun run) { 271 IObservableDictionary<string, IItem> dict = run.Results; 272 dict.ItemsAdded -= RunOnResultChanged; 273 dict.ItemsRemoved -= RunOnResultRemoved; 274 dict.ItemsReplaced -= RunOnResultChanged; 275 dict.CollectionReset -= RunOnResultChanged; 276 } 277 278 private void RunOnParameterChanged(object sender, CollectionItemsChangedEventArgs<KeyValuePair<string, IItem>> e) { 279 bool columnsChanged = false; 280 foreach (var param in e.Items) 281 columnsChanged |= AddParameter(param.Key, param.Value); 282 foreach (var param in e.OldItems) 283 columnsChanged |= RemoveParameterName(param.Key); 284 if (columnsChanged) columnNameCache = null; 285 OnReset(); 286 if (columnsChanged) { 287 OnColumnsChanged(); 288 OnColumnNamesChanged(); 289 } 290 } 291 292 private void RunOnParameterRemoved(object sender, CollectionItemsChangedEventArgs<KeyValuePair<string, IItem>> e) { 293 bool columnsChanged = false; 294 foreach (var param in e.Items) 295 columnsChanged |= RemoveParameterName(param.Key); 296 if (columnsChanged) columnNameCache = null; 297 OnReset(); 298 if (columnsChanged) { 299 OnColumnsChanged(); 300 OnColumnNamesChanged(); 301 } 302 } 303 304 private void RunOnResultChanged(object sender, CollectionItemsChangedEventArgs<KeyValuePair<string, IItem>> e) { 305 bool columnsChanged = false; 306 foreach (var result in e.Items) 307 columnsChanged |= AddResult(result.Key, result.Value); 308 foreach (var result in e.OldItems) 309 columnsChanged |= RemoveResultName(result.Key); 310 if (columnsChanged) columnNameCache = null; 311 OnReset(); 312 if (columnsChanged) { 313 OnColumnsChanged(); 314 OnColumnNamesChanged(); 315 } 316 } 317 318 private void RunOnResultRemoved(object sender, CollectionItemsChangedEventArgs<KeyValuePair<string, IItem>> e) { 319 bool columnsChanged = false; 320 foreach (var result in e.Items) 321 columnsChanged |= RemoveResultName(result.Key); 322 if (columnsChanged) columnNameCache = null; 323 OnReset(); 207 324 if (columnsChanged) { 208 325 OnColumnsChanged(); … … 382 499 } 383 500 384 pr otected virtualvoid RegisterConstraintEvents(IEnumerable<IRunCollectionConstraint> constraints) {501 private void RegisterConstraintEvents(IEnumerable<IRunCollectionConstraint> constraints) { 385 502 foreach (IRunCollectionConstraint constraint in constraints) { 386 503 constraint.ActiveChanged += new EventHandler(Constraint_ActiveChanged); … … 390 507 } 391 508 } 392 pr otected virtualvoid DeregisterConstraintEvents(IEnumerable<IRunCollectionConstraint> constraints) {509 private void DeregisterConstraintEvents(IEnumerable<IRunCollectionConstraint> constraints) { 393 510 foreach (IRunCollectionConstraint constraint in constraints) { 394 511 constraint.ActiveChanged -= new EventHandler(Constraint_ActiveChanged);
Note: See TracChangeset
for help on using the changeset viewer.