Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/08/09 12:48:18 (16 years ago)
Author:
gkronber
Message:

Merged change sets from CEDMA branch to trunk:

File:
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.CEDMA.Core/DataSetView.cs

    r957 r1287  
    2525using System.Drawing;
    2626using System.Data;
     27using System.Linq;
    2728using System.Text;
    2829using System.Windows.Forms;
    2930using HeuristicLab.Core;
    3031using HeuristicLab.CEDMA.DB.Interfaces;
     32using HeuristicLab.PluginInfrastructure;
    3133
    3234namespace HeuristicLab.CEDMA.Core {
     
    3739      set { dataSet = value; }
    3840    }
    39 
     41    private Results results;
    4042    public DataSetView() {
    4143      InitializeComponent();
     
    5153      base.UpdateControls();
    5254      editorGroupBox.Controls.Clear();
    53       editorGroupBox.Enabled = false;
     55      Control problemControl = (Control)DataSet.Problem.CreateView();
     56      problemControl.Dock = DockStyle.Fill;
     57      editorGroupBox.Controls.Add(problemControl);
     58      PopulateViewComboBox();
     59      resultsButton.Enabled = viewComboBox.SelectedItem != null;
    5460    }
    5561
    56     private void saveButton_Click(object sender, EventArgs e) {
    57       DataSet.Save();
     62    private void PopulateViewComboBox() {
     63      DiscoveryService service = new DiscoveryService();
     64      IResultsViewFactory[] factories = service.GetInstances<IResultsViewFactory>();
     65      viewComboBox.DataSource = factories;
     66      viewComboBox.ValueMember = "Name";
    5867    }
    5968
     
    6271      activateButton.Enabled = false;
    6372    }
     73
     74    private void resultsButton_Click(object sender, EventArgs e) {
     75      if (results == null)
     76        ReloadResults();
     77      try {
     78        IResultsViewFactory factory = (IResultsViewFactory)viewComboBox.SelectedItem;
     79        BackgroundWorker worker = new BackgroundWorker();
     80        worker.WorkerReportsProgress = true;
     81        worker.WorkerSupportsCancellation = true;
     82        worker.ProgressChanged += delegate(object progressChangedSender, ProgressChangedEventArgs progressChangedArgs) {
     83          progressBar.Value = progressChangedArgs.ProgressPercentage;
     84        };
     85        worker.DoWork += delegate(object doWorkSender, DoWorkEventArgs doWorkArgs) {
     86          int n = results.GetEntries().Count();
     87          int i = 0;
     88          // preload list
     89          foreach (var entry in results.GetEntries()) {
     90            i++;
     91            if((((i*100) / n) % 10) == 0) worker.ReportProgress((i * 100) / n);
     92          }
     93          worker.ReportProgress(100);
     94        };
     95        resultsButton.Enabled = false;
     96        worker.RunWorkerAsync();
     97        worker.RunWorkerCompleted += delegate(object completedSender, RunWorkerCompletedEventArgs compledArgs) {
     98          resultsButton.Enabled = true;
     99          progressBar.Value = 0;
     100          IControl control = factory.CreateView(results);
     101          PluginManager.ControlManager.ShowControl(control);
     102        };
     103      }
     104      catch (Exception ex) {
     105        string text = "Couldn't load selected view: " + viewComboBox.SelectedItem + "\n" + ex.Message;
     106        MessageBox.Show(text, "Unable to create view", MessageBoxButtons.OK, MessageBoxIcon.Error);
     107      }
     108    }
     109
     110    private void ReloadResults() {
     111      results = dataSet.GetResults();
     112    }
    64113  }
    65114}
     115
Note: See TracChangeset for help on using the changeset viewer.