Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/21/09 20:23:47 (15 years ago)
Author:
gkronber
Message:

Refactored CEDMA dispatcher and CEDMA server view to allow different modeling scenarios for each variable. #754

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.CEDMA.Server/3.3/ProblemView.cs

    r2290 r2375  
    3535namespace HeuristicLab.CEDMA.Server {
    3636  public partial class ProblemView : ViewBase {
    37     private Problem problem;
     37    private Dataset dataset;
    3838
    39     public ProblemView(Problem problem) {
    40       this.problem = problem;
    41       problem.Changed += (sender, args) => UpdateControls();
     39    public ProblemView(Dataset dataset) {
     40      this.dataset = dataset;
    4241      InitializeComponent();
     42      datasetView.Dataset = dataset;
     43      dataset.Changed += (sender, args) => UpdateControls();
    4344      UpdateControls();
    44     }
    45 
    46     protected override void UpdateControls() {
    47       base.UpdateControls();
    48       trainingSamplesStartTextBox.Text = problem.TrainingSamplesStart.ToString();
    49       trainingSamplesEndTextBox.Text = problem.TrainingSamplesEnd.ToString();
    50       validationSamplesStartTextBox.Text = problem.ValidationSamplesStart.ToString();
    51       validationSamplesEndTextBox.Text = problem.ValidationSamplesEnd.ToString();
    52       testSamplesStartTextBox.Text = problem.TestSamplesStart.ToString();
    53       testSamplesEndTextBox.Text = problem.TestSamplesEnd.ToString();
    54       minTimeOffsetTextBox.Text = problem.MinTimeOffset.ToString();
    55       maxTimeOffsetTextBox.Text = problem.MaxTimeOffset.ToString();
    56       autoregressiveCheckBox.Checked = problem.AutoRegressive;
    57       switch (problem.LearningTask) {
    58         case LearningTask.Classification: classificationRadioButton.Checked = true; break;
    59         case LearningTask.Regression: regressionRadioButton.Checked = true; break;
    60         case LearningTask.TimeSeries: timeSeriesRadioButton.Checked = true; break;
    61       }
    6245    }
    6346
     
    8467        }
    8568        if (success) {
    86           Dataset dataset = (Dataset)problem.Dataset;
    8769          dataset.Rows = parser.Rows;
    8870          dataset.Columns = parser.Columns;
     
    9072          dataset.Samples = new double[dataset.Rows * dataset.Columns];
    9173          Array.Copy(parser.Samples, dataset.Samples, dataset.Columns * dataset.Rows);
    92           datasetView1.Dataset = problem.Dataset;
     74          datasetView.Dataset = dataset;
    9375
    94           problem.TrainingSamplesStart = parser.TrainingSamplesStart;
    95           problem.ValidationSamplesEnd = parser.TrainingSamplesStart;
    96           problem.TrainingSamplesEnd = parser.TrainingSamplesEnd;
    97           problem.ValidationSamplesStart = parser.ValidationSamplesStart;
    98           problem.ValidationSamplesEnd = parser.ValidationSamplesEnd;
    99           problem.TestSamplesStart = parser.TestSamplesStart;
    100           problem.TestSamplesEnd = parser.TestSamplesEnd;
    10176          for (int i = 0; i < parser.VariableNames.Length; i++) {
    10277            dataset.SetVariableName(i, parser.VariableNames[i]);
    10378          }
    10479
    105           problem.FireChanged();
     80
    10681          Refresh();
    10782        }
     
    10984    }
    11085
    111     private void autoregressiveCheckBox_CheckedChanged(object sender, EventArgs e) {
    112       problem.AutoRegressive = autoregressiveCheckBox.Checked;
    113       problem.FireChanged();
    114     }
    115 
    116     private void samplesTextBox_Validating(object sender, CancelEventArgs e) {
    117       try {
    118         int trainingStart = int.Parse(trainingSamplesStartTextBox.Text);
    119         int trainingEnd = int.Parse(trainingSamplesEndTextBox.Text);
    120         int validationStart = int.Parse(validationSamplesStartTextBox.Text);
    121         int validationEnd = int.Parse(validationSamplesEndTextBox.Text);
    122         int testStart = int.Parse(testSamplesStartTextBox.Text);
    123         int testEnd = int.Parse(testSamplesEndTextBox.Text);
    124         if (trainingStart < 0 || validationStart < 0 || testStart < 0 ||
    125           trainingEnd >= problem.Dataset.Rows || validationEnd >= problem.Dataset.Rows || testEnd >= problem.Dataset.Rows ||
    126           trainingStart >= trainingEnd ||
    127           validationStart >= validationEnd ||
    128           testStart >= testEnd ||
    129           IsOverlapping(trainingStart, trainingEnd, validationStart, validationEnd) ||
    130           IsOverlapping(trainingStart, trainingEnd, testStart, testEnd) ||
    131           IsOverlapping(validationStart, validationEnd, testStart, testEnd))
    132           ColorSamplesTextBoxes(Color.Red);
    133         else
    134           ColorSamplesTextBoxes(Color.White);
    135       }
    136       catch (FormatException ex) {
    137         ColorSamplesTextBoxes(Color.Red);
    138       }
    139     }
    140 
    141     private void samplesTextBox_Validated(object sender, EventArgs e) {
    142       problem.TrainingSamplesStart = int.Parse(trainingSamplesStartTextBox.Text);
    143       problem.TrainingSamplesEnd = int.Parse(trainingSamplesEndTextBox.Text);
    144       problem.ValidationSamplesStart = int.Parse(validationSamplesStartTextBox.Text);
    145       problem.ValidationSamplesEnd = int.Parse(validationSamplesEndTextBox.Text);
    146       problem.TestSamplesStart = int.Parse(testSamplesStartTextBox.Text);
    147       problem.TestSamplesEnd = int.Parse(testSamplesEndTextBox.Text);
    148       problem.FireChanged();
    149     }
    150 
    151     private void ColorSamplesTextBoxes(Color color) {
    152       trainingSamplesStartTextBox.BackColor = color;
    153       trainingSamplesEndTextBox.BackColor = color;
    154       validationSamplesStartTextBox.BackColor = color;
    155       validationSamplesEndTextBox.BackColor = color;
    156       testSamplesStartTextBox.BackColor = color;
    157       testSamplesEndTextBox.BackColor = color;
    158     }
    159 
    160     private bool IsOverlapping(int x0, int y0, int x1, int y1) {
    161       Trace.Assert(x0 <= y0 && x1 <= y1);
    162       int tmp;
    163       // make sure that x0,y0 is the left interval
    164       if (x1 < x0) {
    165         tmp = x1;
    166         x1 = x0;
    167         x0 = tmp;
    168         tmp = y1;
    169         y1 = y0;
    170         y0 = tmp;
    171       }
    172       return y0 > x1;
    173     }
    17486    private void ShowWarningMessageBox(Exception ex) {
    17587      MessageBox.Show(ex.Message,
     
    195107    }
    196108
    197     private void radioButton_CheckedChanged(object sender, EventArgs e) {
    198       minTimeOffsetLabel.Enabled = timeSeriesRadioButton.Checked;
    199       minTimeOffsetTextBox.Enabled = timeSeriesRadioButton.Checked;
    200       maxTimeOffsetLabel.Enabled = timeSeriesRadioButton.Checked;
    201       maxTimeOffsetTextBox.Enabled = timeSeriesRadioButton.Checked;
    202       autoregressiveCheckBox.Enabled = timeSeriesRadioButton.Checked;
    203       autoregressiveLabel.Enabled = timeSeriesRadioButton.Checked;
    204       if (timeSeriesRadioButton.Checked) problem.LearningTask = LearningTask.TimeSeries;
    205       else if (classificationRadioButton.Checked) problem.LearningTask = LearningTask.Classification;
    206       else if (regressionRadioButton.Checked) problem.LearningTask = LearningTask.Regression;
    207       problem.FireChanged();
    208     }
    209 
    210     private void timeOffsetTextBox_Validating(object sender, CancelEventArgs e) {
    211       int min, max;
    212       e.Cancel = !int.TryParse(minTimeOffsetTextBox.Text, out min);
    213       e.Cancel = !int.TryParse(maxTimeOffsetTextBox.Text, out max);
    214       e.Cancel = min > max;
    215     }
    216     private void timeOffsetTextBox_Validated(object sender, EventArgs e) {
    217       problem.MinTimeOffset = int.Parse(minTimeOffsetTextBox.Text);
    218       problem.MaxTimeOffset = int.Parse(maxTimeOffsetTextBox.Text);
    219       problem.FireChanged();
    220     }
    221109  }
    222110}
Note: See TracChangeset for help on using the changeset viewer.