Changeset 6493 for branches/GP.Grammar.Editor/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4
- Timestamp:
- 06/28/11 15:16:25 (13 years ago)
- Location:
- branches/GP.Grammar.Editor/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GP.Grammar.Editor/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarAllowedChildSymbolsControl.cs
r6415 r6493 131 131 132 132 symbolicExpressionTreeChart.SuspendRepaint = false; 133 symbolicExpressionTreeChart.Repaint();134 133 UpdateSelectedSymbolicExpressionTreeNodes(); 135 134 } -
branches/GP.Grammar.Editor/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarEditorView.Designer.cs
r6415 r6493 160 160 this.symbolsTreeView.TabIndex = 0; 161 161 this.symbolsTreeView.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.symbolsTreeView_AfterCheck); 162 this.symbolsTreeView.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.symbolsTreeView_ItemDrag);163 162 this.symbolsTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.symbolsTreeView_AfterSelect); 164 163 this.symbolsTreeView.DragDrop += new System.Windows.Forms.DragEventHandler(this.symbolsTreeView_DragDrop); 165 164 this.symbolsTreeView.DragEnter += new System.Windows.Forms.DragEventHandler(this.symbolsTreeView_DragEnter); 166 165 this.symbolsTreeView.DragOver += new System.Windows.Forms.DragEventHandler(this.symbolsTreeView_DragOver); 166 this.symbolsTreeView.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.symbolsTreeView_ItemDrag); 167 this.symbolsTreeView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.symbolsTreeView_KeyDown); 168 this.symbolsTreeView.MouseDown += new System.Windows.Forms.MouseEventHandler(this.symbolsTreeView_MouseDown); 167 169 // 168 170 // imageList -
branches/GP.Grammar.Editor/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarEditorView.cs
r6415 r6493 102 102 UpdateSymbolsTreeView(); 103 103 if (symbol != null && Content.ContainsSymbol(symbol)) { 104 allowedChildSymbolsControl.Symbol = symbol; 105 symbolDetailsViewHost.Content = symbol; 106 symbolsTreeView.SelectedNode = IterateSymbolTreeNodes().Where(n => n.Tag == symbol).ToList().FirstOrDefault(); 104 symbolsTreeView.SelectedNode = IterateTreeNodes().Where(n => n.Tag == symbol).ToList().FirstOrDefault(); 105 UpdateSymbolDetailsViews(); 107 106 } 108 107 } … … 111 110 private void UpdateSymbolsTreeView() { 112 111 var symbols = Content.Symbols.ToList(); 113 foreach (var treeNode in Iterate SymbolTreeNodes().ToList()) {112 foreach (var treeNode in IterateTreeNodes().ToList()) { 114 113 var symbol = treeNode.Tag as ISymbol; 115 114 if (!symbols.Contains(symbol)) … … 132 131 node.Text = symbol.Name; 133 132 node.Tag = symbol; 134 node.Checked = symbol.Enabled;135 133 collection.Add(node); 136 134 } 135 node.Checked = symbol.Enabled; 137 136 var groupSymbol = symbol as GroupSymbol; 138 137 if (groupSymbol != null) AddChildTreeNodes(node.Nodes, groupSymbol.Symbols); … … 141 140 142 141 private void symbolsTreeView_AfterSelect(object sender, TreeViewEventArgs e) { 143 if (e.Action != TreeViewAction.Unknown) { 144 var symbol = (ISymbol)e.Node.Tag; 145 symbolDetailsViewHost.Content = symbol; 146 allowedChildSymbolsControl.Symbol = symbol; 147 } 142 if (e.Action != TreeViewAction.Unknown) UpdateSymbolDetailsViews(); 143 148 144 removeButton.Enabled = symbolsTreeView.SelectedNode != null && !(symbolsTreeView.SelectedNode.Tag is IReadOnlySymbol); 149 145 copyButton.Enabled = symbolsTreeView.SelectedNode != null && !(symbolsTreeView.SelectedNode.Tag is IReadOnlySymbol); … … 156 152 var symbol = (ISymbol)e.Node.Tag; 157 153 symbol.Enabled = e.Node.Checked; 158 foreach (var node in Iterate SymbolTreeNodes())154 foreach (var node in IterateTreeNodes()) 159 155 node.Checked = ((ISymbol)node.Tag).Enabled; 160 156 161 if (symbolsTreeView.SelectedNode != null) {162 symbol = (ISymbol)symbolsTreeView.SelectedNode.Tag;163 allowedChildSymbolsControl.Symbol = symbol;164 }165 157 Content.FinishedGrammarManipulation(); 166 158 } … … 226 218 #endregion 227 219 220 private void symbolsTreeView_MouseDown(object sender, MouseEventArgs e) { 221 // enables deselection of treeNodes 222 if (symbolsTreeView.SelectedNode == null) return; 223 Point coordinates = new Point(e.X, e.Y); 224 if (e.Button == System.Windows.Forms.MouseButtons.Left && symbolsTreeView.GetNodeAt(coordinates) == null) { 225 symbolsTreeView.SelectedNode = null; 226 symbolDetailsViewHost.Content = null; 227 SetEnabledStateOfControls(); 228 } 229 } 230 231 private void symbolsTreeView_KeyDown(object sender, KeyEventArgs e) { 232 if (ReadOnly) return; 233 if (symbolsTreeView.SelectedNode == null) return; 234 if (e.KeyCode != Keys.Delete) return; 235 236 var symbol = (ISymbol)symbolsTreeView.SelectedNode.Tag; 237 if (!(symbol is IReadOnlySymbol)) 238 Content.RemoveSymbol(symbol); 239 240 SetEnabledStateOfControls(); 241 UpdateSymbolDetailsViews(); 242 RebuildImageList(); 243 } 244 228 245 #region button events 229 246 private TypeSelectorDialog typeSelectorDialog; … … 256 273 var symbol = symbolsTreeView.SelectedNode.Tag as ISymbol; 257 274 if (symbol != null && !(symbol is IReadOnlySymbol)) { 258 allowedChildSymbolsControl.Symbol = null;259 symbolDetailsViewHost.Content = null;260 275 261 276 Content.StartGrammarManipulation(); … … 279 294 if (symbol != null && !(symbol is IReadOnlySymbol)) { 280 295 Content.RemoveSymbol(symbol); 281 allowedChildSymbolsControl.Symbol = null;282 symbolDetailsViewHost.Content = null;283 296 } 284 297 } … … 310 323 } 311 324 312 313 325 private void ChangeDuplicateSymbolNames(ISymbol symbol) { 314 326 foreach (var s in symbol.Flatten()) { … … 322 334 } 323 335 324 private IEnumerable<TreeNode> IterateSymbolTreeNodes(TreeNode node = null) { 336 private void UpdateSymbolDetailsViews() { 337 if (symbolsTreeView.SelectedNode != null) { 338 symbolDetailsViewHost.Content = (ISymbol)symbolsTreeView.SelectedNode.Tag; 339 allowedChildSymbolsControl.Symbol = (ISymbol)symbolsTreeView.SelectedNode.Tag; 340 } else { 341 symbolDetailsViewHost.Content = null; 342 allowedChildSymbolsControl.Symbol = null; 343 } 344 } 345 346 private IEnumerable<TreeNode> IterateTreeNodes(TreeNode node = null) { 325 347 TreeNodeCollection nodes; 326 348 if (node == null) … … 332 354 333 355 foreach (var childNode in nodes.OfType<TreeNode>()) 334 foreach (var n in Iterate SymbolTreeNodes(childNode))356 foreach (var n in IterateTreeNodes(childNode)) 335 357 yield return n; 336 358 } … … 338 360 protected virtual void RebuildImageList() { 339 361 symbolsTreeView.ImageList.Images.Clear(); 340 foreach (TreeNode treeNode in Iterate SymbolTreeNodes()) {362 foreach (TreeNode treeNode in IterateTreeNodes()) { 341 363 var symbol = (ISymbol)treeNode.Tag; 342 364 symbolsTreeView.ImageList.Images.Add(symbol == null ? HeuristicLab.Common.Resources.VSImageLibrary.Nothing : symbol.ItemImage); 343 365 treeNode.ImageIndex = symbolsTreeView.ImageList.Images.Count - 1; 344 366 } 367 } 368 369 //necessary code to handle dock correctly regarding the expanded nodes 370 bool[] expandendedState; 371 protected override void OnHandleCreated(EventArgs e) { 372 base.OnHandleCreated(e); 373 if (expandendedState == null) return; 374 var nodes = IterateTreeNodes().ToList(); 375 for (int i = 0; i < nodes.Count; i++) 376 if (expandendedState[i]) nodes[i].Expand(); 377 } 378 protected override void OnHandleDestroyed(EventArgs e) { 379 base.OnHandleDestroyed(e); 380 var nodes = IterateTreeNodes().ToList(); 381 expandendedState = new bool[nodes.Count]; 382 for (int i = 0; i < nodes.Count; i++) 383 expandendedState[i] = nodes[i].IsExpanded; 345 384 } 346 385 #endregion
Note: See TracChangeset
for help on using the changeset viewer.