Changeset 7215 for branches/HeuristicLab.Hive.Azure/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4
- Timestamp:
- 12/20/11 13:54:57 (13 years ago)
- Location:
- branches/HeuristicLab.Hive.Azure
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive.Azure
- Property svn:ignore
-
old new 4 4 *.suo 5 5 *.vsp 6 Doxygen 6 7 Google.ProtocolBuffers-0.9.1.dll 7 8 HeuristicLab 3.3.5.1.ReSharper.user 8 9 HeuristicLab 3.3.6.0.ReSharper.user 9 10 HeuristicLab.4.5.resharper.user 11 HeuristicLab.ExtLibs.6.0.ReSharper.user 10 12 HeuristicLab.resharper.user 11 13 ProtoGen.exe … … 16 18 bin 17 19 protoc.exe 18 HeuristicLab.ExtLibs.6.0.ReSharper.user19 Doxygen
-
- Property svn:mergeinfo changed
- Property svn:ignore
-
branches/HeuristicLab.Hive.Azure/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarAllowedChildSymbolsControl.cs
r6803 r7215 66 66 private void RegisterGrammarEvents() { 67 67 grammar.Changed += new EventHandler(Grammar_Changed); 68 grammar.ReadOnlyChanged += new EventHandler(Grammar_ReadOnlyChanged); 68 69 } 69 70 private void DeregisterGrammarEvents() { 70 71 grammar.Changed -= new EventHandler(Grammar_Changed); 72 grammar.ReadOnlyChanged -= new EventHandler(Grammar_ReadOnlyChanged); 71 73 } 72 74 … … 78 80 } 79 81 82 private void Grammar_ReadOnlyChanged(object sender, EventArgs e) { 83 if (InvokeRequired) Invoke((MethodInvoker)BuildAllowedChildSymbolsTree); 84 else BuildAllowedChildSymbolsTree(); 85 } 86 80 87 private void OnGrammarChanged() { 81 88 if (Grammar == null) { … … 90 97 91 98 private void BuildAllowedChildSymbolsTree() { 99 if (Symbol == null) { 100 symbolicExpressionTreeChart.Tree = null; 101 return; 102 } 103 92 104 var tree = new SymbolicExpressionTree(new SymbolicExpressionTreeNode(Symbol)); 93 94 105 symbolicExpressionTreeChart.SuspendRepaint = true; 95 106 if (Grammar.GetMaximumSubtreeCount(Symbol) > 0) { 96 107 for (int i = 0; i < Grammar.GetMaximumSubtreeCount(Symbol); i++) { 97 108 var node = new DummySymbol("Subtree " + i).CreateTreeNode(); 109 var groupSymbols = grammar.GetAllowedChildSymbols(Symbol, i).OfType<GroupSymbol>().ToList(); 98 110 foreach (var childSymbol in Grammar.GetAllowedChildSymbols(Symbol, i)) { 99 node.AddSubtree(new SymbolicExpressionTreeNode(childSymbol)); 111 if (!groupSymbols.Any(g => g != childSymbol && g.Flatten().Contains(childSymbol))) 112 node.AddSubtree(new SymbolicExpressionTreeNode(childSymbol)); 100 113 } 101 114 tree.Root.AddSubtree(node); … … 144 157 145 158 private void symbolicExpressionTreeChart_SymbolicExpressionTreeNodeClicked(object sender, MouseEventArgs e) { 159 if (Grammar.ReadOnly) return; 146 160 if ((Control.ModifierKeys & Keys.Control) == 0) 147 161 selectedSymbolicExpressionTreeNodes.Clear(); … … 160 174 161 175 private void symbolicExpressionTreeChart_KeyDown(object sender, KeyEventArgs e) { 176 if (Grammar.ReadOnly) return; 162 177 if (e.KeyCode == Keys.Delete) { 163 178 var root = symbolicExpressionTreeChart.Tree.Root; … … 177 192 private void symbolicExpressionTreeChart_DragEnter(object sender, DragEventArgs e) { 178 193 validDragOperation = false; 194 if (Grammar.ReadOnly) return; 195 179 196 var data = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); 180 197 var symbol = data as ISymbol; … … 192 209 var node = visualNode.SymbolicExpressionTreeNode; 193 210 var root = symbolicExpressionTreeChart.Tree.Root; 194 if (root.Symbol is ProgramRootSymbol) return;195 211 if (node == root || node.Parent == root) e.Effect = DragDropEffects.Copy; 196 212 } … … 257 273 decreaseMaximumSubtreeCountRectangle = new RectangleF(visualRootNode.X + visualRootNode.Width + spacing, visualRootNode.Y + size + 2 * spacing, size, size); 258 274 259 pen.Color = Grammar. GetMaximumSubtreeCount(rootNode.Symbol) == Grammar.GetMinimumSubtreeCount(rootNode.Symbol) ? Color.LightGray : Color.Black;275 pen.Color = Grammar.ReadOnly || Grammar.GetMaximumSubtreeCount(rootNode.Symbol) == Grammar.GetMinimumSubtreeCount(rootNode.Symbol) ? Color.LightGray : Color.Black; 260 276 graphics.DrawString("+", font, pen.Brush, increaseMinimumSubtreeCountRectangle, stringFormat); 261 277 graphics.DrawRectangle(pen, Rectangle.Round(increaseMinimumSubtreeCountRectangle)); 262 278 if (pen.Color == Color.LightGray) increaseMinimumSubtreeCountRectangle = RectangleF.Empty; 263 279 264 pen.Color = Grammar. GetMinimumSubtreeCount(rootNode.Symbol) == rootNode.Symbol.MinimumArity ? Color.LightGray : Color.Black;280 pen.Color = Grammar.ReadOnly || Grammar.GetMinimumSubtreeCount(rootNode.Symbol) == rootNode.Symbol.MinimumArity ? Color.LightGray : Color.Black; 265 281 graphics.DrawString("-", font, pen.Brush, decreaseMinimumSubtreeCountRectangle, stringFormat); 266 282 graphics.DrawRectangle(pen, Rectangle.Round(decreaseMinimumSubtreeCountRectangle)); 267 283 if (pen.Color == Color.LightGray) decreaseMinimumSubtreeCountRectangle = RectangleF.Empty; 268 284 269 pen.Color = Grammar. GetMaximumSubtreeCount(rootNode.Symbol) == rootNode.Symbol.MaximumArity ? Color.LightGray : Color.Black;285 pen.Color = Grammar.ReadOnly || Grammar.GetMaximumSubtreeCount(rootNode.Symbol) == rootNode.Symbol.MaximumArity ? Color.LightGray : Color.Black; 270 286 graphics.DrawRectangle(pen, Rectangle.Round(increaseMaximumSubtreeCountRectangle)); 271 287 graphics.DrawString("+", font, pen.Brush, increaseMaximumSubtreeCountRectangle, stringFormat); 272 288 if (pen.Color == Color.LightGray) increaseMaximumSubtreeCountRectangle = RectangleF.Empty; 273 289 274 pen.Color = Grammar. GetMaximumSubtreeCount(rootNode.Symbol) == Grammar.GetMinimumSubtreeCount(rootNode.Symbol) ? Color.LightGray : Color.Black;290 pen.Color = Grammar.ReadOnly || Grammar.GetMaximumSubtreeCount(rootNode.Symbol) == Grammar.GetMinimumSubtreeCount(rootNode.Symbol) ? Color.LightGray : Color.Black; 275 291 graphics.DrawRectangle(pen, Rectangle.Round(decreaseMaximumSubtreeCountRectangle)); 276 292 graphics.DrawString("-", font, pen.Brush, decreaseMaximumSubtreeCountRectangle, stringFormat); … … 281 297 282 298 private void allowedChildSymbolsControl_MouseDown(object sender, MouseEventArgs e) { 283 if (Grammar == null ) return;299 if (Grammar == null || Grammar.ReadOnly) return; 284 300 if (symbolicExpressionTreeChart.Tree == null) return; 285 301 -
branches/HeuristicLab.Hive.Azure/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarEditorView.Designer.cs
r6803 r7215 162 162 this.symbolsTreeView.TabIndex = 0; 163 163 this.symbolsTreeView.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.symbolsTreeView_AfterCheck); 164 this.symbolsTreeView.BeforeCheck += new System.Windows.Forms.TreeViewCancelEventHandler(symbolsTreeView_BeforeCheck); 164 165 this.symbolsTreeView.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.symbolsTreeView_ItemDrag); 165 166 this.symbolsTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.symbolsTreeView_AfterSelect); -
branches/HeuristicLab.Hive.Azure/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarEditorView.cs
r6803 r7215 54 54 } 55 55 56 private Color treeViewBackColor = Color.Empty; 56 57 protected override void SetEnabledStateOfControls() { 57 58 base.SetEnabledStateOfControls(); 58 addButton.Enabled = Content != null && !Content.ReadOnly; 59 removeButton.Enabled = Content != null && !Content.ReadOnly && symbolsTreeView.SelectedNode != null && !(symbolsTreeView.SelectedNode.Tag is IReadOnlySymbol); 60 copyButton.Enabled = Content != null && !Content.ReadOnly && symbolsTreeView.SelectedNode != null && !(symbolsTreeView.SelectedNode.Tag is IReadOnlySymbol); 59 if (Content == null || Content.ReadOnly || ReadOnly || Locked) { 60 addButton.Enabled = false; 61 removeButton.Enabled = false; 62 copyButton.Enabled = false; 63 treeViewBackColor = symbolsTreeView.BackColor; 64 symbolsTreeView.BackColor = Color.FromArgb(255,240,240,240); 65 } else { 66 addButton.Enabled = true; 67 if (symbolsTreeView.SelectedNode != null && !(symbolsTreeView.SelectedNode.Tag is IReadOnlySymbol)) { 68 removeButton.Enabled = true; 69 copyButton.Enabled = true; 70 } 71 treeViewBackColor = Color.Empty; 72 symbolsTreeView.BackColor = treeViewBackColor; 73 } 61 74 } 62 75 … … 112 125 #endregion 113 126 127 private bool internalTreeViewUpdateInProgress = false; 114 128 private void UpdateSymbolsTreeView() { 129 internalTreeViewUpdateInProgress = true; 115 130 var symbols = Content.Symbols.ToList(); 116 131 foreach (var treeNode in IterateTreeNodes().ToList()) { … … 125 140 126 141 RebuildImageList(); 142 internalTreeViewUpdateInProgress = false; 127 143 } 128 144 129 145 private void UpdateChildTreeNodes(TreeNodeCollection collection, IEnumerable<ISymbol> symbols) { 130 146 foreach (ISymbol symbol in symbols) { 147 if (symbol is ProgramRootSymbol) continue; 148 if (symbol is Defun) continue; 149 131 150 TreeNode node = collection.Cast<TreeNode>().Where(n => n.Tag == symbol).FirstOrDefault(); 132 151 if (node == null) { … … 145 164 private void symbolsTreeView_AfterSelect(object sender, TreeViewEventArgs e) { 146 165 if (e.Action != TreeViewAction.Unknown) UpdateSymbolDetailsViews(); 147 148 removeButton.Enabled = symbolsTreeView.SelectedNode != null && !(symbolsTreeView.SelectedNode.Tag is IReadOnlySymbol); 149 copyButton.Enabled = symbolsTreeView.SelectedNode != null && !(symbolsTreeView.SelectedNode.Tag is IReadOnlySymbol); 166 SetEnabledStateOfControls(); 150 167 } 151 168 … … 161 178 Content.FinishedGrammarManipulation(); 162 179 } 180 } 181 182 private void symbolsTreeView_BeforeCheck(object sender, TreeViewCancelEventArgs e) { 183 if (internalTreeViewUpdateInProgress) return; 184 if (Content == null || Content.ReadOnly) e.Cancel = true; 185 if (ReadOnly || Locked) e.Cancel = true; 163 186 } 164 187 … … 180 203 private void symbolsTreeView_DragEnter(object sender, DragEventArgs e) { 181 204 validDragOperation = false; 182 if (Content == null ) return;205 if (Content == null || Content.ReadOnly || ReadOnly || Locked) return; 183 206 184 207 var data = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat); … … 227 250 Point coordinates = new Point(e.X, e.Y); 228 251 TreeNode node = symbolsTreeView.GetNodeAt(coordinates); 229 if (e.Button == System.Windows.Forms.MouseButtons.Left && node == null) {252 if (e.Button == MouseButtons.Left && node == null) { 230 253 symbolsTreeView.SelectedNode = null; 231 254 symbolDetailsViewHost.Content = null; … … 235 258 236 259 private void symbolsTreeView_KeyDown(object sender, KeyEventArgs e) { 237 if ( ReadOnly) return;260 if (Content == null || Content.ReadOnly || ReadOnly || Locked) return; 238 261 if (symbolsTreeView.SelectedNode == null) return; 239 262 if (e.KeyCode != Keys.Delete) return; -
branches/HeuristicLab.Hive.Azure/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarSampleExpressionTreeView.Designer.cs
r6803 r7215 52 52 this.maxTreeDepthTextBox = new System.Windows.Forms.TextBox(); 53 53 this.generateSampleTreeButton = new System.Windows.Forms.Button(); 54 this.treeCreatorComboBox = new System.Windows.Forms.ComboBox(); 55 this.treeCreatorLabel = new System.Windows.Forms.Label(); 54 56 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); 55 57 this.sampleTreeGroupBox.SuspendLayout(); … … 69 71 // sampleTreeGroupBox 70 72 // 71 this.sampleTreeGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 72 | System.Windows.Forms.AnchorStyles.Left)73 | System.Windows.Forms.AnchorStyles.Right)));73 this.sampleTreeGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 74 | System.Windows.Forms.AnchorStyles.Left) 75 | System.Windows.Forms.AnchorStyles.Right))); 74 76 this.sampleTreeGroupBox.Controls.Add(this.sampleTreeView); 75 this.sampleTreeGroupBox.Location = new System.Drawing.Point(3, 1 07);77 this.sampleTreeGroupBox.Location = new System.Drawing.Point(3, 134); 76 78 this.sampleTreeGroupBox.Name = "sampleTreeGroupBox"; 77 this.sampleTreeGroupBox.Size = new System.Drawing.Size(431, 2 92);79 this.sampleTreeGroupBox.Size = new System.Drawing.Size(431, 265); 78 80 this.sampleTreeGroupBox.TabIndex = 3; 79 81 this.sampleTreeGroupBox.TabStop = false; … … 89 91 this.sampleTreeView.Name = "sampleTreeView"; 90 92 this.sampleTreeView.ReadOnly = false; 91 this.sampleTreeView.Size = new System.Drawing.Size(425, 2 73);93 this.sampleTreeView.Size = new System.Drawing.Size(425, 246); 92 94 this.sampleTreeView.TabIndex = 0; 93 95 // … … 112 114 // maxTreeLengthTextBox 113 115 // 114 this.maxTreeLengthTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 115 | System.Windows.Forms.AnchorStyles.Right)));116 this.maxTreeLengthTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 117 | System.Windows.Forms.AnchorStyles.Right))); 116 118 this.maxTreeLengthTextBox.Location = new System.Drawing.Point(93, 26); 117 119 this.maxTreeLengthTextBox.Name = "maxTreeLengthTextBox"; … … 124 126 // maxTreeDepthTextBox 125 127 // 126 this.maxTreeDepthTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 127 | System.Windows.Forms.AnchorStyles.Right)));128 this.maxTreeDepthTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 129 | System.Windows.Forms.AnchorStyles.Right))); 128 130 this.maxTreeDepthTextBox.Location = new System.Drawing.Point(93, 52); 129 131 this.maxTreeDepthTextBox.Name = "maxTreeDepthTextBox"; … … 136 138 // generateSampleTreeButton 137 139 // 138 this.generateSampleTreeButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 139 | System.Windows.Forms.AnchorStyles.Right)));140 this.generateSampleTreeButton.Location = new System.Drawing.Point( 3, 78);140 this.generateSampleTreeButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 141 | System.Windows.Forms.AnchorStyles.Right))); 142 this.generateSampleTreeButton.Location = new System.Drawing.Point(6, 105); 141 143 this.generateSampleTreeButton.Name = "generateSampleTreeButton"; 142 144 this.generateSampleTreeButton.Size = new System.Drawing.Size(431, 23); … … 146 148 this.generateSampleTreeButton.Click += new System.EventHandler(this.generateSampleTreeButton_Click); 147 149 // 150 // treeCreatorComboBox 151 // 152 this.treeCreatorComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 153 | System.Windows.Forms.AnchorStyles.Right))); 154 this.treeCreatorComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 155 this.treeCreatorComboBox.FormattingEnabled = true; 156 this.treeCreatorComboBox.Location = new System.Drawing.Point(93, 78); 157 this.treeCreatorComboBox.Name = "treeCreatorComboBox"; 158 this.treeCreatorComboBox.Size = new System.Drawing.Size(341, 21); 159 this.treeCreatorComboBox.TabIndex = 9; 160 this.treeCreatorComboBox.SelectedIndexChanged += new System.EventHandler(this.treeCreatorComboBox_SelectedIndexChanged); 161 // 162 // treeCreatorLabel 163 // 164 this.treeCreatorLabel.AutoSize = true; 165 this.treeCreatorLabel.Location = new System.Drawing.Point(3, 81); 166 this.treeCreatorLabel.Name = "treeCreatorLabel"; 167 this.treeCreatorLabel.Size = new System.Drawing.Size(69, 13); 168 this.treeCreatorLabel.TabIndex = 10; 169 this.treeCreatorLabel.Text = "Tree Creator:"; 170 // 148 171 // SymbolicExpressionGrammarSampleExpressionTreeView 149 172 // 150 173 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 151 174 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 175 this.Controls.Add(this.treeCreatorLabel); 152 176 this.Controls.Add(this.sampleTreeGroupBox); 153 177 this.Controls.Add(this.maxTreeDepthLabel); 154 178 this.Controls.Add(this.maxTreeLengthTextBox); 179 this.Controls.Add(this.treeCreatorComboBox); 155 180 this.Controls.Add(this.maxTreeLengthLabel); 156 181 this.Controls.Add(this.maxTreeDepthTextBox); … … 161 186 this.Controls.SetChildIndex(this.maxTreeDepthTextBox, 0); 162 187 this.Controls.SetChildIndex(this.maxTreeLengthLabel, 0); 188 this.Controls.SetChildIndex(this.treeCreatorComboBox, 0); 163 189 this.Controls.SetChildIndex(this.maxTreeLengthTextBox, 0); 164 190 this.Controls.SetChildIndex(this.maxTreeDepthLabel, 0); 165 191 this.Controls.SetChildIndex(this.sampleTreeGroupBox, 0); 192 this.Controls.SetChildIndex(this.treeCreatorLabel, 0); 166 193 this.Controls.SetChildIndex(this.nameTextBox, 0); 167 194 this.Controls.SetChildIndex(this.infoLabel, 0); … … 183 210 private System.Windows.Forms.Button generateSampleTreeButton; 184 211 private GraphicalSymbolicExpressionTreeView sampleTreeView; 212 private System.Windows.Forms.ComboBox treeCreatorComboBox; 213 private System.Windows.Forms.Label treeCreatorLabel; 185 214 } 186 215 } -
branches/HeuristicLab.Hive.Azure/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarSampleExpressionTreeView.cs
r6803 r7215 39 39 maxSampleTreeLength = int.Parse(maxTreeLengthTextBox.Text); 40 40 maxSampleTreeDepth = int.Parse(maxTreeDepthTextBox.Text); 41 foreach (var treeCreator in ApplicationManager.Manager.GetInstances<ISymbolicExpressionTreeCreator>()) { 42 treeCreatorComboBox.Items.Add(treeCreator); 43 } 44 treeCreatorComboBox.SelectedIndex = 0; 41 45 } 42 46 … … 97 101 private void UpdateSampleTreeView() { 98 102 try { 99 ISymbolicExpressionTree tree = ProbabilisticTreeCreator.Create(random, Content, MaxSampleTreeLength, MaxSampleTreeDepth); 103 ISymbolicExpressionTreeCreator creator = (ISymbolicExpressionTreeCreator)treeCreatorComboBox.SelectedItem; 104 ISymbolicExpressionTree tree = creator.CreateTree(random, Content, MaxSampleTreeLength, MaxSampleTreeDepth); 100 105 foreach (var node in tree.Root.IterateNodesPrefix().OfType<SymbolicExpressionTreeTopLevelNode>()) 101 106 node.SetGrammar(null); … … 147 152 } 148 153 #endregion 154 155 private void treeCreatorComboBox_SelectedIndexChanged(object sender, EventArgs e) { 156 } 149 157 } 150 158 }
Note: See TracChangeset
for help on using the changeset viewer.