- Timestamp:
- 01/21/11 03:53:10 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/OKBProblem.cs
r5338 r5344 24 24 using System.Drawing; 25 25 using System.IO; 26 using System.Linq;27 26 using HeuristicLab.Common; 28 27 using HeuristicLab.Core; … … 32 31 33 32 namespace HeuristicLab.Clients.OKB { 34 [Item("OKB Problem", " Represents a problem which isstored in the OKB.")]33 [Item("OKB Problem", "A base class for problems which are stored in the OKB.")] 35 34 [StorableClass] 36 public class OKBProblem : Item, IProblem, IStorableContent { 37 public string Filename { get; set; } 38 39 public override Image ItemImage { 40 get { return Problem == null ? HeuristicLab.Common.Resources.VSImageLibrary.Type : Problem.ItemImage; } 41 } 42 43 public string Name { 44 get { return Problem == null ? ItemName : Problem.Name; } 45 set { throw new NotSupportedException("Name cannot be changed."); } 46 } 47 public string Description { 48 get { return Problem == null ? ItemDescription : Problem.Description; } 49 set { throw new NotSupportedException("Description cannot be changed."); } 50 } 51 public bool CanChangeName { 52 get { return false; } 53 } 54 public bool CanChangeDescription { 55 get { return false; } 56 } 57 58 public IKeyedItemCollection<string, IParameter> Parameters { 59 get { return Problem == null ? null : Problem.Parameters; } 60 } 61 35 public abstract class OKBProblem : Item, IProblem { 62 36 public virtual Type ProblemType { 63 37 get { return typeof(IProblem); } … … 71 45 get { return problem; } 72 46 private set { 73 if (value == null) throw new ArgumentNullException("Problem" );47 if (value == null) throw new ArgumentNullException("Problem", "Problem cannot be null."); 74 48 if (value != problem) { 75 49 CancelEventArgs<string> e = new CancelEventArgs<string>(value.Name); … … 94 68 } 95 69 70 public override Image ItemImage { 71 get { return Problem.ItemImage; } 72 } 73 74 public string Name { 75 get { return Problem.Name; } 76 set { throw new NotSupportedException("Name cannot be changed."); } 77 } 78 public string Description { 79 get { return Problem.Description; } 80 set { throw new NotSupportedException("Description cannot be changed."); } 81 } 82 public bool CanChangeName { 83 get { return false; } 84 } 85 public bool CanChangeDescription { 86 get { return false; } 87 } 88 89 public IKeyedItemCollection<string, IParameter> Parameters { 90 get { return Problem.Parameters; } 91 } 92 96 93 public IParameter SolutionCreatorParameter { 97 get { return Problem == null ? null : Problem.SolutionCreatorParameter; }94 get { return Problem.SolutionCreatorParameter; } 98 95 } 99 96 public ISolutionCreator SolutionCreator { 100 get { return Problem == null ? null : Problem.SolutionCreator; }97 get { return Problem.SolutionCreator; } 101 98 } 102 99 public IParameter EvaluatorParameter { 103 get { return Problem == null ? null : Problem.EvaluatorParameter; }100 get { return Problem.EvaluatorParameter; } 104 101 } 105 102 public IEvaluator Evaluator { 106 get { return Problem == null ? null : Problem.Evaluator; }103 get { return Problem.Evaluator; } 107 104 } 108 105 public IEnumerable<IOperator> Operators { 109 get { return Problem == null ? Enumerable.Empty<IOperator>() : Problem.Operators; }106 get { return Problem.Operators; } 110 107 } 111 108 … … 118 115 [Storable(Name = "Problem")] 119 116 private IProblem StorableProblem { 120 get { return Problem; } 121 set { Problem = value; } 117 get { return problem; } 118 set { 119 problem = value; 120 RegisterProblemEvents(); 121 } 122 122 } 123 123 #endregion … … 129 129 problemId = original.problemId; 130 130 problem = cloner.Clone(original.problem); 131 } 132 protected OKBProblem() 131 RegisterProblemEvents(); 132 } 133 protected OKBProblem(IProblem initialProblem) 133 134 : base() { 135 if (initialProblem == null) throw new ArgumentNullException("initialProblem", "Initial problem cannot be null."); 134 136 problemId = -1; 135 } 136 137 public override IDeepCloneable Clone(Cloner cloner) { 138 return new OKBProblem(this, cloner); 137 problem = initialProblem; 138 RegisterProblemEvents(); 139 139 } 140 140 … … 154 154 155 155 public void CollectParameterValues(IDictionary<string, IItem> values) { 156 if (Problem != null)Problem.CollectParameterValues(values);156 Problem.CollectParameterValues(values); 157 157 } 158 158 159 159 #region Events 160 public event EventHandler ProblemChanged; 161 protected virtual void OnProblemChanged() { 162 EventHandler handler = ProblemChanged; 163 if (handler != null) handler(this, EventArgs.Empty); 164 } 160 165 public event EventHandler<CancelEventArgs<string>> NameChanging; 161 166 protected virtual void OnNameChanging(CancelEventArgs<string> e) { … … 171 176 protected virtual void OnDescriptionChanged() { 172 177 var handler = DescriptionChanged; 173 if (handler != null) handler(this, EventArgs.Empty);174 }175 public event EventHandler ProblemChanged;176 protected virtual void OnProblemChanged() {177 EventHandler handler = ProblemChanged;178 178 if (handler != null) handler(this, EventArgs.Empty); 179 179 }
Note: See TracChangeset
for help on using the changeset viewer.