Changeset 3447
- Timestamp:
- 04/20/10 17:37:53 (15 years ago)
- Location:
- trunk/sources
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionBubbleChartView.cs
r3441 r3447 33 33 using HeuristicLab.Common; 34 34 using HeuristicLab.Core; 35 using HeuristicLab.Data; 35 36 36 37 namespace HeuristicLab.Optimization.Views { … … 82 83 } 83 84 85 public IStringConvertibleMatrix Matrix { 86 get { return this.Content; } 87 } 88 84 89 protected override void RegisterContentEvents() { 85 90 base.RegisterContentEvents(); … … 146 151 this.yAxisComboBox.Items.Clear(); 147 152 this.sizeComboBox.Items.Clear(); 148 this.xAxisComboBox.Items.AddRange( Content.ColumnNames.ToArray());149 this.yAxisComboBox.Items.AddRange( Content.ColumnNames.ToArray());153 this.xAxisComboBox.Items.AddRange(Matrix.ColumnNames.ToArray()); 154 this.yAxisComboBox.Items.AddRange(Matrix.ColumnNames.ToArray()); 150 155 this.sizeComboBox.Items.Add(constantLabel); 151 this.sizeComboBox.Items.AddRange( Content.ColumnNames.ToArray());156 this.sizeComboBox.Items.AddRange(Matrix.ColumnNames.ToArray()); 152 157 } 153 158 … … 194 199 return null; 195 200 196 string value = Content.GetValue(row, column); 197 double d; 198 double? ret = null; 199 if (double.TryParse(value, out d)) 200 ret = d; 201 else if (value != null) 202 ret = GetCategoricalValue(column, value); 201 IItem value = Content.GetValue(row, column); 202 DoubleValue doubleValue = value as DoubleValue; 203 IntValue intValue = value as IntValue; 204 double ret; 205 206 if (doubleValue != null) 207 ret = doubleValue.Value; 208 else if (intValue != null) 209 ret = intValue.Value; 210 else 211 ret = GetCategoricalValue(column, Matrix.GetValue(row, column)); 212 203 213 return ret; 204 214 } … … 361 371 builder.AppendLine(this.Content.ElementAt(runIndex).Name); 362 372 int columnIndex = 0; 363 foreach (string columnName in this.Content.ColumnNames) {373 foreach (string columnName in Matrix.ColumnNames) { 364 374 builder.Append(columnName); 365 375 builder.Append(": "); 366 builder.AppendLine( this.Content.GetValue(runIndex, columnIndex));376 builder.AppendLine(Matrix.GetValue(runIndex, columnIndex)); 367 377 columnIndex++; 368 378 } -
trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionTabularView.cs
r3423 r3447 31 31 using HeuristicLab.Data.Views; 32 32 using HeuristicLab.Collections; 33 using HeuristicLab.Core; 33 34 34 35 namespace HeuristicLab.Optimization.Views { … … 68 69 } 69 70 } 71 72 73 protected override int[] Sort(IEnumerable<KeyValuePair<int, SortOrder>> sortedColumns) { 74 int[] newSortedIndex = Enumerable.Range(0, Content.Count).ToArray(); 75 RunCollectionRowComparer rowComparer = new RunCollectionRowComparer(); 76 if (sortedColumns.Count() != 0) { 77 rowComparer.SortedIndizes = sortedColumns; 78 rowComparer.Matrix = Content; 79 Array.Sort(newSortedIndex, rowComparer); 80 } 81 return newSortedIndex; 82 } 83 84 public class RunCollectionRowComparer : IComparer<int> { 85 public RunCollectionRowComparer() { 86 } 87 88 private List<KeyValuePair<int, SortOrder>> sortedIndizes; 89 public IEnumerable<KeyValuePair<int, SortOrder>> SortedIndizes { 90 get { return this.sortedIndizes; } 91 set { sortedIndizes = new List<KeyValuePair<int, SortOrder>>(value); } 92 } 93 private RunCollection matrix; 94 public RunCollection Matrix { 95 get { return this.matrix; } 96 set { this.matrix = value; } 97 } 98 99 public int Compare(int x, int y) { 100 int result = 0; 101 IItem value1, value2; 102 IComparable comparable1, comparable2; 103 104 if (matrix == null) 105 throw new InvalidOperationException("Could not sort IStringConvertibleMatrix if the matrix member is null."); 106 if (sortedIndizes == null) 107 return 0; 108 109 foreach (KeyValuePair<int, SortOrder> pair in sortedIndizes.Where(p => p.Value != SortOrder.None)) { 110 value1 = matrix.GetValue(x, pair.Key); 111 value2 = matrix.GetValue(y, pair.Key); 112 comparable1 = value1 as IComparable; 113 comparable2 = value2 as IComparable; 114 if (comparable1 != null) 115 result = comparable1.CompareTo(comparable2); 116 else { 117 string string1 = value1 != null ? value1.ToString() : string.Empty; 118 string string2 = value2 != null ? value2.ToString() : string.Empty; 119 result = string1.CompareTo(string2); 120 } 121 if (pair.Value == SortOrder.Descending) 122 result *= -1; 123 if (result != 0) 124 return result; 125 } 126 return result; 127 } 128 } 70 129 } 71 130 } -
trunk/sources/HeuristicLab.Optimization/3.3/RunCollection.cs
r3441 r3447 35 35 public RunCollection(int capacity) : base(capacity) { Initialize(); } 36 36 public RunCollection(IEnumerable<IRun> collection) : base(collection) { Initialize(); this.OnItemsAdded(collection); } 37 private void Initialize() { 38 parameterNames = new List<string>(); 39 resultNames = new List<string>(); 40 } 37 41 38 42 protected static Type[] viewableDataTypes = new Type[]{typeof(BoolValue), typeof(DoubleValue), typeof(IntValue), … … 82 86 } 83 87 84 private void Initialize() { 85 parameterNames = new List<string>(); 86 resultNames = new List<string>(); 87 } 88 88 89 89 90 private bool AddParameter(string name, IItem value) { … … 122 123 } 123 124 125 public IItem GetValue(int rowIndex, int columnIndex) { 126 IRun run = this.list[rowIndex]; 127 IItem value = null; 128 129 if (columnIndex < parameterNames.Count) { 130 string parameterName = parameterNames[columnIndex]; 131 if (run.Parameters.ContainsKey(parameterName)) 132 value = run.Parameters[parameterName]; 133 } else if (columnIndex < parameterNames.Count + resultNames.Count) { 134 string resultName = resultNames[columnIndex - parameterNames.Count]; 135 if (run.Results.ContainsKey(resultName)) 136 value = run.Results[resultName]; 137 } 138 return value; 139 } 140 124 141 #region IStringConvertibleMatrix Members 125 142 [Storable] … … 127 144 [Storable] 128 145 private List<string> resultNames; 129 public intRows {146 int IStringConvertibleMatrix.Rows { 130 147 get { return this.Count; } 131 set { throw new System.NotImplementedException(); }132 } 133 public intColumns {148 set { throw new NotSupportedException(); } 149 } 150 int IStringConvertibleMatrix.Columns { 134 151 get { return parameterNames.Count + resultNames.Count; } 135 152 set { throw new NotSupportedException(); } 136 153 } 137 public IEnumerable<string>ColumnNames {154 IEnumerable<string> IStringConvertibleMatrix.ColumnNames { 138 155 get { 139 156 List<string> value = new List<string>(parameterNames); … … 143 160 set { throw new NotSupportedException(); } 144 161 } 145 public IEnumerable<string>RowNames {162 IEnumerable<string> IStringConvertibleMatrix.RowNames { 146 163 get { return list.Select(x => x.Name).ToList(); } 147 164 set { throw new NotSupportedException(); } 148 165 } 149 public boolSortableView {166 bool IStringConvertibleMatrix.SortableView { 150 167 get { return true; } 151 168 set { throw new NotSupportedException(); } 152 169 } 153 public bool ReadOnly { 154 get { return false; } 155 } 156 157 public string GetValue(int rowIndex, int columnIndex) { 158 IRun run = this.list[rowIndex]; 159 string value = string.Empty; 160 161 if (columnIndex < parameterNames.Count) { 162 string parameterName = parameterNames[columnIndex]; 163 if (run.Parameters.ContainsKey(parameterName)) { 164 IItem param = run.Parameters[parameterName]; 165 if (param != null) value = param.ToString(); 166 } 167 } else if (columnIndex < parameterNames.Count + resultNames.Count) { 168 string resultName = resultNames[columnIndex - parameterNames.Count]; 169 if (run.Results.ContainsKey(resultName)) { 170 IItem result = run.Results[resultName]; 171 if (result != null) value = result.ToString(); 172 } 173 } 174 return value; 170 bool IStringConvertibleMatrix.ReadOnly { 171 get { return true; } 172 } 173 174 string IStringConvertibleMatrix.GetValue(int rowIndex, int columnIndex) { 175 IItem value = GetValue(rowIndex, columnIndex); 176 if (value == null) 177 return string.Empty; 178 return value.ToString(); 175 179 } 176 180
Note: See TracChangeset
for help on using the changeset viewer.