Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/20/11 02:36:00 (13 years ago)
Author:
swagner
Message:

Enabled hiding of parameters (#1377)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Core.Views/3.3/ParameterCollectionView.cs

    r5445 r5768  
    2121
    2222using System;
     23using System.Collections.Generic;
     24using System.Drawing;
     25using System.Linq;
    2326using System.Windows.Forms;
    2427using HeuristicLab.MainForm;
     
    4649    }
    4750
     51    protected override void DeregisterItemEvents(IParameter item) {
     52      item.HiddenChanged -= new EventHandler(Item_HiddenChanged);
     53      base.DeregisterItemEvents(item);
     54    }
     55    protected override void RegisterItemEvents(IParameter item) {
     56      base.RegisterItemEvents(item);
     57      item.HiddenChanged += new EventHandler(Item_HiddenChanged);
     58    }
     59
    4860    protected override IParameter CreateItem() {
    4961      if (createParameterDialog == null) createParameterDialog = new CreateParameterDialog();
     
    5769      return null;
    5870    }
     71
     72    protected override void AddListViewItem(ListViewItem listViewItem) {
     73      IParameter parameter = listViewItem.Tag as IParameter;
     74      if ((parameter != null) && (parameter.Hidden) && (!showHiddenParametersCheckBox.Checked)) {
     75        return; // skip parameter
     76      }
     77      if ((parameter != null) && (parameter.Hidden) && (showHiddenParametersCheckBox.Checked)) {
     78        listViewItem.Font = new Font(listViewItem.Font, FontStyle.Italic);
     79        listViewItem.ForeColor = Color.LightGray;
     80      }
     81      base.AddListViewItem(listViewItem);
     82    }
     83
     84    protected virtual void UpdateParameterVisibility(IParameter parameter) {
     85      if (parameter.Hidden) {
     86        if (showHiddenParametersCheckBox.Checked) {
     87          foreach (ListViewItem listViewItem in GetListViewItemsForItem(parameter)) {
     88            listViewItem.Font = new Font(listViewItem.Font, FontStyle.Italic);
     89            listViewItem.ForeColor = Color.LightGray;
     90          }
     91        } else {
     92          foreach (ListViewItem listViewItem in GetListViewItemsForItem(parameter).ToArray())
     93            RemoveListViewItem(listViewItem);
     94          RebuildImageList();
     95        }
     96      } else {
     97        if (showHiddenParametersCheckBox.Checked) {
     98          foreach (ListViewItem listViewItem in GetListViewItemsForItem(parameter)) {
     99            listViewItem.Font = new Font(listViewItem.Font, FontStyle.Regular);
     100            listViewItem.ForeColor = itemsListView.ForeColor;
     101          }
     102        } else {
     103          for (int i = 0; i < Content.Count(x => x == parameter); i++)
     104            AddListViewItem(CreateListViewItem(parameter));
     105        }
     106      }
     107      AdjustListViewColumnSizes();
     108    }
     109
     110    #region Control Events
     111    protected virtual void showHiddenParametersCheckBox_CheckedChanged(object sender, System.EventArgs e) {
     112      if (showHiddenParametersCheckBox.Checked) {
     113        foreach (IParameter parameter in Content.Where(x => x.Hidden))
     114          AddListViewItem(CreateListViewItem(parameter));
     115        AdjustListViewColumnSizes();
     116      } else {
     117        foreach (IParameter parameter in Content.Where(x => x.Hidden)) {
     118          foreach (ListViewItem listViewItem in GetListViewItemsForItem(parameter).ToArray())
     119            RemoveListViewItem(listViewItem);
     120        }
     121        RebuildImageList();
     122      }
     123    }
     124    protected virtual void itemsListViewContextMenuStrip_Opening(object sender, System.ComponentModel.CancelEventArgs e) {
     125      if ((itemsListView.SelectedItems.Count == 0) || ReadOnly || Locked) {
     126        showHideParametersToolStripMenuItem.Enabled = false;
     127      } else {
     128        List<IParameter> parameters = new List<IParameter>();
     129        foreach (ListViewItem listViewItem in itemsListView.SelectedItems) {
     130          IParameter parameter = listViewItem.Tag as IParameter;
     131          if (parameter != null) parameters.Add(parameter);
     132        }
     133        showHideParametersToolStripMenuItem.Enabled = (parameters.Count > 0) && (parameters.All(x => x.Hidden == parameters[0].Hidden));
     134        if (parameters.Count == 1) showHideParametersToolStripMenuItem.Text = parameters[0].Hidden ? "Show Parameter" : "Hide Parameter";
     135        else showHideParametersToolStripMenuItem.Text = parameters[0].Hidden ? "Show Parameters" : "Hide Parameters";
     136        showHideParametersToolStripMenuItem.Tag = parameters;
     137      }
     138    }
     139    protected virtual void showHideParametersToolStripMenuItem_Click(object sender, System.EventArgs e) {
     140      foreach (IParameter parameter in (IEnumerable<IParameter>)showHideParametersToolStripMenuItem.Tag)
     141        parameter.Hidden = !parameter.Hidden;
     142    }
     143    #endregion
     144
     145    #region Item Events
     146    protected virtual void Item_HiddenChanged(object sender, EventArgs e) {
     147      if (InvokeRequired)
     148        Invoke(new EventHandler(Item_HiddenChanged), sender, e);
     149      else
     150        UpdateParameterVisibility((IParameter)sender);
     151    }
     152    #endregion
    59153  }
    60154}
Note: See TracChangeset for help on using the changeset viewer.