Changeset 10540 for trunk/sources


Ignore:
Timestamp:
03/05/14 15:08:11 (6 years ago)
Author:
mkommend
Message:

#1758: Reimplemented functionality to load new problem data to data analysis solution and redesigned the according views.

  • Added setter for the target variable of regression and classification problem data.
  • Added functionality to check the compatibility of problem data.
  • Added functionality to adjust the properties of a problem data.
  • Added flowLayoutPanel with according buttons for loading a new problem data, simplifying and exporting data analysis solutions.
  • TradingProblemData currently throws a NotSupportedException when the properties should be adjusted.
Location:
trunk/sources
Files:
24 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views-3.4.csproj

    r8636 r10540  
    152152      <Private>False</Private>
    153153    </ProjectReference>
     154    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
     155      <Project>{0e27a536-1c4a-4624-a65e-dc4f4f23e3e1}</Project>
     156      <Name>HeuristicLab.Common.Resources-3.3</Name>
     157      <Private>False</Private>
     158    </ProjectReference>
    154159    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
    155160      <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views/3.4/SymbolicClassificationSolutionView.Designer.cs

    r9973 r10540  
    4545    /// </summary>
    4646    private void InitializeComponent() {
     47      this.exportButton = new System.Windows.Forms.Button();
     48      this.exportFileDialog = new System.Windows.Forms.SaveFileDialog();
    4749      this.btnSimplify = new System.Windows.Forms.Button();
    4850      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
     
    5355      this.detailsGroupBox.SuspendLayout();
    5456      this.SuspendLayout();
    55       exportButton.Visible = false;
    5657      //
    57       // splitContainer
     58      // flowLayoutPanel
    5859      //
    59       //
    60       // splitContainer.Panel1
    61       //
    62       this.splitContainer.Panel1.Controls.Add(this.btnSimplify);
     60      this.flowLayoutPanel.Controls.Add(this.btnSimplify);
     61      this.flowLayoutPanel.Controls.Add(this.exportButton);
    6362      //
    6463      // btnSimplify
    6564      //
    66       this.btnSimplify.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
    67       this.btnSimplify.Location = new System.Drawing.Point(172, 4);
     65      this.btnSimplify.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
     66      this.btnSimplify.Image = HeuristicLab.Common.Resources.VSImageLibrary.FormulaEvaluator;
     67      this.btnSimplify.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
    6868      this.btnSimplify.Name = "btnSimplify";
    69       this.btnSimplify.Size = new System.Drawing.Size(75, 23);
    70       this.btnSimplify.TabIndex = 6;
    71       this.btnSimplify.Text = "Simplify";
     69      this.btnSimplify.Size = new System.Drawing.Size(105, 24);
     70      this.btnSimplify.TabIndex = 7;
     71      this.btnSimplify.Text = "Simplify Model";
     72      this.btnSimplify.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
    7273      this.btnSimplify.UseVisualStyleBackColor = true;
    7374      this.btnSimplify.Click += new System.EventHandler(this.btn_SimplifyModel_Click);
     75      this.toolTip.SetToolTip(this.btnSimplify, "Simplify solution");
    7476      //
    75       // SymbolicDiscriminantFunctionClassificationSolutionView
     77      // exportButton
     78      //
     79      this.exportButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
     80      this.exportButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Statistics;
     81      this.exportButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
     82      this.exportButton.Name = "exportButton";
     83      this.exportButton.Size = new System.Drawing.Size(105, 24);
     84      this.exportButton.TabIndex = 8;
     85      this.exportButton.Text = "Export to Excel ";
     86      this.exportButton.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
     87      this.exportButton.UseVisualStyleBackColor = true;
     88      this.exportButton.Click += new System.EventHandler(this.exportButton_Click);
     89      //
     90      // SymbolicClassificationSolutionView
    7691      //
    7792      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
     
    88103    #endregion
    89104
     105    protected System.Windows.Forms.SaveFileDialog exportFileDialog;
     106    protected System.Windows.Forms.Button exportButton;
    90107    protected System.Windows.Forms.Button btnSimplify;
    91108  }
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views/3.4/SymbolicClassificationSolutionView.cs

    r9456 r10540  
    2121
    2222using System;
     23using System.ComponentModel;
    2324using System.Windows.Forms;
    2425using HeuristicLab.MainForm;
     26using HeuristicLab.Problems.DataAnalysis.Symbolic.Views;
    2527using HeuristicLab.Problems.DataAnalysis.Views;
    2628
     
    3840    }
    3941
     42    protected override void SetEnabledStateOfControls() {
     43      base.SetEnabledStateOfControls();
     44      btnSimplify.Enabled = Content != null && !Locked;
     45      exportButton.Enabled = Content != null && !Locked;
     46    }
     47
    4048    private void btn_SimplifyModel_Click(object sender, EventArgs e) {
    4149      var view = new InteractiveSymbolicClassificationSolutionSimplifierView();
     
    4351      view.Show();
    4452    }
     53
     54    private void exportButton_Click(object sender, EventArgs e) {
     55      var exporter = new SymbolicSolutionExcelExporter();
     56      exportFileDialog.Filter = exporter.FileTypeFilter;
     57      if (exportFileDialog.ShowDialog(this) == DialogResult.OK) {
     58
     59        var name = exportFileDialog.FileName;
     60        using (BackgroundWorker bg = new BackgroundWorker()) {
     61          MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, "Exportion solution to " + name + ".");
     62          bg.DoWork += (o, a) => exporter.Export(Content, name);
     63          bg.RunWorkerCompleted += (o, a) => MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().RemoveOperationProgressFromView(this);
     64          bg.RunWorkerAsync();
     65        }
     66      }
     67    }
    4568  }
    4669}
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views/3.4/SymbolicDiscriminantFunctionClassificationSolutionView.Designer.cs

    r9973 r10540  
    4545    /// </summary>
    4646    private void InitializeComponent() {
    47       System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SymbolicDiscriminantFunctionClassificationSolutionView));
     47      this.exportButton = new System.Windows.Forms.Button();
     48      this.exportFileDialog = new System.Windows.Forms.SaveFileDialog();
    4849      this.btnSimplify = new System.Windows.Forms.Button();
    4950      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
     
    5455      this.detailsGroupBox.SuspendLayout();
    5556      this.SuspendLayout();
    56       exportButton.Visible = false;
    5757      //
    58       // splitContainer
     58      // flowLayoutPanel
    5959      //
    60       //
    61       // splitContainer.Panel1
    62       //
    63       this.splitContainer.Panel1.Controls.Add(this.btnSimplify);
     60      this.flowLayoutPanel.Controls.Add(this.btnSimplify);
     61      this.flowLayoutPanel.Controls.Add(this.exportButton);
    6462      //
    6563      // btnSimplify
    6664      //
    67       this.btnSimplify.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
    68       this.btnSimplify.Location = new System.Drawing.Point(172, 4);
     65      this.btnSimplify.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
     66      this.btnSimplify.Image = HeuristicLab.Common.Resources.VSImageLibrary.FormulaEvaluator;
     67      this.btnSimplify.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
    6968      this.btnSimplify.Name = "btnSimplify";
    70       this.btnSimplify.Size = new System.Drawing.Size(75, 23);
    71       this.btnSimplify.TabIndex = 6;
    72       this.btnSimplify.Text = "Simplify";
     69      this.btnSimplify.Size = new System.Drawing.Size(105, 24);
     70      this.btnSimplify.TabIndex = 7;
     71      this.btnSimplify.Text = "Simplify Model";
     72      this.btnSimplify.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
    7373      this.btnSimplify.UseVisualStyleBackColor = true;
    7474      this.btnSimplify.Click += new System.EventHandler(this.btn_SimplifyModel_Click);
     75      this.toolTip.SetToolTip(this.btnSimplify, "Simplify solution");
     76      //
     77      // exportButton
     78      //
     79      this.exportButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
     80      this.exportButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Statistics;
     81      this.exportButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
     82      this.exportButton.Name = "exportButton";
     83      this.exportButton.Size = new System.Drawing.Size(105, 24);
     84      this.exportButton.TabIndex = 8;
     85      this.exportButton.Text = "Export to Excel ";
     86      this.exportButton.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
     87      this.exportButton.UseVisualStyleBackColor = true;
     88      this.exportButton.Click += new System.EventHandler(this.exportButton_Click);
    7589      //
    7690      // SymbolicDiscriminantFunctionClassificationSolutionView
     
    89103    #endregion
    90104
     105    protected System.Windows.Forms.SaveFileDialog exportFileDialog;
     106    protected System.Windows.Forms.Button exportButton;
    91107    protected System.Windows.Forms.Button btnSimplify;
    92108  }
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views/3.4/SymbolicDiscriminantFunctionClassificationSolutionView.cs

    r9456 r10540  
    2121
    2222using System;
     23using System.ComponentModel;
    2324using System.Windows.Forms;
    2425using HeuristicLab.MainForm;
     26using HeuristicLab.Problems.DataAnalysis.Symbolic.Views;
    2527using HeuristicLab.Problems.DataAnalysis.Views;
    2628
     
    3840    }
    3941
     42    protected override void SetEnabledStateOfControls() {
     43      base.SetEnabledStateOfControls();
     44      btnSimplify.Enabled = Content != null && !Locked;
     45      exportButton.Enabled = Content != null && !Locked;
     46    }
     47
    4048    private void btn_SimplifyModel_Click(object sender, EventArgs e) {
    4149      var view = new InteractiveSymbolicDiscriminantFunctionClassificationSolutionSimplifierView();
     
    4351      view.Show();
    4452    }
     53
     54    private void exportButton_Click(object sender, EventArgs e) {
     55      var exporter = new SymbolicSolutionExcelExporter();
     56      exportFileDialog.Filter = exporter.FileTypeFilter;
     57      if (exportFileDialog.ShowDialog(this) == DialogResult.OK) {
     58
     59        var name = exportFileDialog.FileName;
     60        using (BackgroundWorker bg = new BackgroundWorker()) {
     61          MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, "Exportion solution to " + name + ".");
     62          bg.DoWork += (o, a) => exporter.Export(Content, name);
     63          bg.RunWorkerCompleted += (o, a) => MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().RemoveOperationProgressFromView(this);
     64          bg.RunWorkerAsync();
     65        }
     66      }
     67    }
    4568  }
    4669}
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views-3.4.csproj

    r8600 r10540  
    157157      <Private>False</Private>
    158158    </ProjectReference>
     159    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
     160      <Project>{0e27a536-1c4a-4624-a65e-dc4f4f23e3e1}</Project>
     161      <Name>HeuristicLab.Common.Resources-3.3</Name>
     162      <Private>False</Private>
     163    </ProjectReference>
    159164    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
    160165      <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
     
    284289  -->
    285290  <PropertyGroup>
    286    <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
     291    <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
    287292set ProjectDir=$(ProjectDir)
    288293set SolutionDir=$(SolutionDir)
     
    291296call PreBuildEvent.cmd
    292297</PreBuildEvent>
    293 <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
     298    <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
    294299export ProjectDir=$(ProjectDir)
    295300export SolutionDir=$(SolutionDir)
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/SymbolicRegressionSolutionView.Designer.cs

    r9973 r10540  
    1919 */
    2020#endregion
     21
    2122
    2223namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views {
     
    4546    /// </summary>
    4647    private void InitializeComponent() {
     48      this.exportButton = new System.Windows.Forms.Button();
     49      this.exportFileDialog = new System.Windows.Forms.SaveFileDialog();
    4750      this.btnSimplify = new System.Windows.Forms.Button();
    4851      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
     
    5457      this.SuspendLayout();
    5558      //
    56       // splitContainer
     59      // flowLayoutPanel
    5760      //
    58       //
    59       // splitContainer.Panel1
    60       //
    61       this.splitContainer.Panel1.Controls.Add(this.btnSimplify);
    62       //
    63       // addButton
    64       //
    65       this.toolTip.SetToolTip(this.addButton, "Add");
    66       //
    67       // removeButton
    68       //
    69       this.toolTip.SetToolTip(this.removeButton, "Remove");
     61      this.flowLayoutPanel.Controls.Add(this.btnSimplify);
     62      this.flowLayoutPanel.Controls.Add(this.exportButton);
    7063      //
    7164      // btnSimplify
    7265      //
    73       this.btnSimplify.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
    74       this.btnSimplify.Location = new System.Drawing.Point(172, 4);
     66      this.btnSimplify.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
     67      this.btnSimplify.Image = HeuristicLab.Common.Resources.VSImageLibrary.FormulaEvaluator;
     68      this.btnSimplify.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
    7569      this.btnSimplify.Name = "btnSimplify";
    76       this.btnSimplify.Size = new System.Drawing.Size(75, 23);
    77       this.btnSimplify.TabIndex = 6;
    78       this.btnSimplify.Text = "Simplify";
     70      this.btnSimplify.TabIndex = 7;
     71      this.btnSimplify.Size = new System.Drawing.Size(105, 24);
     72      this.btnSimplify.Text = "Simplify Model";
     73      this.btnSimplify.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
    7974      this.btnSimplify.UseVisualStyleBackColor = true;
    8075      this.btnSimplify.Click += new System.EventHandler(this.btn_SimplifyModel_Click);
     76      this.toolTip.SetToolTip(this.btnSimplify, "Simplify solution");
     77      //
     78      // exportButton
     79      //
     80      this.exportButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
     81      this.exportButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Statistics;
     82      this.exportButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
     83      this.exportButton.Name = "exportButton";
     84      this.exportButton.Size = new System.Drawing.Size(105, 24);
     85      this.exportButton.TabIndex = 8;
     86      this.exportButton.Text = "Export to Excel ";
     87      this.exportButton.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
     88      this.exportButton.UseVisualStyleBackColor = true;
     89      this.exportButton.Click += new System.EventHandler(this.exportButton_Click);
    8190      //
    8291      // SymbolicRegressionSolutionView
     
    95104
    96105    #endregion
    97     private System.Windows.Forms.Button btnSimplify;
     106    protected System.Windows.Forms.SaveFileDialog exportFileDialog;
     107    protected System.Windows.Forms.Button exportButton;
     108    protected System.Windows.Forms.Button btnSimplify;
    98109  }
    99110}
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/SymbolicRegressionSolutionView.cs

    r9456 r10540  
    2121
    2222using System;
     23using System.ComponentModel;
    2324using System.Windows.Forms;
    2425using HeuristicLab.MainForm;
     26using HeuristicLab.Problems.DataAnalysis.Symbolic.Views;
    2527using HeuristicLab.Problems.DataAnalysis.Views;
    2628
     
    3840    }
    3941
     42    protected override void SetEnabledStateOfControls() {
     43      base.SetEnabledStateOfControls();
     44      btnSimplify.Enabled = Content != null && !Locked;
     45      exportButton.Enabled = Content != null && !Locked;
     46    }
     47
    4048    private void btn_SimplifyModel_Click(object sender, EventArgs e) {
    4149      InteractiveSymbolicRegressionSolutionSimplifierView view = new InteractiveSymbolicRegressionSolutionSimplifierView();
     
    4351      view.Show();
    4452    }
     53
     54    private void exportButton_Click(object sender, EventArgs e) {
     55      var exporter = new SymbolicSolutionExcelExporter();
     56      exportFileDialog.Filter = exporter.FileTypeFilter;
     57      if (exportFileDialog.ShowDialog(this) == DialogResult.OK) {
     58
     59        var name = exportFileDialog.FileName;
     60        using (BackgroundWorker bg = new BackgroundWorker()) {
     61          MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, "Exportion solution to " + name + ".");
     62          bg.DoWork += (o, a) => exporter.Export(Content, name);
     63          bg.RunWorkerCompleted += (o, a) => MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().RemoveOperationProgressFromView(this);
     64          bg.RunWorkerAsync();
     65        }
     66      }
     67    }
    4568  }
    4669}
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views-3.4.csproj

    r8799 r10540  
    151151      <Private>False</Private>
    152152    </ProjectReference>
     153    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
     154      <Project>{0e27a536-1c4a-4624-a65e-dc4f4f23e3e1}</Project>
     155      <Name>HeuristicLab.Common.Resources-3.3</Name>
     156      <Private>False</Private>
     157    </ProjectReference>
    153158    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
    154159      <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views/3.4/SymbolicTimeSeriesPrognosisSolutionView.Designer.cs

    r9973 r10540  
    5454      this.SuspendLayout();
    5555      //
    56       // exportButton
     56      // flowLayoutPanel
    5757      //
    58       this.exportButton.Visible = false;
    59       //
    60       // splitContainer
    61       //
    62       //
    63       // splitContainer.Panel1
    64       //
    65       this.splitContainer.Panel1.Controls.Add(this.btnSimplify);
    66       //
    67       // addButton
    68       //
    69       this.toolTip.SetToolTip(this.addButton, "Add");
    70       //
    71       // removeButton
    72       //
    73       this.toolTip.SetToolTip(this.removeButton, "Remove");
     58      this.flowLayoutPanel.Controls.Add(this.btnSimplify);
    7459      //
    7560      // btnSimplify
    7661      //
    77       this.btnSimplify.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
    78       this.btnSimplify.Location = new System.Drawing.Point(172, 4);
     62      this.btnSimplify.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
     63      this.btnSimplify.Image = HeuristicLab.Common.Resources.VSImageLibrary.FormulaEvaluator;
     64      this.btnSimplify.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
    7965      this.btnSimplify.Name = "btnSimplify";
    80       this.btnSimplify.Size = new System.Drawing.Size(75, 23);
    81       this.btnSimplify.TabIndex = 6;
    82       this.btnSimplify.Text = "Simplify";
     66      this.btnSimplify.TabIndex = 7;
     67      this.btnSimplify.Size = new System.Drawing.Size(105, 24);
     68      this.btnSimplify.Text = "Simplify Model";
     69      this.btnSimplify.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
    8370      this.btnSimplify.UseVisualStyleBackColor = true;
    8471      this.btnSimplify.Click += new System.EventHandler(this.btn_SimplifyModel_Click);
     72      this.toolTip.SetToolTip(this.btnSimplify, "Simplify solution");
    8573      //
    8674      // SymbolicTimeSeriesPrognosisSolutionView
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views/3.4/SymbolicTimeSeriesPrognosisSolutionView.cs

    r9462 r10540  
    3838    }
    3939
     40    protected override void SetEnabledStateOfControls() {
     41      base.SetEnabledStateOfControls();
     42      btnSimplify.Enabled = Content != null && !Locked;
     43    }
     44
    4045    private void btn_SimplifyModel_Click(object sender, EventArgs e) {
    4146      InteractiveSymbolicTimeSeriesPrognosisSolutionSimplifierView view = new InteractiveSymbolicTimeSeriesPrognosisSolutionSimplifierView();
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/SolutionView.Designer.cs

    r10015 r10540  
    5252      this.detailsGroupBox.SuspendLayout();
    5353      this.SuspendLayout();
    54       this.exportButton.Visible = false;
    5554      //
    56       // splitContainer
    57       //
    58       //
    59       // itemsGroupBox
    60       //
    61       this.itemsGroupBox.Text = "Trading Solution";
    62       //
    63       // addButton
    64       //
    65       this.toolTip.SetToolTip(this.addButton, "Add");
    66       //
    67       // removeButton
    68       //
    69       this.toolTip.SetToolTip(this.removeButton, "Remove");
    70       //
    71       // RegressionSolutionView
     55      // SolutionView
    7256      //
    7357      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
     
    8165      this.detailsGroupBox.ResumeLayout(false);
    8266      this.ResumeLayout(false);
    83 
    8467    }
    85 
    8668    #endregion
    8769  }
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Trading/3.4/ProblemData.cs

    r9989 r10540  
    16501650      OnChanged();
    16511651    }
     1652
     1653    public override void AdjustProblemDataProperties(IDataAnalysisProblemData problemData) {
     1654      throw new NotImplementedException("TODO");
     1655    }
    16521656  }
    16531657}
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/ClassificationSolutionView.cs

    r10175 r10540  
    2020#endregion
    2121
    22 using System;
    2322using System.Windows.Forms;
    24 using HeuristicLab.Common;
    2523using HeuristicLab.Core;
    2624using HeuristicLab.MainForm;
    27 using HeuristicLab.PluginInfrastructure;
    2825
    2926namespace HeuristicLab.Problems.DataAnalysis.Views {
     
    5451    }
    5552    #endregion
    56 
    57     protected override bool CheckCompatibilityOfProblemData(IDataAnalysisProblemData problemData) {
    58       IClassificationProblemData classificationProblemData = problemData as IClassificationProblemData;
    59       if (classificationProblemData == null) {
    60         ErrorHandling.ShowErrorDialog(this, new ArgumentException("The problem data is no classification problem data. Instead a " + problemData.GetType().GetPrettyName() + " was provided."));
    61         return false;
    62       }
    63 
    64       if (!classificationProblemData.TargetVariable.Equals(Content.ProblemData.TargetVariable)) {
    65         string message = "The target variables are not matching. Old target variable: '"
    66                          + Content.ProblemData.TargetVariable
    67                          + "'. New targetvariable: '" + classificationProblemData.TargetVariable + "'";
    68         ErrorHandling.ShowErrorDialog(this, new InvalidOperationException(message));
    69         return false;
    70       }
    71 
    72       return base.CheckCompatibilityOfProblemData(problemData);
    73     }
    7453  }
    7554}
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/DataAnalysisSolutionView.Designer.cs

    r10175 r10540  
    1919 */
    2020#endregion
    21 
    2221
    2322namespace HeuristicLab.Problems.DataAnalysis.Views {
     
    4645    /// </summary>
    4746    private void InitializeComponent() {
    48       this.exportButton = new System.Windows.Forms.Button();
    49       this.exportFileDialog = new System.Windows.Forms.SaveFileDialog();
     47      this.flowLayoutPanel = new System.Windows.Forms.FlowLayoutPanel();
    5048      this.loadProblemDataButton = new System.Windows.Forms.Button();
    5149      this.loadProblemDataFileDialog = new System.Windows.Forms.OpenFileDialog();
     
    5755      this.detailsGroupBox.SuspendLayout();
    5856      this.SuspendLayout();
     57      //
     58      // itemslistView
     59      //
     60      this.itemsListView.Location = new System.Drawing.Point(this.itemsListView.Location.X, this.itemsListView.Location.Y + 3);
     61      //
     62      // detailsGroupBox
     63      //
     64      this.detailsGroupBox.Location = new System.Drawing.Point(this.detailsGroupBox.Location.X, this.detailsGroupBox.Location.Y + 3);
     65      //
    5966      //
    6067      // splitContainer
     
    6370      // splitContainer.Panel2
    6471      //
    65       this.splitContainer.Panel2.Controls.Add(this.loadProblemDataButton);
    66       this.splitContainer.Panel2.Controls.Add(this.exportButton);
     72      this.splitContainer.Panel2.Controls.Add(this.flowLayoutPanel);
    6773      //
    6874      // itemsGroupBox
    6975      //
    7076      this.itemsGroupBox.Text = "Data Analysis Solution";
    71       //
    72       // addButton
    73       //
    74       this.toolTip.SetToolTip(this.addButton, "Add");
    75       //
    76       // removeButton
    77       //
    78       this.toolTip.SetToolTip(this.removeButton, "Remove");
    79       //
    80       // exportButton
    81       //
    82       this.exportButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
    83       this.exportButton.Location = new System.Drawing.Point(194, 3);
    84       this.exportButton.Name = "exportButton";
    85       this.exportButton.Size = new System.Drawing.Size(75, 24);
    86       this.exportButton.TabIndex = 6;
    87       this.exportButton.Text = "Export";
    88       this.exportButton.UseVisualStyleBackColor = true;
    89       this.exportButton.Click += new System.EventHandler(this.exportButton_Click);
     77      //
     78      // flowLayoutPanel
     79      //
     80      this.flowLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
     81      this.flowLayoutPanel.FlowDirection = System.Windows.Forms.FlowDirection.LeftToRight;
     82      this.flowLayoutPanel.Location = new System.Drawing.Point(0, 0);
     83      this.flowLayoutPanel.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
     84      this.flowLayoutPanel.Size = new System.Drawing.Size(266, 30);
     85      this.flowLayoutPanel.Controls.Add(this.loadProblemDataButton);
    9086      //
    9187      // loadProblemDataButton
    9288      //
    93       this.loadProblemDataButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)));
    94       this.loadProblemDataButton.Location = new System.Drawing.Point(3, 3);
     89      this.loadProblemDataButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
     90      this.loadProblemDataButton.AutoSize = true;
     91      this.loadProblemDataButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Open;
     92      this.loadProblemDataButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
    9593      this.loadProblemDataButton.Name = "loadProblemDataButton";
    96       this.loadProblemDataButton.Size = new System.Drawing.Size(75, 24);
    97       this.loadProblemDataButton.TabIndex = 7;
    98       this.loadProblemDataButton.Text = "Load Data";
     94      this.loadProblemDataButton.Size = new System.Drawing.Size(105, 24);
     95      this.loadProblemDataButton.TabIndex = 6;
     96      this.loadProblemDataButton.Text = "Load new Data";
     97      this.loadProblemDataButton.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
    9998      this.loadProblemDataButton.UseVisualStyleBackColor = true;
    10099      this.loadProblemDataButton.Click += new System.EventHandler(this.loadProblemDataButton_Click);
     
    122121    #endregion
    123122
    124     private System.Windows.Forms.SaveFileDialog exportFileDialog;
    125     protected System.Windows.Forms.Button exportButton;
    126123    protected System.Windows.Forms.Button loadProblemDataButton;
    127124    protected System.Windows.Forms.OpenFileDialog loadProblemDataFileDialog;
     125    protected System.Windows.Forms.FlowLayoutPanel flowLayoutPanel;
    128126
    129127  }
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/DataAnalysisSolutionView.cs

    r10175 r10540  
    2222using System;
    2323using System.Collections.Generic;
    24 using System.ComponentModel;
    2524using System.Drawing;
    2625using System.Linq;
    27 using System.Text;
    2826using System.Windows.Forms;
    2927using HeuristicLab.Core;
     
    5452      addButton.Enabled = false;
    5553      removeButton.Enabled = false;
    56       if (Content == null) {
    57         exportButton.Enabled = false;
    58         loadProblemDataButton.Enabled = false;
    59       } else {
    60         exportButton.Enabled = !Locked;
    61         loadProblemDataButton.Enabled = !Locked;
    62       }
     54      loadProblemDataButton.Enabled = Content != null && !Locked;
    6355    }
    6456
     
    133125    protected virtual void loadProblemDataButton_Click(object sender, EventArgs e) {
    134126      if (loadProblemDataFileDialog.ShowDialog(this) != DialogResult.OK) return;
    135       object hlFile = XmlParser.Deserialize(loadProblemDataFileDialog.FileName);
    136 
    137       IDataAnalysisProblemData problemData = null;
    138       if (hlFile is IDataAnalysisProblemData) {
    139         problemData = (IDataAnalysisProblemData)hlFile;
    140       } else if (hlFile is IDataAnalysisProblem) {
    141         problemData = ((IDataAnalysisProblem)hlFile).ProblemData;
    142       } else if (hlFile is IDataAnalysisSolution) {
    143         problemData = ((IDataAnalysisSolution)hlFile).ProblemData;
    144       }
    145 
    146       if (problemData == null) {
    147         ErrorHandling.ShowErrorDialog(this, new NullReferenceException("The problem data is null." + Environment.NewLine
    148                                       + "The .hl-file contains no DataAnalysisProblemData or DataAnylsisProblem."));
    149         return;
    150       }
    151 
    152       if (CheckCompatibilityOfProblemData(problemData)) {
     127      try {
     128        object hlFile = XmlParser.Deserialize(loadProblemDataFileDialog.FileName);
     129
     130        IDataAnalysisProblemData problemData = null;
     131        if (hlFile is IDataAnalysisProblemData) {
     132          problemData = (IDataAnalysisProblemData)hlFile;
     133        } else if (hlFile is IDataAnalysisProblem) {
     134          problemData = ((IDataAnalysisProblem)hlFile).ProblemData;
     135        } else if (hlFile is IDataAnalysisSolution) {
     136          problemData = ((IDataAnalysisSolution)hlFile).ProblemData;
     137        }
     138
     139        if (problemData == null)
     140          throw new InvalidOperationException("The chosen HeuristicLab file does not contain a ProblemData, Problem, or DataAnalysisSolution.");
     141
    153142        var solution = (IDataAnalysisSolution)Content.Clone();
     143        problemData.AdjustProblemDataProperties(solution.ProblemData);
    154144        solution.ProblemData = problemData;
    155         solution.Name += " with loaded problem data (" + loadProblemDataFileDialog + ")";
     145        if (!solution.Name.EndsWith(" with loaded problemData"))
     146          solution.Name += " with loaded problemData";
    156147        MainFormManager.MainForm.ShowContent(solution);
    157148      }
    158     }
    159 
    160     private void exportButton_Click(object sender, EventArgs e) {
    161       var exporters = ApplicationManager.Manager.GetInstances<IDataAnalysisSolutionExporter>()
    162         .Where(exporter => exporter.Supports(Content)).ToArray();
    163       exportFileDialog.Filter = exporters.Skip(1)
    164         .Aggregate(exporters.First().FileTypeFilter, (s, exporter) => s + "|" + exporter.FileTypeFilter);
    165       var result = exportFileDialog.ShowDialog();
    166       if (result == DialogResult.OK) {
    167 
    168         var name = exportFileDialog.FileName;
    169         var selectedExporter = exporters.Single(exporter => exporter.FileTypeFilter == exportFileDialog.Filter);
    170 
    171         using (BackgroundWorker bg = new BackgroundWorker()) {
    172           MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().AddOperationProgressToView(this, "Exportion solution to " + name + ".");
    173           bg.DoWork += (_, __) => selectedExporter.Export(Content, name);
    174           bg.RunWorkerCompleted += (_, __) => MainFormManager.GetMainForm<MainForm.WindowsForms.MainForm>().RemoveOperationProgressFromView(this);
    175           bg.RunWorkerAsync();
    176         }
     149      catch (InvalidOperationException invalidOperationException) {
     150        ErrorHandling.ShowErrorDialog(this, invalidOperationException);
     151      }
     152      catch (ArgumentException argumentException) {
     153        ErrorHandling.ShowErrorDialog(this, argumentException);
    177154      }
    178155    }
     
    224201      validDragOperation = false;
    225202      if (ReadOnly) return;
     203      if (e.Effect != DragDropEffects.Copy) return;
    226204
    227205      var dropData = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat);
    228       if (dropData is DataAnalysisProblemData) validDragOperation = true;
     206      if (dropData is IDataAnalysisProblemData) validDragOperation = true;
    229207      else if (dropData is IDataAnalysisProblem) validDragOperation = true;
    230208      else if (dropData is IValueParameter) {
     
    248226      }
    249227      if (problemData == null) return;
    250       CheckCompatibilityOfProblemData(problemData);
    251       Content.ProblemData = (IDataAnalysisProblemData)problemData.Clone();
     228
     229      try {
     230        problemData.AdjustProblemDataProperties(Content.ProblemData);
     231        Content.ProblemData = problemData;
     232
     233        if (!Content.Name.EndsWith(" with changed problemData"))
     234          Content.Name += " with changed problemData";
     235      }
     236      catch (InvalidOperationException invalidOperationException) {
     237        ErrorHandling.ShowErrorDialog(this, invalidOperationException);
     238      }
     239      catch (ArgumentException argumentException) {
     240        ErrorHandling.ShowErrorDialog(this, argumentException);
     241      }
    252242    }
    253243    #endregion
    254244
    255     #region load problem data
    256     protected virtual bool CheckCompatibilityOfProblemData(IDataAnalysisProblemData problemData) {
    257       StringBuilder message = new StringBuilder();
    258       List<string> variables = problemData.InputVariables.Select(x => x.Value).ToList();
    259       foreach (var item in Content.ProblemData.InputVariables.CheckedItems) {
    260         if (!variables.Contains(item.Value.Value))
    261           message.AppendLine("Input variable '" + item.Value.Value + "' is not in the new problem data.");
    262       }
    263 
    264       if (message.Length != 0) {
    265         ErrorHandling.ShowErrorDialog(this, new InvalidOperationException(message.ToString()));
    266         return false;
    267       }
    268       return true;
    269     }
    270     #endregion
    271245  }
    272246}
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/RegressionSolutionView.cs

    r10175 r10540  
    2020#endregion
    2121
    22 using System;
    2322using System.Windows.Forms;
    24 using HeuristicLab.Common;
    2523using HeuristicLab.Core;
    2624using HeuristicLab.MainForm;
    27 using HeuristicLab.PluginInfrastructure;
    2825
    2926namespace HeuristicLab.Problems.DataAnalysis.Views {
     
    5451    }
    5552    #endregion
    56 
    57     protected override bool CheckCompatibilityOfProblemData(IDataAnalysisProblemData problemData) {
    58       IRegressionProblemData regressionProblemData = problemData as IRegressionProblemData;
    59       if (regressionProblemData == null) {
    60         ErrorHandling.ShowErrorDialog(this, new ArgumentException("The problem data is no regression problem data. Instead a " + problemData.GetType().GetPrettyName() + " was provided."));
    61         return false;
    62       }
    63 
    64       if (!regressionProblemData.TargetVariable.Equals(Content.ProblemData.TargetVariable)) {
    65         string message = "The target variables are not matching. Old target variable: '"
    66                          + Content.ProblemData.TargetVariable
    67                          + "'. New targetvariable: '" + regressionProblemData.TargetVariable + "'";
    68         ErrorHandling.ShowErrorDialog(this, new InvalidOperationException(message));
    69         return false;
    70       }
    71 
    72       return base.CheckCompatibilityOfProblemData(problemData);
    73     }
    7453  }
    7554}
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationProblemData.cs

    r9456 r10540  
    221221    public string TargetVariable {
    222222      get { return TargetVariableParameter.Value.Value; }
     223      set {
     224        if (value == null) throw new ArgumentNullException("targetVariable", "The provided value for the targetVariable is null.");
     225        if (value == TargetVariable) return;
     226
     227
     228        var matchingParameterValue = TargetVariableParameter.ValidValues.FirstOrDefault(v => v.Value == value);
     229        if (matchingParameterValue == null) throw new ArgumentException("The provided value is not valid as the targetVariable.", "targetVariable");
     230        TargetVariableParameter.Value = matchingParameterValue;
     231      }
    223232    }
    224233
     
    408417    }
    409418    #endregion
     419
     420    protected override bool IsProblemDataCompatible(IDataAnalysisProblemData problemData, out string errorMessage) {
     421      if (problemData == null) throw new ArgumentNullException("problemData", "The provided problemData is null.");
     422      IClassificationProblemData classificationProblemData = problemData as IClassificationProblemData;
     423      if (classificationProblemData == null)
     424        throw new ArgumentException("The problem data is no classification problem data. Instead a " + problemData.GetType().GetPrettyName() + " was provided.", "problemData");
     425
     426      var returnValue = base.IsProblemDataCompatible(classificationProblemData, out errorMessage);
     427      //check targetVariable
     428      if (classificationProblemData.InputVariables.All(var => var.Value != TargetVariable)) {
     429        errorMessage = string.Format("The target variable {0} is not present in the new problem data.", TargetVariable)
     430                       + Environment.NewLine + errorMessage;
     431        return false;
     432      }
     433
     434      var newClassValues = classificationProblemData.Dataset.GetDoubleValues(TargetVariable).Distinct().OrderBy(x => x);
     435      if (!newClassValues.SequenceEqual(ClassValues)) {
     436        errorMessage = errorMessage + string.Format("The class values differ in the provided classification problem data.");
     437        return false;
     438      }
     439
     440      return returnValue;
     441    }
     442
     443    public override void AdjustProblemDataProperties(IDataAnalysisProblemData problemData) {
     444      if (problemData == null) throw new ArgumentNullException("problemData", "The provided problemData is null.");
     445      ClassificationProblemData classificationProblemData = problemData as ClassificationProblemData;
     446      if (classificationProblemData == null)
     447        throw new ArgumentException("The problem data is not a classification problem data. Instead a " + problemData.GetType().GetPrettyName() + " was provided.", "problemData");
     448
     449      base.AdjustProblemDataProperties(problemData);
     450      TargetVariable = classificationProblemData.TargetVariable;
     451      for (int i = 0; i < classificationProblemData.ClassNames.Count(); i++)
     452        ClassNamesParameter.Value[i, 0] = classificationProblemData.ClassNames.ElementAt(i);
     453
     454      for (int i = 0; i < Classes; i++) {
     455        for (int j = 0; j < Classes; j++) {
     456          ClassificationPenaltiesParameter.Value[i, j] = classificationProblemData.GetClassificationPenalty(ClassValuesCache[i], ClassValuesCache[j]);
     457        }
     458      }
     459    }
    410460  }
    411461}
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblemData.cs

    r9456 r10540  
    2323using System.Collections.Generic;
    2424using System.Linq;
     25using System.Text;
    2526using HeuristicLab.Collections;
    2627using HeuristicLab.Common;
     
    158159      if (listeners != null) listeners(this, EventArgs.Empty);
    159160    }
     161
     162    protected virtual bool IsProblemDataCompatible(IDataAnalysisProblemData problemData, out string errorMessage) {
     163      errorMessage = string.Empty;
     164      if (problemData == null) throw new ArgumentNullException("problemData", "The provided problemData is null.");
     165
     166      //check allowed input variables
     167      StringBuilder message = new StringBuilder();
     168      var variables = new HashSet<string>(problemData.InputVariables.Select(x => x.Value));
     169      foreach (var item in AllowedInputVariables) {
     170        if (!variables.Contains(item))
     171          message.AppendLine("Input variable '" + item + "' is not present in the new problem data.");
     172      }
     173
     174      if (message.Length != 0) {
     175        errorMessage = message.ToString();
     176        return false;
     177      }
     178      return true;
     179
     180    }
     181
     182    public virtual void AdjustProblemDataProperties(IDataAnalysisProblemData problemData) {
     183      DataAnalysisProblemData data = problemData as DataAnalysisProblemData;
     184      if (data == null) throw new ArgumentException("The problem data is not a data analysis problem data. Instead a " + problemData.GetType().GetPrettyName() + " was provided.", "problemData");
     185
     186      string errorMessage;
     187      if (!data.IsProblemDataCompatible(this, out errorMessage)) {
     188        throw new InvalidOperationException(errorMessage);
     189      }
     190
     191      foreach (var inputVariable in InputVariables) {
     192        var variable = data.InputVariables.FirstOrDefault(i => i.Value == inputVariable.Value);
     193        InputVariables.SetItemCheckedState(inputVariable, variable != null && data.InputVariables.ItemChecked(variable));
     194      }
     195
     196      TrainingPartition.Start = TrainingPartition.End = 0;
     197      TestPartition.Start = 0;
     198      TestPartition.End = Dataset.Rows;
     199    }
    160200  }
    161201}
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblemData.cs

    r9456 r10540  
    100100    public string TargetVariable {
    101101      get { return TargetVariableParameter.Value.Value; }
     102      set {
     103        if (value == null) throw new ArgumentNullException("targetVariable", "The provided value for the targetVariable is null.");
     104        if (value == TargetVariable) return;
     105
     106        var matchingParameterValue = TargetVariableParameter.ValidValues.FirstOrDefault(v => v.Value == value);
     107        if (matchingParameterValue == null) throw new ArgumentException("The provided value is not valid as the targetVariable.", "targetVariable");
     108        TargetVariableParameter.Value = matchingParameterValue;
     109      }
    102110    }
    103111
     
    142150      OnChanged();
    143151    }
     152
     153    protected override bool IsProblemDataCompatible(IDataAnalysisProblemData problemData, out string errorMessage) {
     154      if (problemData == null) throw new ArgumentNullException("problemData", "The provided problemData is null.");
     155      IRegressionProblemData regressionProblemData = problemData as IRegressionProblemData;
     156      if (regressionProblemData == null)
     157        throw new ArgumentException("The problem data is not a regression problem data. Instead a " + problemData.GetType().GetPrettyName() + " was provided.", "problemData");
     158
     159      var returnValue = base.IsProblemDataCompatible(problemData, out errorMessage);
     160      //check targetVariable
     161      if (problemData.InputVariables.All(var => var.Value != TargetVariable)) {
     162        errorMessage = string.Format("The target variable {0} is not present in the new problem data.", TargetVariable)
     163                       + Environment.NewLine + errorMessage;
     164        return false;
     165      }
     166      return returnValue;
     167    }
     168
     169    public override void AdjustProblemDataProperties(IDataAnalysisProblemData problemData) {
     170      if (problemData == null) throw new ArgumentNullException("problemData", "The provided problemData is null.");
     171      RegressionProblemData regressionProblemData = problemData as RegressionProblemData;
     172      if (regressionProblemData == null)
     173        throw new ArgumentException("The problem data is not a regression problem data. Instead a " + problemData.GetType().GetPrettyName() + " was provided.", "problemData");
     174
     175      base.AdjustProblemDataProperties(problemData);
     176      TargetVariable = regressionProblemData.TargetVariable;
     177    }
    144178  }
    145179}
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisProblemData.cs

    r9552 r10540  
    16211621    }
    16221622
     1623    public override void AdjustProblemDataProperties(IDataAnalysisProblemData problemData) {
     1624      TimeSeriesPrognosisProblemData timeSeriesProblemData = problemData as TimeSeriesPrognosisProblemData;
     1625      if (timeSeriesProblemData == null)
     1626        throw new ArgumentException("The problem data is not a timeseries problem data. Instead a " + problemData.GetType().GetPrettyName() + " was provided.", "problemData");
     1627
     1628      base.AdjustProblemDataProperties(problemData);
     1629
     1630      TrainingHorizon = timeSeriesProblemData.TrainingHorizon;
     1631      TestHorizon = timeSeriesProblemData.TestHorizon;
     1632    }
     1633
    16231634  }
    16241635}
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/Classification/IClassificationProblemData.cs

    r9456 r10540  
    2323namespace HeuristicLab.Problems.DataAnalysis {
    2424  public interface IClassificationProblemData : IDataAnalysisProblemData {
    25     string TargetVariable { get; }
     25    string TargetVariable { get; set; }
    2626
    2727    IEnumerable<string> ClassNames { get; }
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/IDataAnalysisProblemData.cs

    r9456 r10540  
    4343
    4444    event EventHandler Changed;
     45
     46    void AdjustProblemDataProperties(IDataAnalysisProblemData problemData);
    4547  }
    4648}
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/Regression/IRegressionProblemData.cs

    r9456 r10540  
    2222namespace HeuristicLab.Problems.DataAnalysis {
    2323  public interface IRegressionProblemData : IDataAnalysisProblemData {
    24     string TargetVariable { get; }
     24    string TargetVariable { get; set; }
    2525  }
    2626}
Note: See TracChangeset for help on using the changeset viewer.