Changeset 14029 for branches/crossvalidation-2434/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionTableView.cs
- Timestamp:
- 07/08/16 14:40:02 (8 years ago)
- Location:
- branches/crossvalidation-2434
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/crossvalidation-2434
- Property svn:mergeinfo changed
-
branches/crossvalidation-2434/HeuristicLab.Optimization.Views
- Property svn:mergeinfo changed
-
branches/crossvalidation-2434/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionTableView.cs
r12692 r14029 121 121 } 122 122 123 protected override void UpdateColumnHeaders() { 124 HashSet<string> visibleColumnNames = new HashSet<string>(dataGridView.Columns.OfType<DataGridViewColumn>() 125 .Where(c => c.Visible && !string.IsNullOrEmpty(c.HeaderText)).Select(c => c.HeaderText)); 126 123 public override void UpdateColumnHeaders() { 124 string[] colNames = base.Content.ColumnNames.ToArray(); 125 int colCount = colNames.Length; 127 126 for (int i = 0; i < dataGridView.ColumnCount; i++) { 128 if (i < base.Content.ColumnNames.Count())129 dataGridView.Columns[i].HeaderText = base.Content.ColumnNames.ElementAt(i);127 if (i < colCount) 128 dataGridView.Columns[i].HeaderText = colNames[i]; 130 129 else 131 130 dataGridView.Columns[i].HeaderText = "Column " + (i + 1); 131 } 132 133 HashSet<string> visibleColumnNames = new HashSet<string>( 134 dataGridView.Columns.OfType<DataGridViewColumn>() 135 .Where(c => c.Visible) 136 .Where(c => !string.IsNullOrEmpty(c.HeaderText)) 137 .Where(c => !IsConstant(c.HeaderText)) 138 .Select(c => c.HeaderText)); 139 140 for (int i = 0; i < dataGridView.ColumnCount; i++) { 132 141 dataGridView.Columns[i].Visible = visibleColumnNames.Count == 0 || visibleColumnNames.Contains(dataGridView.Columns[i].HeaderText); 133 142 } 143 } 144 145 // returns true when all values in the column are the same (missing values are included in the count) 146 private bool IsConstant(string columnName) { 147 Func<IRun, string, string> GetStringValue = (IRun r, string colName) => { 148 // also include missing values in the count 149 IItem v = null; 150 if (r.Parameters.TryGetValue(colName, out v)) return v.ToString(); 151 if (r.Results.TryGetValue(colName, out v)) return v.ToString(); 152 return string.Empty; 153 }; 154 155 var firstRun = Content.First(); 156 string firstValue = GetStringValue(firstRun, columnName); 157 return Content.Skip(1).All(run => firstValue == GetStringValue(run, columnName)); 134 158 } 135 159
Note: See TracChangeset
for help on using the changeset viewer.