Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/14/10 05:09:59 (14 years ago)
Author:
swagner
Message:

Implemented reviewers' comments (#893).

Location:
trunk/sources/HeuristicLab.Core.Views/3.3
Files:
6 edited

Legend:

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

    r3299 r3341  
    9090      else {
    9191        if (!itemListViewItemTable.ContainsKey(item)) {
    92           if (!listView.SmallImageList.Images.ContainsKey(item.GetType().FullName))
    93             listView.SmallImageList.Images.Add(item.GetType().FullName, item.ItemImage);
    94 
    9592          ListViewItem listViewItem = new ListViewItem(item.ToString());
    9693          listViewItem.ToolTipText = item.ItemName + ": " + item.ItemDescription;
    97           listViewItem.ImageIndex = listView.SmallImageList.Images.IndexOfKey(item.GetType().FullName);
     94          listView.SmallImageList.Images.Add(item.ItemImage);
     95          listViewItem.ImageIndex = listView.SmallImageList.Images.Count - 1;
    9896          listViewItem.Tag = item;
    9997          listView.Items.Add(listViewItem);
    10098          itemListViewItemTable.Add(item, listViewItem);
     99          item.ItemImageChanged += new EventHandler(Item_ItemImageChanged);
    101100          item.ToStringChanged += new EventHandler(Item_ToStringChanged);
    102101          sortAscendingButton.Enabled = sortDescendingButton.Enabled = listView.Items.Count > 1;
     
    105104      }
    106105    }
     106
    107107    private void RemoveItem(T item) {
    108108      if (InvokeRequired)
     
    110110      else {
    111111        if (itemListViewItemTable.ContainsKey(item)) {
     112          item.ItemImageChanged -= new EventHandler(Item_ItemImageChanged);
    112113          item.ToStringChanged -= new EventHandler(Item_ToStringChanged);
    113           itemListViewItemTable[item].Remove();
     114          ListViewItem listViewItem = itemListViewItemTable[item];
     115          listViewItem.Remove();
     116          foreach (ListViewItem other in listView.Items)
     117            if (other.ImageIndex > listViewItem.ImageIndex) other.ImageIndex--;
     118          listView.SmallImageList.Images.RemoveAt(listViewItem.ImageIndex);
    114119          itemListViewItemTable.Remove(item);
    115120          sortAscendingButton.Enabled = sortDescendingButton.Enabled = listView.Items.Count > 1;
     
    282287
    283288    #region Item Events
     289    private void Item_ItemImageChanged(object sender, EventArgs e) {
     290      if (InvokeRequired)
     291        Invoke(new EventHandler(Item_ItemImageChanged), sender, e);
     292      else {
     293        T item = (T)sender;
     294        ListViewItem listViewItem = itemListViewItemTable[item];
     295        int i = listViewItem.ImageIndex;
     296        listViewItem.ImageList.Images[i] = item.ItemImage;
     297        listViewItem.ImageIndex = -1;
     298        listViewItem.ImageIndex = i;
     299      }
     300    }
    284301    private void Item_ToStringChanged(object sender, EventArgs e) {
    285302      if (InvokeRequired)
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemArrayView.Designer.cs

    r3281 r3341  
    6363      this.itemsGroupBox = new System.Windows.Forms.GroupBox();
    6464      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
     65      this.removeButton = new System.Windows.Forms.Button();
     66      this.addButton = new System.Windows.Forms.Button();
    6567      this.splitContainer.Panel1.SuspendLayout();
    6668      this.splitContainer.Panel2.SuspendLayout();
     
    7981      // splitContainer.Panel1
    8082      //
     83      this.splitContainer.Panel1.Controls.Add(this.addButton);
    8184      this.splitContainer.Panel1.Controls.Add(this.moveUpButton);
     85      this.splitContainer.Panel1.Controls.Add(this.removeButton);
    8286      this.splitContainer.Panel1.Controls.Add(this.moveDownButton);
    8387      this.splitContainer.Panel1.Controls.Add(this.itemsListView);
     
    9498      this.moveUpButton.Enabled = false;
    9599      this.moveUpButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.ArrowUp;
    96       this.moveUpButton.Location = new System.Drawing.Point(3, 3);
     100      this.moveUpButton.Location = new System.Drawing.Point(33, 3);
    97101      this.moveUpButton.Name = "moveUpButton";
    98102      this.moveUpButton.Size = new System.Drawing.Size(24, 24);
    99       this.moveUpButton.TabIndex = 0;
     103      this.moveUpButton.TabIndex = 1;
    100104      this.toolTip.SetToolTip(this.moveUpButton, "Move Up");
    101105      this.moveUpButton.UseVisualStyleBackColor = true;
     
    106110      this.moveDownButton.Enabled = false;
    107111      this.moveDownButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.ArrowDown;
    108       this.moveDownButton.Location = new System.Drawing.Point(33, 3);
     112      this.moveDownButton.Location = new System.Drawing.Point(63, 3);
    109113      this.moveDownButton.Name = "moveDownButton";
    110114      this.moveDownButton.Size = new System.Drawing.Size(24, 24);
    111       this.moveDownButton.TabIndex = 1;
     115      this.moveDownButton.TabIndex = 2;
    112116      this.toolTip.SetToolTip(this.moveDownButton, "Move Down");
    113117      this.moveDownButton.UseVisualStyleBackColor = true;
     
    129133      this.itemsListView.Size = new System.Drawing.Size(194, 286);
    130134      this.itemsListView.SmallImageList = this.imageList;
    131       this.itemsListView.TabIndex = 2;
     135      this.itemsListView.TabIndex = 4;
    132136      this.itemsListView.UseCompatibleStateImageBehavior = false;
    133137      this.itemsListView.View = System.Windows.Forms.View.Details;
     
    170174      this.viewHost.Size = new System.Drawing.Size(271, 269);
    171175      this.viewHost.TabIndex = 0;
     176      this.viewHost.ViewType = null;
    172177      //
    173178      // itemsGroupBox
     
    181186      this.itemsGroupBox.TabStop = false;
    182187      this.itemsGroupBox.Text = "Items";
     188      //
     189      // removeButton
     190      //
     191      this.removeButton.Enabled = false;
     192      this.removeButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Remove;
     193      this.removeButton.Location = new System.Drawing.Point(93, 3);
     194      this.removeButton.Name = "removeButton";
     195      this.removeButton.Size = new System.Drawing.Size(24, 24);
     196      this.removeButton.TabIndex = 3;
     197      this.toolTip.SetToolTip(this.removeButton, "Clear");
     198      this.removeButton.UseVisualStyleBackColor = true;
     199      this.removeButton.Click += new System.EventHandler(this.removeButton_Click);
     200      //
     201      // addButton
     202      //
     203      this.addButton.Enabled = false;
     204      this.addButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Add;
     205      this.addButton.Location = new System.Drawing.Point(3, 3);
     206      this.addButton.Name = "addButton";
     207      this.addButton.Size = new System.Drawing.Size(24, 24);
     208      this.addButton.TabIndex = 0;
     209      this.toolTip.SetToolTip(this.addButton, "Set");
     210      this.addButton.UseVisualStyleBackColor = true;
     211      this.addButton.Click += new System.EventHandler(this.addButton_Click);
    183212      //
    184213      // ItemArrayView
     
    209238    protected ImageList imageList;
    210239    protected HeuristicLab.MainForm.WindowsForms.ViewHost viewHost;
     240    protected Button removeButton;
     241    protected Button addButton;
    211242  }
    212243}
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemArrayView.cs

    r3228 r3341  
    112112    }
    113113    protected virtual ListViewItem CreateListViewItem(T item) {
    114       if (item == null) {
    115         return new ListViewItem("null");
    116       } else {
    117         if (!itemsListView.SmallImageList.Images.ContainsKey(item.GetType().FullName))
    118           itemsListView.SmallImageList.Images.Add(item.GetType().FullName, item.ItemImage);
    119 
    120         ListViewItem listViewItem = new ListViewItem();
    121         listViewItem.Text = item.ToString();
    122         listViewItem.ToolTipText = item.ItemName + ": " + item.ItemDescription;
    123         listViewItem.ImageIndex = itemsListView.SmallImageList.Images.IndexOfKey(item.GetType().FullName);
    124         listViewItem.Tag = item;
    125         return listViewItem;
    126       }
     114      ListViewItem listViewItem = new ListViewItem();
     115      listViewItem.Text = item == null ? "null" : item.ToString();
     116      listViewItem.ToolTipText = item == null ? string.Empty : item.ItemName + ": " + item.ItemDescription;
     117      itemsListView.SmallImageList.Images.Add(item == null ? HeuristicLab.Common.Resources.VS2008ImageLibrary.Nothing : item.ItemImage);
     118      listViewItem.ImageIndex = itemsListView.SmallImageList.Images.Count - 1;
     119      listViewItem.Tag = item;
     120      return listViewItem;
    127121    }
    128122    protected virtual void AddListViewItem(ListViewItem listViewItem) {
    129123      itemsListView.Items.Add(listViewItem);
    130       if (listViewItem.Tag != null)
     124      if (listViewItem.Tag != null) {
     125        ((T)listViewItem.Tag).ItemImageChanged += new EventHandler(Item_ItemImageChanged);
    131126        ((T)listViewItem.Tag).ToStringChanged += new EventHandler(Item_ToStringChanged);
     127      }
    132128    }
    133129    protected virtual void InsertListViewItem(int index, ListViewItem listViewItem) {
    134130      itemsListView.Items.Insert(index, listViewItem);
    135       if (listViewItem.Tag != null)
     131      if (listViewItem.Tag != null) {
     132        ((T)listViewItem.Tag).ItemImageChanged += new EventHandler(Item_ItemImageChanged);
    136133        ((T)listViewItem.Tag).ToStringChanged += new EventHandler(Item_ToStringChanged);
     134      }
    137135    }
    138136    protected virtual void RemoveListViewItem(ListViewItem listViewItem) {
    139       if (listViewItem.Tag != null)
     137      if (listViewItem.Tag != null) {
     138        ((T)listViewItem.Tag).ItemImageChanged -= new EventHandler(Item_ItemImageChanged);
    140139        ((T)listViewItem.Tag).ToStringChanged -= new EventHandler(Item_ToStringChanged);
     140      }
    141141      listViewItem.Remove();
    142     }
    143     protected virtual void UpdateListViewItem(ListViewItem listViewItem) {
     142      foreach (ListViewItem other in itemsListView.Items)
     143        if (other.ImageIndex > listViewItem.ImageIndex) other.ImageIndex--;
     144      itemsListView.SmallImageList.Images.RemoveAt(listViewItem.ImageIndex);
     145    }
     146    protected virtual void UpdateListViewItemImage(ListViewItem listViewItem) {
    144147      T item = listViewItem.Tag as T;
    145       if ((item != null) && (!itemsListView.SmallImageList.Images.ContainsKey(item.GetType().FullName)))
    146         itemsListView.SmallImageList.Images.Add(item.GetType().FullName, item.ItemImage);
    147 
     148      int i = listViewItem.ImageIndex;
     149      listViewItem.ImageList.Images[i] = item == null ? HeuristicLab.Common.Resources.VS2008ImageLibrary.Nothing : item.ItemImage;
     150      listViewItem.ImageIndex = -1;
     151      listViewItem.ImageIndex = i;
     152    }
     153    protected virtual void UpdateListViewItemText(ListViewItem listViewItem) {
     154      T item = listViewItem.Tag as T;
    148155      listViewItem.Text = item == null ? "null" : item.ToString();
    149156      listViewItem.ToolTipText = item == null ? string.Empty : item.ItemName + ": " + item.ItemDescription;
    150       listViewItem.ImageIndex = item == null ? -1 : itemsListView.SmallImageList.Images.IndexOfKey(item.GetType().FullName);
    151157    }
    152158
    153159    protected virtual void itemsListView_SelectedIndexChanged(object sender, EventArgs e) {
     160      addButton.Enabled = itemsListView.SelectedItems.Count > 0 && !Content.IsReadOnly;
    154161      moveUpButton.Enabled = itemsListView.SelectedItems.Count == 1 &&
    155162                             itemsListView.SelectedIndices[0] != 0 &&
     
    158165                               itemsListView.SelectedIndices[0] != itemsListView.Items.Count - 1 &&
    159166                               !Content.IsReadOnly;
     167      removeButton.Enabled = itemsListView.SelectedItems.Count > 0 && !Content.IsReadOnly;
    160168
    161169      if (itemsListView.SelectedItems.Count == 1) {
     
    239247
    240248    #region Button Events
     249    protected virtual void addButton_Click(object sender, EventArgs e) {
     250      if (itemsListView.SelectedItems.Count > 0) {
     251        T item = CreateItem();
     252        if (item != null) {
     253          foreach (ListViewItem listViewItem in itemsListView.SelectedItems)
     254            Content[listViewItem.Index] = item;
     255        }
     256      }
     257    }
    241258    protected virtual void moveUpButton_Click(object sender, EventArgs e) {
    242259      if (itemsListView.SelectedItems.Count == 1) {
     
    259276      }
    260277    }
     278    protected virtual void removeButton_Click(object sender, EventArgs e) {
     279      if (itemsListView.SelectedItems.Count > 0) {
     280        foreach (ListViewItem item in itemsListView.SelectedItems)
     281          Content[item.Index] = null;
     282      }
     283    }
    261284    #endregion
    262285
     
    289312          ListViewItem listViewItem = itemsListView.Items[item.Index];
    290313          listViewItem.Tag = item.Value;
    291           UpdateListViewItem(listViewItem);
     314          UpdateListViewItemImage(listViewItem);
     315          UpdateListViewItemText(listViewItem);
    292316        }
    293317      }
     
    310334
    311335    #region Item Events
    312     protected virtual void Item_ToStringChanged(object sender, EventArgs e) {
    313       if (InvokeRequired)
    314         Invoke(new EventHandler(Item_ToStringChanged), sender, e);
     336    protected virtual void Item_ItemImageChanged(object sender, EventArgs e) {
     337      if (InvokeRequired)
     338        Invoke(new EventHandler(Item_ItemImageChanged), sender, e);
    315339      else {
    316340        T item = (T)sender;
    317341        foreach (ListViewItem listViewItem in itemsListView.Items) {
    318342          if (((T)listViewItem.Tag) == item)
    319             UpdateListViewItem(listViewItem);
     343            UpdateListViewItemImage(listViewItem);
     344        }
     345      }
     346    }
     347    protected virtual void Item_ToStringChanged(object sender, EventArgs e) {
     348      if (InvokeRequired)
     349        Invoke(new EventHandler(Item_ToStringChanged), sender, e);
     350      else {
     351        T item = (T)sender;
     352        foreach (ListViewItem listViewItem in itemsListView.Items) {
     353          if (((T)listViewItem.Tag) == item)
     354            UpdateListViewItemText(listViewItem);
    320355        }
    321356      }
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemCollectionView.cs

    r3327 r3341  
    117117      ((T)listViewItem.Tag).ToStringChanged -= new EventHandler(Item_ToStringChanged);
    118118      listViewItem.Remove();
     119      foreach (ListViewItem other in itemsListView.Items)
     120        if (other.ImageIndex > listViewItem.ImageIndex) other.ImageIndex--;
     121      itemsListView.SmallImageList.Images.RemoveAt(listViewItem.ImageIndex);
    119122      sortAscendingButton.Enabled = itemsListView.Items.Count > 0;
    120123      sortDescendingButton.Enabled = itemsListView.Items.Count > 0;
  • trunk/sources/HeuristicLab.Core.Views/3.3/ItemListView.cs

    r3327 r3341  
    141141      ((T)listViewItem.Tag).ToStringChanged -= new EventHandler(Item_ToStringChanged);
    142142      listViewItem.Remove();
     143      foreach (ListViewItem other in itemsListView.Items)
     144        if (other.ImageIndex > listViewItem.ImageIndex) other.ImageIndex--;
     145      itemsListView.SmallImageList.Images.RemoveAt(listViewItem.ImageIndex);
    143146    }
    144147    protected virtual void UpdateListViewItemImage(ListViewItem listViewItem) {
  • trunk/sources/HeuristicLab.Core.Views/3.3/OperatorTreeView.cs

    r3135 r3341  
    124124    private void FillTreeNode(TreeNode node, IOperator op) {
    125125      if (op == null) {
    126         if (!graphTreeView.ImageList.Images.ContainsKey("Default"))
    127           graphTreeView.ImageList.Images.Add("Default", HeuristicLab.Common.Resources.VS2008ImageLibrary.Method);
    128 
    129126        node.Text += "-";
    130127        node.ToolTipText = "";
    131         node.ImageIndex = graphTreeView.ImageList.Images.IndexOfKey("Default"); ;
     128        graphTreeView.ImageList.Images.Add(HeuristicLab.Common.Resources.VS2008ImageLibrary.Nothing);
     129        node.ImageIndex = graphTreeView.ImageList.Images.Count - 1;
    132130        node.SelectedImageIndex = node.ImageIndex;
    133131        node.ForeColor = graphTreeView.ForeColor;
    134132      } else {
    135         if (!graphTreeView.ImageList.Images.ContainsKey(op.GetType().FullName))
    136           graphTreeView.ImageList.Images.Add(op.GetType().FullName, op.ItemImage);
    137 
    138133        node.Text += op.Name;
    139134        node.ToolTipText = op.ItemName + ": " + op.ItemDescription;
    140         node.ImageIndex = graphTreeView.ImageList.Images.IndexOfKey(op.GetType().FullName);
     135        graphTreeView.ImageList.Images.Add(op.ItemImage);
     136        node.ImageIndex = graphTreeView.ImageList.Images.Count - 1;
    141137        node.SelectedImageIndex = node.ImageIndex;
    142138        SetOperatorTag(node, op);
     
    144140        if (!operatorNodeTable.ContainsKey(op)) {
    145141          operatorNodeTable.Add(op, new List<TreeNode>());
     142          op.ItemImageChanged += new EventHandler(op_ItemImageChanged);
    146143          op.NameChanged += new EventHandler(op_NameChanged);
    147144          op.BreakpointChanged += new EventHandler(op_BreakpointChanged);
     
    168165        RemoveTreeNode(node.Nodes[0]);
    169166
     167      if (node.ImageIndex != -1) {
     168        int i = node.ImageIndex;
     169        CorrectImageIndexes(graphTreeView.Nodes, i);
     170        graphTreeView.ImageList.Images.RemoveAt(i);
     171      }
     172
    170173      IOperator op = GetOperatorTag(node);
    171174      if (op != null) {
    172175        operatorNodeTable[op].Remove(node);
    173176        if (operatorNodeTable[op].Count == 0) {
     177          op.ItemImageChanged -= new EventHandler(op_ItemImageChanged);
    174178          op.NameChanged -= new EventHandler(op_NameChanged);
    175179          op.BreakpointChanged -= new EventHandler(op_BreakpointChanged);
     
    229233          node.Text = opParam.Name + ": ";
    230234          FillTreeNode(node, opParam.Value);
     235        }
     236      }
     237    }
     238    void op_ItemImageChanged(object sender, EventArgs e) {
     239      if (InvokeRequired)
     240        Invoke(new EventHandler(op_ItemImageChanged), sender, e);
     241      else {
     242        IOperator op = (IOperator)sender;
     243        foreach (TreeNode node in operatorNodeTable[op]) {
     244          int i = node.ImageIndex;
     245          graphTreeView.ImageList.Images[i] = op.ItemImage;
     246          node.ImageIndex = -1;
     247          node.SelectedImageIndex = -1;
     248          node.ImageIndex = i;
     249          node.SelectedImageIndex = i;
    231250        }
    232251      }
     
    433452        ((Tuple<IValueParameter<IOperator>, IOperator>)node.Tag).Item2 = op;
    434453    }
     454
     455    private void CorrectImageIndexes(TreeNodeCollection nodes, int removedIndex) {
     456      foreach (TreeNode node in nodes) {
     457        if (node.ImageIndex > removedIndex) {
     458          node.ImageIndex--;
     459          node.SelectedImageIndex--;
     460        }
     461        CorrectImageIndexes(node.Nodes, removedIndex);
     462      }
     463    }
    435464    #endregion
    436465  }
Note: See TracChangeset for help on using the changeset viewer.