Free cookie consent management tool by TermsFeed Policy Generator

source: branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.3/Views/DataPreprocessingView.cs @ 10307

Last change on this file since 10307 was 10307, checked in by pfleck, 11 years ago

Started saving Problem from Preprocessor.
Saving actual changed values not yet implemented.

File size: 6.0 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Windows.Forms;
5using HeuristicLab.Common;
6using HeuristicLab.Core;
7using HeuristicLab.Core.Views;
8using HeuristicLab.Data;
9using HeuristicLab.MainForm;
10using HeuristicLab.Optimization;
11using HeuristicLab.Problems.DataAnalysis;
12
13namespace HeuristicLab.DataPreprocessing {
14  [View("DataPreprocessing View")]
15  [Content(typeof(PreprocessingContext), true)]
16  public partial class DataPreprocessingView : ItemView {
17
18    private DataGridContent dataGridContent;
19    private StatisticsContent statisticsContent;
20    private FilterContent filterContent;
21    private TransformationContent tranformationContent;
22    private LineChartContent lineChartContent;
23    private HistogramContent histogramContent;
24
25    private Dictionary<ListViewItem, IItem> listViewItemItemMapping;
26
27
28    public DataPreprocessingView() {
29      InitializeComponent();
30    }
31
32
33    protected override void OnContentChanged() {
34      base.OnContentChanged();
35      InitializeContents();
36    }
37
38    private ListViewItem CreateListViewItem(IItem item) {
39      ListViewItem listViewItem = new ListViewItem();
40
41      listViewItem.Text = item.ToString();
42      //listViewItem.ToolTipText = item.ItemName + ": " + item.ItemDescription;
43      //itemsListView.SmallImageList.Images.Add(content.);
44      //listViewItem.ImageIndex = itemsListView.SmallImageList.Images.Count - 1;
45      //listViewItem.Tag = item;
46      return listViewItem;
47    }
48
49    private void InitializeContents() {
50      IPreprocessingData data = Content.Data;
51      ISearchLogic searchLogic = new SearchLogic(data);
52      dataGridContent = new DataGridContent(new DataGridLogic(data), new PreprocessingDataManipulation(data, searchLogic, new StatisticsLogic(data, searchLogic)));
53      statisticsContent = new StatisticsContent(new StatisticsLogic(data, searchLogic));
54      filterContent = new FilterContent(new FilterLogic());
55      tranformationContent = new TransformationContent(new TransformationLogic());
56      lineChartContent = new LineChartContent(new LineChartLogic());
57      histogramContent = new HistogramContent(new HistogramLogic());
58
59      listViewItemItemMapping = new Dictionary<ListViewItem, IItem>();
60      ListViewItem contentListViewItem = CreateListViewItem(dataGridContent);
61      listViewItemItemMapping[contentListViewItem] = dataGridContent;
62
63      ListViewItem statisticsListViewItem = CreateListViewItem(statisticsContent);
64      listViewItemItemMapping[statisticsListViewItem] = statisticsContent;
65
66      ListViewItem filterListViewItem = CreateListViewItem(filterContent);
67      listViewItemItemMapping[filterListViewItem] = filterContent;
68
69      ListViewItem transformationListViewItem = CreateListViewItem(tranformationContent);
70      listViewItemItemMapping[transformationListViewItem] = tranformationContent;
71
72      ListViewItem lineChartListViewItem = CreateListViewItem(lineChartContent);
73      listViewItemItemMapping[lineChartListViewItem] = lineChartContent;
74
75      ListViewItem histogramListViewItem = CreateListViewItem(histogramContent);
76      listViewItemItemMapping[histogramListViewItem] = histogramContent;
77
78      contentListView.Items.Add(statisticsListViewItem);
79      contentListView.Items.Add(contentListViewItem);
80      contentListView.Items.Add(filterListViewItem);
81      contentListView.Items.Add(transformationListViewItem);
82      contentListView.Items.Add(lineChartListViewItem);
83      contentListView.Items.Add(histogramListViewItem);
84    }
85
86    public new PreprocessingContext Content {
87      get { return (PreprocessingContext)base.Content; }
88      set {
89        base.Content = value;
90      }
91    }
92
93    private void listView1_SelectedIndexChanged(object sender, EventArgs e) {
94
95      if (contentListView.SelectedItems.Count > 0) {
96        ListViewItem listViewItem = (ListViewItem)contentListView.SelectedItems[0];
97        this.viewHost.Content = listViewItemItemMapping[listViewItem];
98      }
99    }
100
101    private void listView1_DoubleClick(object sender, EventArgs e) {
102      ListViewItem listViewItem = (ListViewItem)contentListView.SelectedItems[0];
103      MainFormManager.MainForm.ShowContent(listViewItemItemMapping[listViewItem]);
104    }
105
106    private void exportProblemButton_Click(object sender, EventArgs e) {
107      var saveFileDialog = new SaveFileDialog {
108        Title = "Save Item",
109        DefaultExt = "hl",
110        Filter = "Uncompressed HeuristicLab Files|*.hl|HeuristicLab Files|*.hl|All Files|*.*",
111        FilterIndex = 2
112      };
113
114      var content = Content.Problem as IStorableContent;
115      if (saveFileDialog.ShowDialog() == DialogResult.OK) {
116        bool compressed = saveFileDialog.FilterIndex != 1;
117        ContentManager.Save(content, saveFileDialog.FileName, compressed);
118      }
119    }
120
121    private void applyInNewTabButton_Click(object sender, EventArgs e) {
122      IPreprocessingData Data = Content.Data;
123
124      foreach (string variable in Data.VariableNames) {
125        for (int j = 0; j < Data.Rows; j++) {
126          // assume: all double
127          Data.SetCell(variable, j, 1.0);
128        }
129      }
130
131      MessageBox.Show("Success, now cloning... ");
132
133      Dataset dataset = Data.ExportToDataset();
134      var variables = new CheckedItemList<StringValue>(Data.VariableNames.Select(s => new StringValue(s))).AsReadOnly();
135
136      var cloner = new Cloner();
137
138      cloner.RegisterClonedObject(Content.DataAnalysisProblemData.Dataset, dataset);
139      cloner.RegisterClonedObject(Content.DataAnalysisProblemData.TrainingPartition, Data.TrainingPartition);
140      cloner.RegisterClonedObject(Content.DataAnalysisProblemData.TestPartition, Data.TestPartition);
141      cloner.RegisterClonedObject(Content.DataAnalysisProblemData.InputVariables, variables);
142      if (Content.Algorithm != null) {
143        cloner.RegisterClonedObject(Content.Algorithm.Runs, new RunCollection { OptimizerName = Content.Algorithm.Name });
144      }
145
146      var item = cloner.Clone(Content.ParentItem);
147
148      MainFormManager.MainForm.ShowContent(item);
149    }
150
151  }
152}
153
Note: See TracBrowser for help on using the repository browser.