Free cookie consent management tool by TermsFeed Policy Generator

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

Last change on this file since 10313 was 10313, checked in by aesterer, 10 years ago

Changed buttons to icon buttons and added icons to content elements

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