Changeset 7309


Ignore:
Timestamp:
01/10/12 17:36:58 (16 months ago)
Author:
sforsten
Message:

#1752: -data set is exported exactly in the way it is stored in the Dataset class

Location:
branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Views/3.4
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Views/3.4/DataAnalysisProblemView.Designer.cs

    r7290 r7309  
    4747      this.ImportButton = new System.Windows.Forms.Button(); 
    4848      this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); 
    49       this.BenchmarkComboBox = new System.Windows.Forms.ComboBox(); 
    5049      this.LoadButton = new System.Windows.Forms.Button(); 
    5150      this.BenchmarkTableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); 
     51      this.ExportButton = new System.Windows.Forms.Button(); 
     52      this.saveFileDialog = new System.Windows.Forms.SaveFileDialog(); 
    5253      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); 
    5354      this.BenchmarkTableLayoutPanel.SuspendLayout(); 
     
    5657      // parameterCollectionView 
    5758      //  
    58       this.parameterCollectionView.Location = new System.Drawing.Point(3, 80); 
    59       this.parameterCollectionView.Size = new System.Drawing.Size(490, 254); 
     59      this.parameterCollectionView.Location = new System.Drawing.Point(3, 56); 
     60      this.parameterCollectionView.Size = new System.Drawing.Size(490, 278); 
    6061      this.parameterCollectionView.TabIndex = 4; 
    6162      //  
     
    7475      this.ImportButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)  
    7576            | System.Windows.Forms.AnchorStyles.Right))); 
    76       this.ImportButton.Location = new System.Drawing.Point(3, 24); 
     77      this.ImportButton.Location = new System.Drawing.Point(3, 3); 
    7778      this.ImportButton.Name = "ImportButton"; 
    78       this.ImportButton.Size = new System.Drawing.Size(487, 23); 
     79      this.ImportButton.Size = new System.Drawing.Size(158, 21); 
    7980      this.ImportButton.TabIndex = 3; 
    80       this.ImportButton.Text = "Import from CSV file"; 
     81      this.ImportButton.Text = "Import ProblemData from CSV file"; 
    8182      this.ImportButton.UseVisualStyleBackColor = true; 
    8283      this.ImportButton.Click += new System.EventHandler(this.ImportButton_Click); 
     
    8586      //  
    8687      this.openFileDialog.Filter = "CSV files|*.csv|Text files|*.txt|All files|*.*"; 
    87       this.openFileDialog.Title = "Import data..."; 
    88       //  
    89       // BenchmarkComboBox 
    90       //  
    91       this.BenchmarkComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)  
    92             | System.Windows.Forms.AnchorStyles.Right))); 
    93       this.BenchmarkComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 
    94       this.BenchmarkComboBox.FormattingEnabled = true; 
    95       this.BenchmarkComboBox.Location = new System.Drawing.Point(3, 3); 
    96       this.BenchmarkComboBox.Name = "BenchmarkComboBox"; 
    97       this.BenchmarkComboBox.Size = new System.Drawing.Size(240, 21); 
    98       this.BenchmarkComboBox.TabIndex = 5; 
     88      this.openFileDialog.Title = "Import ProblemData..."; 
    9989      //  
    10090      // LoadButton 
     
    10292      this.LoadButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)  
    10393            | System.Windows.Forms.AnchorStyles.Right))); 
    104       this.LoadButton.Location = new System.Drawing.Point(249, 2); 
     94      this.LoadButton.Location = new System.Drawing.Point(167, 2); 
    10595      this.LoadButton.Margin = new System.Windows.Forms.Padding(3, 2, 3, 3); 
    10696      this.LoadButton.Name = "LoadButton"; 
    107       this.LoadButton.Size = new System.Drawing.Size(241, 23); 
     97      this.LoadButton.Size = new System.Drawing.Size(158, 23); 
    10898      this.LoadButton.TabIndex = 6; 
    109       this.LoadButton.Text = "Load"; 
     99      this.LoadButton.Text = "Generate Benchmark ProblemData"; 
    110100      this.LoadButton.UseVisualStyleBackColor = true; 
    111       this.LoadButton.Click += new System.EventHandler(this.loadButton_Click); 
     101      this.LoadButton.Click += new System.EventHandler(this.LoadButton_Click); 
    112102      //  
    113103      // BenchmarkTableLayoutPanel 
     
    115105      this.BenchmarkTableLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)  
    116106            | System.Windows.Forms.AnchorStyles.Right))); 
    117       this.BenchmarkTableLayoutPanel.ColumnCount = 2; 
    118       this.BenchmarkTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); 
    119       this.BenchmarkTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); 
    120       this.BenchmarkTableLayoutPanel.Controls.Add(this.BenchmarkComboBox, 0, 0); 
     107      this.BenchmarkTableLayoutPanel.ColumnCount = 3; 
     108      this.BenchmarkTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); 
     109      this.BenchmarkTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); 
     110      this.BenchmarkTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); 
    121111      this.BenchmarkTableLayoutPanel.Controls.Add(this.LoadButton, 1, 0); 
    122       this.BenchmarkTableLayoutPanel.Location = new System.Drawing.Point(0, 51); 
     112      this.BenchmarkTableLayoutPanel.Controls.Add(this.ImportButton, 0, 0); 
     113      this.BenchmarkTableLayoutPanel.Controls.Add(this.ExportButton, 2, 0); 
     114      this.BenchmarkTableLayoutPanel.Location = new System.Drawing.Point(0, 26); 
    123115      this.BenchmarkTableLayoutPanel.Name = "BenchmarkTableLayoutPanel"; 
    124116      this.BenchmarkTableLayoutPanel.RowCount = 1; 
    125       this.BenchmarkTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); 
     117      this.BenchmarkTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); 
    126118      this.BenchmarkTableLayoutPanel.Size = new System.Drawing.Size(493, 28); 
    127119      this.BenchmarkTableLayoutPanel.TabIndex = 7; 
     120      //  
     121      // ExportButton 
     122      //  
     123      this.ExportButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)  
     124            | System.Windows.Forms.AnchorStyles.Right))); 
     125      this.ExportButton.Location = new System.Drawing.Point(331, 3); 
     126      this.ExportButton.Name = "ExportButton"; 
     127      this.ExportButton.Size = new System.Drawing.Size(159, 22); 
     128      this.ExportButton.TabIndex = 7; 
     129      this.ExportButton.Text = "Export ProblemData to CSV file"; 
     130      this.ExportButton.UseVisualStyleBackColor = true; 
     131      this.ExportButton.Click += new System.EventHandler(this.ExportButton_Click); 
     132      //  
     133      // saveFileDialog 
     134      //  
     135      this.saveFileDialog.Filter = "CSV files|*.csv|All files|*.*"; 
     136      this.saveFileDialog.Title = "Save ProblemData..."; 
    128137      //  
    129138      // DataAnalysisProblemView 
     
    131140      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 
    132141      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 
    133       this.Controls.Add(this.ImportButton); 
    134142      this.Controls.Add(this.BenchmarkTableLayoutPanel); 
    135143      this.Name = "DataAnalysisProblemView"; 
    136144      this.Size = new System.Drawing.Size(493, 334); 
    137145      this.Controls.SetChildIndex(this.BenchmarkTableLayoutPanel, 0); 
    138       this.Controls.SetChildIndex(this.ImportButton, 0); 
    139146      this.Controls.SetChildIndex(this.parameterCollectionView, 0); 
    140147      this.Controls.SetChildIndex(this.infoLabel, 0); 
     
    152159    private System.Windows.Forms.Button ImportButton; 
    153160    private System.Windows.Forms.OpenFileDialog openFileDialog; 
    154     private System.Windows.Forms.ComboBox BenchmarkComboBox; 
    155161    private System.Windows.Forms.Button LoadButton; 
    156162    private System.Windows.Forms.TableLayoutPanel BenchmarkTableLayoutPanel; 
     163    private System.Windows.Forms.Button ExportButton; 
     164    private System.Windows.Forms.SaveFileDialog saveFileDialog; 
    157165  } 
    158166} 
  • branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Views/3.4/DataAnalysisProblemView.cs

    r7290 r7309  
    2121 
    2222using System; 
    23 using System.Collections.Generic; 
    24 using System.Linq; 
     23using System.IO; 
     24using System.Text; 
    2525using System.Windows.Forms; 
    26 using HeuristicLab.Common; 
    2726using HeuristicLab.MainForm; 
    2827using HeuristicLab.Optimization.Views; 
     
    3332  [Content(typeof(IDataAnalysisProblem), true)] 
    3433  public partial class DataAnalysisProblemView : ProblemView { 
     34 
     35    private BenchmarkGeneratorDialog problemDataSelectorDialog; 
     36 
    3537    public DataAnalysisProblemView() { 
    3638      InitializeComponent(); 
     
    4648      ImportButton.Enabled = !Locked && !ReadOnly && Content != null; 
    4749      LoadButton.Enabled = !Locked && !ReadOnly && Content != null; 
    48       BenchmarkComboBox.Enabled = !Locked && !ReadOnly && Content != null; 
     50      ExportButton.Enabled = !Locked && !ReadOnly && Content != null; 
    4951    } 
    5052 
     
    6062    } 
    6163 
    62     private void loadButton_Click(object sender, EventArgs e) { 
    63       if (BenchmarkComboBox.SelectedItem != null) 
    64         Content.ProblemData = ((IDataAnalysisBenchmarkProblemDataGenerator)BenchmarkComboBox.SelectedItem).GenerateProblemData(); 
     64    private void LoadButton_Click(object sender, EventArgs e) { 
     65      if (problemDataSelectorDialog == null) { 
     66        problemDataSelectorDialog = new BenchmarkGeneratorDialog(Content); 
     67      } 
     68      if (problemDataSelectorDialog.ShowDialog(this) == DialogResult.OK) { 
     69        try { 
     70          Content.ProblemData = problemDataSelectorDialog.ProblemData; 
     71        } 
     72        catch (Exception ex) { 
     73          ErrorHandling.ShowErrorDialog(this, ex); 
     74        } 
     75      } 
    6576    } 
    6677 
    67     protected override void OnContentChanged() { 
    68       base.OnContentChanged(); 
    69       BenchmarkComboBox.Items.Clear(); 
    70       BenchmarkComboBox.Items.AddRange(GetBenchmarkProblemDataGenerators().OrderBy(b => b.Name, new NaturalStringComparer()).ToArray()); 
    71       if (BenchmarkComboBox.Items.Count > 0) 
    72         BenchmarkComboBox.SelectedIndex = 0; 
     78    private void ExportButton_Click(object sender, EventArgs e) { 
     79      if (saveFileDialog.ShowDialog(this) == DialogResult.OK) { 
     80        try { 
     81          ExportProblemData(Content.ProblemData.Dataset, saveFileDialog.FileName); 
     82        } 
     83        catch (Exception ex) { 
     84          ErrorHandling.ShowErrorDialog(this, ex); 
     85        } 
     86      } 
    7387    } 
    7488 
    75     protected IEnumerable<IDataAnalysisBenchmarkProblemDataGenerator> GetBenchmarkProblemDataGenerators() { 
    76       if (Content is IRegressionProblem) 
    77         return ApplicationManager.Manager.GetInstances<IRegressionBenchmarkProblemDataGenerator>(); 
    78       else if (Content is IClassificationProblem) 
    79         return ApplicationManager.Manager.GetInstances<IClassificationBenchmarkProblemDataGenerator>(); 
    80       else if (Content is IClusteringProblem) 
    81         return ApplicationManager.Manager.GetInstances<IClusteringBenchmarkProblemDataGenerator>(); 
    82       return new List<IDataAnalysisBenchmarkProblemDataGenerator>(); 
     89    private void ExportProblemData(Dataset dataset, string file) { 
     90      StringBuilder strBuilder = new StringBuilder(); 
     91 
     92      foreach (var variable in dataset.VariableNames) { 
     93        strBuilder.Append(variable + ";"); 
     94      } 
     95      strBuilder.Remove(strBuilder.Length - 1, 1); 
     96      strBuilder.AppendLine(); 
     97 
     98      for (int i = 0; i < dataset.Rows; i++) { 
     99        for (int j = 0; j < dataset.Columns; j++) { 
     100          strBuilder.Append(dataset.GetValue(i, j) + ";"); 
     101        } 
     102        strBuilder.Remove(strBuilder.Length - 1, 1); 
     103        strBuilder.AppendLine(); 
     104      } 
     105 
     106      using (StreamWriter writer = new StreamWriter(file)) { 
     107        writer.Write(strBuilder); 
     108      } 
    83109    } 
    84110  } 
  • branches/RegressionBenchmarks/HeuristicLab.Problems.DataAnalysis.Views/3.4/DataAnalysisProblemView.resx

    r7127 r7309  
    121121    <value>107, 17</value> 
    122122  </metadata> 
     123  <metadata name="errorProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> 
     124    <value>107, 17</value> 
     125  </metadata> 
    123126  <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> 
    124127    <value>17, 17</value> 
     
    127130    <value>230, 17</value> 
    128131  </metadata> 
     132  <metadata name="saveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> 
     133    <value>363, 17</value> 
     134  </metadata> 
    129135</root> 
Note: See TracChangeset for help on using the changeset viewer.