Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/08/09 12:48:18 (15 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/TableResultsView.cs

    r1106 r1287  
    99using HeuristicLab.Core;
    1010using HeuristicLab.CEDMA.Core;
     11using HeuristicLab.PluginInfrastructure;
     12using HeuristicLab.CEDMA.DB.Interfaces;
    1113
    1214namespace HeuristicLab.CEDMA.Core {
    13   public partial class TableResultsView : ViewBase, IResultsView {
    14     private Results results;
    15     public TableResultsView() {
     15
     16  public partial class TableResultsView : ViewBase {
     17    private Results Results {
     18      get { return (Results)Item; }
     19      set { Item = value; }
     20    }
     21    private bool suppressEvents;
     22    public TableResultsView(Results results) {
     23      suppressEvents = false;
    1624      InitializeComponent();
     25      Results = results;
     26      results.Changed += new EventHandler(results_Changed);
    1727    }
    1828
    19     public Control Control {
    20       get { return this; }
    21     }
    22 
    23     public void ShowResults(Results results) {
    24       this.results = results;
     29    void results_Changed(object sender, EventArgs e) {
     30      if (suppressEvents) return;
    2531      UpdateControls();
    2632    }
    2733
    2834    protected override void UpdateControls() {
    29       base.UpdateControls();
    30       if (results == null) return;
    31       List<string> columnNames = new List<string>();
    32       columnNames.AddRange(Results.CategoricalVariables);
    33       columnNames.AddRange(Results.OrdinalVariables);
     35      suppressEvents = true;
    3436      dataGridView.Rows.Clear();
    3537      dataGridView.Columns.Clear();
    36       foreach (string varName in columnNames) {
    37         dataGridView.Columns.Add(varName, varName);
     38      List<string> attributeNames = Results.SelectModelAttributes().ToList();
     39      foreach (var attribute in attributeNames) {
     40        dataGridView.Columns.Add(attribute, attribute);
    3841      }
    3942
    40       foreach (object[] row in results.SelectRows(columnNames)) {
    41         dataGridView.Rows.Add(row);
     43      var entries = Results.GetEntries();
     44      foreach (var entry in entries) {
     45        int rowIndex = dataGridView.Rows.Add();
     46        dataGridView.Rows[rowIndex].Tag = entry;
     47        foreach (string attrName in attributeNames) {
     48          dataGridView.Rows[rowIndex].Cells[attrName].Value = entry.Get(attrName);
     49        }
     50        if (entry.Selected) dataGridView.Rows[rowIndex].Selected = true;
    4251      }
    4352      dataGridView.Update();
     53      suppressEvents = false;
     54    }
     55
     56    private void dataGridView_SelectionChanged(object sender, EventArgs e) {
     57      if (suppressEvents) return;
     58      foreach (DataGridViewRow row in dataGridView.Rows) {
     59        ((ResultsEntry)row.Tag).Selected = row.Selected;
     60      }
     61      suppressEvents = true;
     62      Results.FireChanged();
     63      suppressEvents = false;
     64    }
     65
     66    private void dataGridView_MouseDoubleClick(object sender, MouseEventArgs e) {
     67      if (e.Button == MouseButtons.Left && e.Clicks == 2) {
     68        DataGridView.HitTestInfo hitInfo = dataGridView.HitTest(e.X, e.Y);
     69        ResultsEntry entry = (ResultsEntry)dataGridView.Rows[hitInfo.RowIndex].Tag;
     70        string serializedData =  (string)entry.Get(Ontology.PredicateSerializedData.Uri.Replace(Ontology.CedmaNameSpace, ""));
     71        var model = (IItem)PersistenceManager.RestoreFromGZip(Convert.FromBase64String(serializedData));
     72        PluginManager.ControlManager.ShowControl(model.CreateView());
     73      }
    4474    }
    4575  }
     76
     77  public class TablesResultsViewFactory : IResultsViewFactory {
     78    #region IResultsViewFactory Members
     79
     80    public string Name {
     81      get { return "Table"; }
     82    }
     83
     84    public IControl CreateView(Results results) {
     85      return new TableResultsView(results);
     86    }
     87
     88    #endregion
     89  }
    4690}
Note: See TracChangeset for help on using the changeset viewer.