Free cookie consent management tool by TermsFeed Policy Generator

Changeset 9613


Ignore:
Timestamp:
06/12/13 13:15:52 (11 years ago)
Author:
mkommend
Message:

#1971: Adapted ItemCollectionView and RunCollectionView to use batch events if the content supports them.

Location:
trunk/sources
Files:
2 edited

Legend:

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

    r9540 r9613  
    4545    }
    4646
     47    public ItemCollection<T> ItemCollection {
     48      get { return Content as ItemCollection<T>; }
     49    }
     50
    4751    public bool ShowDetails {
    4852      get { return showDetailsCheckBox.Checked; }
     
    232236      if (e.KeyCode == Keys.Delete) {
    233237        if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly && !ReadOnly) {
    234           foreach (ListViewItem item in itemsListView.SelectedItems)
    235             Content.Remove((T)item.Tag);
     238          if (ItemCollection != null) ItemCollection.RemoveRange(itemsListView.SelectedItems.Cast<ListViewItem>().Select(i => (T)i.Tag));
     239          else {
     240            foreach (ListViewItem item in itemsListView.SelectedItems)
     241              Content.Remove((T)item.Tag);
     242          }
    236243        }
    237244      }
     
    304311            items = items.Select(x => cloner.Clone(x));
    305312          }
    306           foreach (T item in items)
    307             Content.Add(item);
     313          if (ItemCollection != null) ItemCollection.AddRange(items);
     314          else {
     315            foreach (T item in items)
     316              Content.Add(item);
     317          }
    308318        }
    309319      }
     
    325335    protected virtual void removeButton_Click(object sender, EventArgs e) {
    326336      if (itemsListView.SelectedItems.Count > 0) {
    327         foreach (ListViewItem item in itemsListView.SelectedItems)
    328           Content.Remove((T)item.Tag);
     337        if (ItemCollection != null) {
     338          ItemCollection.RemoveRange(itemsListView.SelectedItems.Cast<ListViewItem>().Select(i => (T)i.Tag));
     339        } else {
     340          foreach (ListViewItem item in itemsListView.SelectedItems)
     341            Content.Remove((T)item.Tag);
     342        }
    329343        itemsListView.SelectedItems.Clear();
    330344      }
  • trunk/sources/HeuristicLab.Optimization.Views/3.3/RunCollectionViews/RunCollectionView.cs

    r9456 r9613  
    255255      if (e.KeyCode == Keys.Delete) {
    256256        if ((itemsListView.SelectedItems.Count > 0) && !Content.IsReadOnly && !ReadOnly) {
    257           foreach (ListViewItem item in itemsListView.SelectedItems)
    258             Content.Remove((IRun)item.Tag);
     257          if (RunCollection != null) {
     258            RunCollection.RemoveRange(itemsListView.SelectedItems.Cast<ListViewItem>().Select(i => (IRun)i.Tag));
     259          } else {
     260            foreach (ListViewItem item in itemsListView.SelectedItems)
     261              Content.Remove((IRun)item.Tag);
     262          }
    259263        }
    260264      }
     
    350354    private void removeButton_Click(object sender, EventArgs e) {
    351355      if (itemsListView.SelectedItems.Count > 0) {
    352         foreach (ListViewItem item in itemsListView.SelectedItems)
    353           Content.Remove((IRun)item.Tag);
     356        if (RunCollection != null) {
     357          RunCollection.RemoveRange(itemsListView.SelectedItems.Cast<ListViewItem>().Select(i => (IRun)i.Tag));
     358        } else {
     359          foreach (ListViewItem item in itemsListView.SelectedItems)
     360            Content.Remove((IRun)item.Tag);
     361        }
    354362        itemsListView.SelectedItems.Clear();
    355363      }
     
    377385      try {
    378386        RunCollection.Modify();
    379       } finally {
     387      }
     388      finally {
    380389        ReadOnly = false;
    381390      }
Note: See TracChangeset for help on using the changeset viewer.