- Timestamp:
- 04/14/10 05:09:59 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Core.Views/3.3/OperatorTreeView.cs
r3135 r3341 124 124 private void FillTreeNode(TreeNode node, IOperator op) { 125 125 if (op == null) { 126 if (!graphTreeView.ImageList.Images.ContainsKey("Default"))127 graphTreeView.ImageList.Images.Add("Default", HeuristicLab.Common.Resources.VS2008ImageLibrary.Method);128 129 126 node.Text += "-"; 130 127 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; 132 130 node.SelectedImageIndex = node.ImageIndex; 133 131 node.ForeColor = graphTreeView.ForeColor; 134 132 } else { 135 if (!graphTreeView.ImageList.Images.ContainsKey(op.GetType().FullName))136 graphTreeView.ImageList.Images.Add(op.GetType().FullName, op.ItemImage);137 138 133 node.Text += op.Name; 139 134 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; 141 137 node.SelectedImageIndex = node.ImageIndex; 142 138 SetOperatorTag(node, op); … … 144 140 if (!operatorNodeTable.ContainsKey(op)) { 145 141 operatorNodeTable.Add(op, new List<TreeNode>()); 142 op.ItemImageChanged += new EventHandler(op_ItemImageChanged); 146 143 op.NameChanged += new EventHandler(op_NameChanged); 147 144 op.BreakpointChanged += new EventHandler(op_BreakpointChanged); … … 168 165 RemoveTreeNode(node.Nodes[0]); 169 166 167 if (node.ImageIndex != -1) { 168 int i = node.ImageIndex; 169 CorrectImageIndexes(graphTreeView.Nodes, i); 170 graphTreeView.ImageList.Images.RemoveAt(i); 171 } 172 170 173 IOperator op = GetOperatorTag(node); 171 174 if (op != null) { 172 175 operatorNodeTable[op].Remove(node); 173 176 if (operatorNodeTable[op].Count == 0) { 177 op.ItemImageChanged -= new EventHandler(op_ItemImageChanged); 174 178 op.NameChanged -= new EventHandler(op_NameChanged); 175 179 op.BreakpointChanged -= new EventHandler(op_BreakpointChanged); … … 229 233 node.Text = opParam.Name + ": "; 230 234 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; 231 250 } 232 251 } … … 433 452 ((Tuple<IValueParameter<IOperator>, IOperator>)node.Tag).Item2 = op; 434 453 } 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 } 435 464 #endregion 436 465 }
Note: See TracChangeset
for help on using the changeset viewer.