Changeset 3327


Ignore:
Timestamp:
04/13/10 12:01:02 (11 years ago)
Author:
swagner
Message:

Fixed bug which was introduced in r3306 (#893).

Location:
trunk/sources
Files:
4 edited

Legend:

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

    r3317 r3327  
    102102      listViewItem.ToolTipText = item.ItemName + ": " + item.ItemDescription;
    103103      listViewItem.Tag = item;
    104       SetListViewItemImage(listViewItem);
     104      itemsListView.SmallImageList.Images.Add(item.ItemImage);
     105      listViewItem.ImageIndex = itemsListView.SmallImageList.Images.Count - 1;
    105106      return listViewItem;
    106107    }
     
    119120      sortDescendingButton.Enabled = itemsListView.Items.Count > 0;
    120121    }
    121     protected virtual void UpdateListViewItem(ListViewItem listViewItem) {
     122    protected virtual void UpdateListViewItemImage(ListViewItem listViewItem) {
     123      int i = listViewItem.ImageIndex;
     124      listViewItem.ImageList.Images[i] = ((T)listViewItem.Tag).ItemImage;
     125      listViewItem.ImageIndex = -1;
     126      listViewItem.ImageIndex = i;
     127    }
     128    protected virtual void UpdateListViewItemText(ListViewItem listViewItem) {
    122129      if (!listViewItem.Text.Equals(listViewItem.Tag.ToString()))
    123130        listViewItem.Text = listViewItem.Tag.ToString();
    124       if (itemsListView.SmallImageList.Images[listViewItem.ImageIndex] != ((T)listViewItem.Tag).ItemImage)
    125         SetListViewItemImage(listViewItem);
    126131    }
    127132    protected virtual IEnumerable<ListViewItem> GetListViewItemsForItem(T item) {
     
    262267        T item = (T)sender;
    263268        foreach (ListViewItem listViewItem in GetListViewItemsForItem(item))
    264           UpdateListViewItem(listViewItem);
     269          UpdateListViewItemImage(listViewItem);
    265270      }
    266271    }
     
    271276        T item = (T)sender;
    272277        foreach (ListViewItem listViewItem in GetListViewItemsForItem(item))
    273           UpdateListViewItem(listViewItem);
     278          UpdateListViewItemText(listViewItem);
    274279      }
    275280    }
     
    277282
    278283    #region Helpers
    279     protected virtual void SetListViewItemImage(ListViewItem listViewItem) {
    280       T item = (T)listViewItem.Tag;
    281       int i = 0;
    282       while ((i < itemsListView.SmallImageList.Images.Count) && !item.ItemImage.Equals(itemsListView.SmallImageList.Images[i]))
    283         i++;
    284       if (i == itemsListView.SmallImageList.Images.Count) itemsListView.SmallImageList.Images.Add(item.ItemImage);
    285       listViewItem.ImageIndex = i;
    286     }
    287284    protected virtual void SortItemsListView(SortOrder sortOrder) {
    288285      itemsListView.Sorting = SortOrder.None;
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemListView.cs

    r3306 r3327  
    123123      listViewItem.ToolTipText = item.ItemName + ": " + item.ItemDescription;
    124124      listViewItem.Tag = item;
    125       SetListViewItemImage(listViewItem);
     125      itemsListView.SmallImageList.Images.Add(item.ItemImage);
     126      listViewItem.ImageIndex = itemsListView.SmallImageList.Images.Count - 1;
    126127      return listViewItem;
    127128    }
     
    141142      listViewItem.Remove();
    142143    }
    143     protected virtual void UpdateListViewItem(ListViewItem listViewItem) {
    144       T item = (T)listViewItem.Tag;
    145       listViewItem.Text = item.ToString();
    146       listViewItem.ToolTipText = item.ItemName + ": " + item.ItemDescription;
    147       if (itemsListView.SmallImageList.Images[listViewItem.ImageIndex] != item.ItemImage)
    148         SetListViewItemImage(listViewItem);
     144    protected virtual void UpdateListViewItemImage(ListViewItem listViewItem) {
     145      int i = listViewItem.ImageIndex;
     146      listViewItem.ImageList.Images[i] = ((T)listViewItem.Tag).ItemImage;
     147      listViewItem.ImageIndex = -1;
     148      listViewItem.ImageIndex = i;
     149    }
     150    protected virtual void UpdateListViewItemText(ListViewItem listViewItem) {
     151      if (!listViewItem.Text.Equals(listViewItem.Tag.ToString()))
     152        listViewItem.Text = listViewItem.Tag.ToString();
    149153    }
    150154
     
    311315          ListViewItem listViewItem = itemsListView.Items[item.Index];
    312316          listViewItem.Tag = item.Value;
    313           UpdateListViewItem(listViewItem);
     317          UpdateListViewItemImage(listViewItem);
     318          UpdateListViewItemText(listViewItem);
    314319        }
    315320      }
     
    339344        foreach (ListViewItem listViewItem in itemsListView.Items) {
    340345          if (((T)listViewItem.Tag) == item)
    341             UpdateListViewItem(listViewItem);
     346            UpdateListViewItemImage(listViewItem);
    342347        }
    343348      }
     
    350355        foreach (ListViewItem listViewItem in itemsListView.Items) {
    351356          if (((T)listViewItem.Tag) == item)
    352             UpdateListViewItem(listViewItem);
     357            UpdateListViewItemText(listViewItem);
    353358        }
    354359      }
    355     }
    356     #endregion
    357 
    358     #region Helpers
    359     protected virtual void SetListViewItemImage(ListViewItem listViewItem) {
    360       T item = (T)listViewItem.Tag;
    361       int i = 0;
    362       while ((i < itemsListView.SmallImageList.Images.Count) && (item.ItemImage != itemsListView.SmallImageList.Images[i]))
    363         i++;
    364       if (i == itemsListView.SmallImageList.Images.Count) itemsListView.SmallImageList.Images.Add(item.ItemImage);
    365       listViewItem.ImageIndex = i;
    366360    }
    367361    #endregion
  • trunk/sources/HeuristicLab.Core.Views/3.3/NamedItemCollectionView.cs

    r2947 r3327  
    100100        foreach (T item in e.Items) {
    101101          foreach (ListViewItem listViewItem in GetListViewItemsForItem(item))
    102             UpdateListViewItem(listViewItem);
     102            UpdateListViewItemText(listViewItem);
    103103        }
    104104      }
Note: See TracChangeset for help on using the changeset viewer.