Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/05/08 02:08:02 (16 years ago)
Author:
swagner
Message:

Worked on ticket #41

  • added generic ItemList<T>
File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Data/ItemListView_T.cs

    r38 r40  
    2727using System.Text;
    2828using System.Windows.Forms;
    29 using HeuristicLab.PluginInfrastructure;
    3029using HeuristicLab.Core;
    3130
    3231namespace HeuristicLab.Data {
    33   public partial class ItemListView : ViewBase {
     32  public partial class ItemListView<T> : ViewBase where T : IItem {
    3433    private ChooseItemDialog chooseItemDialog;
    3534
    36     public ItemList ItemList {
    37       get { return (ItemList)Item; }
     35    public ItemList<T> ItemList {
     36      get { return (ItemList<T>)Item; }
    3837      set { base.Item = value; }
    3938    }
     
    4342      itemsListView.Columns[0].Width = Math.Max(0, itemsListView.Width - 25);
    4443    }
    45     public ItemListView(ItemList itemList)
     44    public ItemListView(ItemList<T> itemList)
    4645      : this() {
    4746      ItemList = itemList;
     
    4948
    5049    protected override void RemoveItemEvents() {
    51       ItemList.ItemTypeChanged -= new EventHandler(ItemList_ItemTypeChanged);
    5250      ItemList.ItemAdded -= new EventHandler<ItemIndexEventArgs>(ItemList_ItemInserted);
    5351      ItemList.ItemRemoved -= new EventHandler<ItemIndexEventArgs>(ItemList_ItemRemoved);
     
    5755    protected override void AddItemEvents() {
    5856      base.AddItemEvents();
    59       ItemList.ItemTypeChanged += new EventHandler(ItemList_ItemTypeChanged);
    6057      ItemList.ItemAdded += new EventHandler<ItemIndexEventArgs>(ItemList_ItemInserted);
    6158      ItemList.ItemRemoved += new EventHandler<ItemIndexEventArgs>(ItemList_ItemRemoved);
     
    7067      if (ItemList == null) {
    7168        typeTextBox.Text = "";
    72         setTypeButton.Enabled = false;
    7369        splitContainer.Enabled = false;
    7470      } else {
    75         typeTextBox.Text = ItemList.ItemType.FullName;
    76         setTypeButton.Enabled = true;
     71        typeTextBox.Text = typeof(T).FullName;
    7772        splitContainer.Enabled = true;
    7873        foreach (ListViewItem item in itemsListView.Items) {
     
    125120
    126121    #region Button Events
    127     private void setTypeButton_Click(object sender, EventArgs e) {
    128       ChooseTypeDialog dialog = new ChooseTypeDialog();
    129       dialog.Caption = "Set Item Type";
    130       if (dialog.ShowDialog(this) == DialogResult.OK) {
    131         try {
    132           ItemList.ItemType = dialog.Type;
    133         }
    134         catch (Exception ex) {
    135           Auxiliary.ShowErrorMessageBox(ex);
    136         }
    137       }
    138       dialog.Dispose();
    139     }
    140122    private void addButton_Click(object sender, EventArgs e) {
    141123      if (chooseItemDialog == null) {
    142         chooseItemDialog = new ChooseItemDialog(ItemList.ItemType);
     124        chooseItemDialog = new ChooseItemDialog(typeof(T));
    143125        chooseItemDialog.Caption = "Add Item";
    144126      }
    145127      if (chooseItemDialog.ShowDialog(this) == DialogResult.OK) {
    146128        try {
    147           ItemList.Add(chooseItemDialog.Item);
     129          ItemList.Add((T)chooseItemDialog.Item);
    148130        }
    149131        catch (Exception ex) {
     
    193175          if (item != null) {
    194176            int index = item.Index;
    195             ItemList.Remove(data);
    196             ItemList.Insert(index, data);
     177            ItemList.Remove((T)data);
     178            ItemList.Insert(index, (T)data);
    197179            itemsListView.SelectedIndices.Clear();
    198180            itemsListView.SelectedIndices.Add(index);
     
    204186
    205187    #region Item and Item List Events
    206     private void ItemList_ItemTypeChanged(object sender, EventArgs e) {
    207       if (InvokeRequired)
    208         Invoke(new EventHandler(ItemList_ItemTypeChanged), sender, e);
    209       else {
    210         typeTextBox.Text = ItemList.ItemType.FullName;
    211         if (chooseItemDialog != null) chooseItemDialog.Dispose();
    212         chooseItemDialog = new ChooseItemDialog(ItemList.ItemType);
    213         chooseItemDialog.Caption = "Add Item";
    214       }
    215     }
    216188    private void ItemList_ItemInserted(object sender, ItemIndexEventArgs e) {
    217189      if (InvokeRequired)
Note: See TracChangeset for help on using the changeset viewer.