Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/20/08 11:11:03 (16 years ago)
Author:
gkronber
Message:

worked on control for CEDMA problem importer. #419 (Refactor CEDMA plugins)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/ProblemView.cs

    r1003 r1042  
    3030using HeuristicLab.Core;
    3131using HeuristicLab.DataAnalysis;
     32using System.Diagnostics;
    3233
    3334namespace HeuristicLab.CEDMA.Core {
     
    4243    protected override void UpdateControls() {
    4344      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      }
    4557    }
    4658
    4759    private void importButton_Click(object sender, EventArgs e) {
    48       if(openFileDialog.ShowDialog(this) == DialogResult.OK) {
     60      if (openFileDialog.ShowDialog(this) == DialogResult.OK) {
    4961        DatasetParser parser = new DatasetParser();
    5062        bool success = false;
     
    5365            parser.Import(openFileDialog.FileName, true);
    5466            success = true;
    55           } catch(DataFormatException ex) {
     67          }
     68          catch (DataFormatException ex) {
    5669            ShowWarningMessageBox(ex);
    5770            // not possible to parse strictly => clear and try to parse non-strict
     
    6073            success = true;
    6174          }
    62         } catch(DataFormatException ex) {
     75        }
     76        catch (DataFormatException ex) {
    6377          // if the non-strict parsing also failed then show the exception
    6478          ShowErrorMessageBox(ex);
    6579        }
    66         if(success) {
     80        if (success) {
    6781          Dataset dataset = (Dataset)problem.DataSet;
    6882          dataset.Rows = parser.Rows;
     
    7286          dataset.Samples = new double[dataset.Rows * dataset.Columns];
    7387          Array.Copy(parser.Samples, dataset.Samples, dataset.Columns * dataset.Rows);
     88          datasetView.Dataset = problem.DataSet;
     89
    7490          problem.TrainingSamplesStart = parser.TrainingSamplesStart;
    7591          problem.ValidationSamplesEnd = parser.TrainingSamplesStart;
     
    8298
    8399          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);
    86102          }
    87103          Refresh();
     
    106122      sb.Append("Sorry, but something went wrong!\n\n" + ex.Message + "\n\n" + ex.StackTrace);
    107123
    108       while(ex.InnerException != null) {
     124      while (ex.InnerException != null) {
    109125        ex = ex.InnerException;
    110126        sb.Append("\n\n-----\n\n" + ex.Message + "\n\n" + ex.StackTrace);
     
    112128      return sb.ToString();
    113129    }
     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    }
    114206  }
    115207}
Note: See TracChangeset for help on using the changeset viewer.