Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/09/09 18:05:03 (15 years ago)
Author:
gkronber
Message:

worked on presentation layer for CEDMA. Added a results view that displays data in a simple DataGrid. (#419)

File:
1 moved

Legend:

Unmodified
Added
Removed
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/ResultsViewContainer.cs

    r1103 r1106  
    88using System.Windows.Forms;
    99using HeuristicLab.Core;
    10 using HeuristicLab.CEDMA.Charting;
     10using HeuristicLab.PluginInfrastructure;
    1111
    1212namespace HeuristicLab.CEDMA.Core {
    13   public partial class ResultsView : ViewBase {
     13  public partial class ResultsViewContainer : ViewBase {
    1414    private Results results;
    15     private const string FREQUENCY = "<Frequency>";
    16     private const string CONSTANT_SIZE = "<constant>";
    17     private BubbleChartControl bubbleChartControl;
    18     private HistogramControl histogramControl;
    19     private Label pleaseSelectAxisLabel = new Label();
    2015
    21     public ResultsView(Results results) {
     16    public ResultsViewContainer(Results results) {
    2217      this.results = results;
    2318      InitializeComponent();
    24       InitCharts();
    25       xAxisComboBox.Items.AddRange(results.VariableNames);
    26       yAxisComboBox.Items.Add(FREQUENCY);
    27       yAxisComboBox.Items.AddRange(results.VariableNames);
    28       sizeComboBox.Items.Add(CONSTANT_SIZE);
    29       sizeComboBox.Items.AddRange(results.VariableNames);
    30       sizeComboBox.SelectedItem = sizeComboBox.Items[0];
    31       sizeComboBox.Enabled = false;
    32       invertCheckbox.Enabled = false;
    33       sizeLabel.Enabled = false;
    34       yAxisComboBox.SelectedItem = yAxisComboBox.Items[0];
    35       xAxisComboBox.SelectedItem = xAxisComboBox.Items[0];
     19      PopulateViewComboBox();
     20      showButton.Enabled = false;
    3621    }
    3722
    38     private void InitCharts() {
    39       bubbleChartControl = new BubbleChartControl();
    40       bubbleChartControl.Chart = new BubbleChart(results, 0, 0, 100, 100);
    41       histogramControl = new HistogramControl();
    42       histogramControl.Chart = new Histogram(results, 0, 0, 100, 100);
     23    private void PopulateViewComboBox() {
     24      DiscoveryService service = new DiscoveryService();
     25      Type[] viewTypes = service.GetTypes(typeof(IResultsView));
     26      foreach (Type t in viewTypes)
     27        viewComboBox.Items.Add(t);
    4328    }
    4429
    45     private void yAxisComboBox_SelectedIndexChanged(object sender, EventArgs e) {
    46       UpdateChart();
    47     }
    48 
    49     private void xAxisComboBox_SelectedIndexChanged(object sender, EventArgs e) {
    50       UpdateChart();
    51     }
    52 
    53     private void UpdateChart() {
    54       if(xAxisComboBox.SelectedItem == null || yAxisComboBox.SelectedItem == null) return;
    55       if(yAxisComboBox.SelectedItem.Equals(FREQUENCY)) {
    56         xJitterlabel.Enabled = false;
    57         xTrackBar.Enabled = false;
    58         yJitterLabel.Enabled = false;
    59         yTrackBar.Enabled = false;
    60         sizeComboBox.Enabled = false;
    61         invertCheckbox.Enabled = false;
    62         sizeLabel.Enabled = false;
    63         chartPanel.Controls.Clear();
    64         chartPanel.Controls.Add(histogramControl);
    65         histogramControl.Chart.ShowFrequency((string)xAxisComboBox.SelectedItem);
    66         histogramControl.Dock = DockStyle.Fill;
    67       } else {
    68         xJitterlabel.Enabled = true;
    69         xTrackBar.Enabled = true;
    70         yJitterLabel.Enabled = true;
    71         yTrackBar.Enabled = true;
    72         sizeComboBox.Enabled = true;
    73         invertCheckbox.Enabled = true;
    74         sizeLabel.Enabled = true;
    75         chartPanel.Controls.Clear();
    76         chartPanel.Controls.Add(bubbleChartControl);
    77         bubbleChartControl.Chart.ShowXvsY((string)xAxisComboBox.SelectedItem, (string)yAxisComboBox.SelectedItem);
    78         bubbleChartControl.Dock = DockStyle.Fill;
     30    private void showButton_Click(object sender, EventArgs e) {
     31      viewPanel.Controls.Clear();
     32      try {
     33        Type type = (Type)viewComboBox.SelectedItem;
     34        IResultsView view = (IResultsView)Activator.CreateInstance(type);
     35        Control control = view.Control;
     36        viewPanel.Controls.Add(control);
     37        control.Dock = DockStyle.Fill;
     38        view.ShowResults(results);
     39      }
     40      catch (Exception ex) {
     41        Label errorLabel = new Label();
     42        errorLabel.Text = "Couldn't load selected view: " + viewComboBox.SelectedItem + "\n" + ex.Message;
     43        viewPanel.Controls.Add(errorLabel);
     44        errorLabel.Dock = DockStyle.Fill;
    7945      }
    8046    }
    8147
    82     private void jitterTrackBar_ValueChanged(object sender, EventArgs e) {
    83       if(bubbleChartControl.Chart != null) {
    84         double xJitterFactor = xTrackBar.Value / 100.0;
    85         double yJitterFactor = yTrackBar.Value / 100.0;
    86         bubbleChartControl.Chart.SetJitter(xJitterFactor, yJitterFactor);
    87       }
    88       UpdateChart();
    89     }
    90 
    91     private void sizeComboBox_SelectedIndexChanged(object sender, EventArgs e) {
    92       if(bubbleChartControl.Chart != null) {
    93         bubbleChartControl.Chart.SetBubbleSizeDimension((string)sizeComboBox.SelectedItem, invertCheckbox.Checked);
    94         UpdateChart();
    95       }
     48    private void viewComboBox_SelectedValueChanged(object sender, EventArgs e) {
     49      showButton.Enabled = viewComboBox.SelectedItem != null;
    9650    }
    9751  }
Note: See TracChangeset for help on using the changeset viewer.