- Timestamp:
- 12/20/08 11:11:03 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/ProblemView.cs
r1003 r1042 30 30 using HeuristicLab.Core; 31 31 using HeuristicLab.DataAnalysis; 32 using System.Diagnostics; 32 33 33 34 namespace HeuristicLab.CEDMA.Core { … … 42 43 protected override void UpdateControls() { 43 44 base.UpdateControls(); 44 // TASK update text-boxes and datasetview 45 trainingSamplesStartTextBox.Text = problem.TrainingSamplesStart.ToString(); 46 trainingSamplesEndTextBox.Text = problem.TrainingSamplesEnd.ToString(); 47 validationSamplesStartTextBox.Text = problem.ValidationSamplesStart.ToString(); 48 validationSamplesEndTextBox.Text = problem.ValidationSamplesEnd.ToString(); 49 testSamplesStartTextBox.Text = problem.TestSamplesStart.ToString(); 50 testSamplesEndTextBox.Text = problem.TestSamplesEnd.ToString(); 51 targetsListBox.Items.Clear(); 52 inputsListBox.Items.Clear(); 53 for (int i = 0; i < problem.DataSet.Columns; i++) { 54 targetsListBox.Items.Add(problem.DataSet.VariableNames[i], problem.AllowedTargetVariables.Contains(i)); 55 inputsListBox.Items.Add(problem.DataSet.VariableNames[i], problem.AllowedInputVariables.Contains(i)); 56 } 45 57 } 46 58 47 59 private void importButton_Click(object sender, EventArgs e) { 48 if (openFileDialog.ShowDialog(this) == DialogResult.OK) {60 if (openFileDialog.ShowDialog(this) == DialogResult.OK) { 49 61 DatasetParser parser = new DatasetParser(); 50 62 bool success = false; … … 53 65 parser.Import(openFileDialog.FileName, true); 54 66 success = true; 55 } catch(DataFormatException ex) { 67 } 68 catch (DataFormatException ex) { 56 69 ShowWarningMessageBox(ex); 57 70 // not possible to parse strictly => clear and try to parse non-strict … … 60 73 success = true; 61 74 } 62 } catch(DataFormatException ex) { 75 } 76 catch (DataFormatException ex) { 63 77 // if the non-strict parsing also failed then show the exception 64 78 ShowErrorMessageBox(ex); 65 79 } 66 if (success) {80 if (success) { 67 81 Dataset dataset = (Dataset)problem.DataSet; 68 82 dataset.Rows = parser.Rows; … … 72 86 dataset.Samples = new double[dataset.Rows * dataset.Columns]; 73 87 Array.Copy(parser.Samples, dataset.Samples, dataset.Columns * dataset.Rows); 88 datasetView.Dataset = problem.DataSet; 89 74 90 problem.TrainingSamplesStart = parser.TrainingSamplesStart; 75 91 problem.ValidationSamplesEnd = parser.TrainingSamplesStart; … … 82 98 83 99 List<int> nonInputVariables = parser.NonInputVariables; 84 for (int i = 0; i < dataset.Columns; i++) {85 if (!nonInputVariables.Contains(i)) problem.AllowedInputVariables.Add(i);100 for (int i = 0; i < dataset.Columns; i++) { 101 if (!nonInputVariables.Contains(i)) problem.AllowedInputVariables.Add(i); 86 102 } 87 103 Refresh(); … … 106 122 sb.Append("Sorry, but something went wrong!\n\n" + ex.Message + "\n\n" + ex.StackTrace); 107 123 108 while (ex.InnerException != null) {124 while (ex.InnerException != null) { 109 125 ex = ex.InnerException; 110 126 sb.Append("\n\n-----\n\n" + ex.Message + "\n\n" + ex.StackTrace); … … 112 128 return sb.ToString(); 113 129 } 130 131 private void targetsListBox_ItemCheck(object sender, ItemCheckEventArgs e) { 132 if (e.NewValue == CheckState.Checked && !problem.AllowedTargetVariables.Contains(e.Index)) 133 problem.AllowedTargetVariables.Add(e.Index); 134 else if (e.NewValue == CheckState.Unchecked && problem.AllowedTargetVariables.Contains(e.Index)) 135 problem.AllowedTargetVariables.Remove(e.Index); 136 } 137 138 private void inputsListBox_ItemCheck(object sender, ItemCheckEventArgs e) { 139 if (e.NewValue == CheckState.Checked && !problem.AllowedInputVariables.Contains(e.Index)) 140 problem.AllowedInputVariables.Add(e.Index); 141 else if (e.NewValue == CheckState.Unchecked && problem.AllowedInputVariables.Contains(e.Index)) 142 problem.AllowedInputVariables.Remove(e.Index); 143 } 144 145 private void autoregressiveCheckBox_CheckedChanged(object sender, EventArgs e) { 146 problem.AutoRegressive = autoregressiveCheckBox.Checked; 147 } 148 149 private void samplesTextBox_Validating(object sender, CancelEventArgs e) { 150 try { 151 int trainingStart = int.Parse(trainingSamplesStartTextBox.Text); 152 int trainingEnd = int.Parse(trainingSamplesEndTextBox.Text); 153 int validationStart = int.Parse(validationSamplesStartTextBox.Text); 154 int validationEnd = int.Parse(validationSamplesEndTextBox.Text); 155 int testStart = int.Parse(testSamplesStartTextBox.Text); 156 int testEnd = int.Parse(testSamplesEndTextBox.Text); 157 if (trainingStart < 0 || validationStart < 0 || testStart < 0 || 158 trainingEnd >= problem.DataSet.Rows || validationEnd >= problem.DataSet.Rows || testEnd >= problem.DataSet.Rows || 159 trainingStart >= trainingEnd || 160 validationStart >= validationEnd || 161 testStart >= testEnd || 162 IsOverlapping(trainingStart, trainingEnd, validationStart, validationEnd) || 163 IsOverlapping(trainingStart, trainingEnd, testStart, testEnd) || 164 IsOverlapping(validationStart, validationEnd, testStart, testEnd)) 165 ColorSamplesTextBoxes(Color.Red); 166 else 167 ColorSamplesTextBoxes(Color.White); 168 } 169 catch (FormatException ex) { 170 ColorSamplesTextBoxes(Color.Red); 171 } 172 } 173 174 private void samplesTextBox_Validated(object sender, EventArgs e) { 175 problem.TrainingSamplesStart = int.Parse(trainingSamplesStartTextBox.Text); 176 problem.TrainingSamplesEnd = int.Parse(trainingSamplesEndTextBox.Text); 177 problem.ValidationSamplesStart = int.Parse(validationSamplesStartTextBox.Text); 178 problem.ValidationSamplesEnd = int.Parse(validationSamplesEndTextBox.Text); 179 problem.TestSamplesStart = int.Parse(testSamplesStartTextBox.Text); 180 problem.TestSamplesEnd = int.Parse(testSamplesEndTextBox.Text); 181 } 182 183 private void ColorSamplesTextBoxes(Color color) { 184 trainingSamplesStartTextBox.BackColor = color; 185 trainingSamplesEndTextBox.BackColor = color; 186 validationSamplesStartTextBox.BackColor = color; 187 validationSamplesEndTextBox.BackColor = color; 188 testSamplesStartTextBox.BackColor = color; 189 testSamplesEndTextBox.BackColor = color; 190 } 191 192 private bool IsOverlapping(int x0, int y0, int x1, int y1) { 193 Trace.Assert(x0 <= y0 && x1 <= y1); 194 int tmp; 195 // make sure that x0,y0 is the left interval 196 if (x1 < x0) { 197 tmp = x1; 198 x1 = x0; 199 x0 = tmp; 200 tmp = y1; 201 y1 = y0; 202 y0 = tmp; 203 } 204 return y0 > x1; 205 } 114 206 } 115 207 }
Note: See TracChangeset
for help on using the changeset viewer.