Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/20/11 13:54:57 (13 years ago)
Author:
spimming
Message:

#1680:

  • merged changes from trunk into branch

' removed pre-build event for multiple app.configs

Location:
branches/HeuristicLab.Hive.Azure
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive.Azure

  • branches/HeuristicLab.Hive.Azure/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarAllowedChildSymbolsControl.cs

    r6803 r7215  
    6666    private void RegisterGrammarEvents() {
    6767      grammar.Changed += new EventHandler(Grammar_Changed);
     68      grammar.ReadOnlyChanged += new EventHandler(Grammar_ReadOnlyChanged);
    6869    }
    6970    private void DeregisterGrammarEvents() {
    7071      grammar.Changed -= new EventHandler(Grammar_Changed);
     72      grammar.ReadOnlyChanged -= new EventHandler(Grammar_ReadOnlyChanged);
    7173    }
    7274
     
    7880    }
    7981
     82    private void Grammar_ReadOnlyChanged(object sender, EventArgs e) {
     83      if (InvokeRequired) Invoke((MethodInvoker)BuildAllowedChildSymbolsTree);
     84      else BuildAllowedChildSymbolsTree();
     85    }
     86
    8087    private void OnGrammarChanged() {
    8188      if (Grammar == null) {
     
    9097
    9198    private void BuildAllowedChildSymbolsTree() {
     99      if (Symbol == null) {
     100        symbolicExpressionTreeChart.Tree = null;
     101        return;
     102      }
     103
    92104      var tree = new SymbolicExpressionTree(new SymbolicExpressionTreeNode(Symbol));
    93 
    94105      symbolicExpressionTreeChart.SuspendRepaint = true;
    95106      if (Grammar.GetMaximumSubtreeCount(Symbol) > 0) {
    96107        for (int i = 0; i < Grammar.GetMaximumSubtreeCount(Symbol); i++) {
    97108          var node = new DummySymbol("Subtree " + i).CreateTreeNode();
     109          var groupSymbols = grammar.GetAllowedChildSymbols(Symbol, i).OfType<GroupSymbol>().ToList();
    98110          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));
    100113          }
    101114          tree.Root.AddSubtree(node);
     
    144157
    145158    private void symbolicExpressionTreeChart_SymbolicExpressionTreeNodeClicked(object sender, MouseEventArgs e) {
     159      if (Grammar.ReadOnly) return;
    146160      if ((Control.ModifierKeys & Keys.Control) == 0)
    147161        selectedSymbolicExpressionTreeNodes.Clear();
     
    160174
    161175    private void symbolicExpressionTreeChart_KeyDown(object sender, KeyEventArgs e) {
     176      if (Grammar.ReadOnly) return;
    162177      if (e.KeyCode == Keys.Delete) {
    163178        var root = symbolicExpressionTreeChart.Tree.Root;
     
    177192    private void symbolicExpressionTreeChart_DragEnter(object sender, DragEventArgs e) {
    178193      validDragOperation = false;
     194      if (Grammar.ReadOnly) return;
     195
    179196      var data = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat);
    180197      var symbol = data as ISymbol;
     
    192209          var node = visualNode.SymbolicExpressionTreeNode;
    193210          var root = symbolicExpressionTreeChart.Tree.Root;
    194           if (root.Symbol is ProgramRootSymbol) return;
    195211          if (node == root || node.Parent == root) e.Effect = DragDropEffects.Copy;
    196212        }
     
    257273          decreaseMaximumSubtreeCountRectangle = new RectangleF(visualRootNode.X + visualRootNode.Width + spacing, visualRootNode.Y + size + 2 * spacing, size, size);
    258274
    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;
    260276          graphics.DrawString("+", font, pen.Brush, increaseMinimumSubtreeCountRectangle, stringFormat);
    261277          graphics.DrawRectangle(pen, Rectangle.Round(increaseMinimumSubtreeCountRectangle));
    262278          if (pen.Color == Color.LightGray) increaseMinimumSubtreeCountRectangle = RectangleF.Empty;
    263279
    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;
    265281          graphics.DrawString("-", font, pen.Brush, decreaseMinimumSubtreeCountRectangle, stringFormat);
    266282          graphics.DrawRectangle(pen, Rectangle.Round(decreaseMinimumSubtreeCountRectangle));
    267283          if (pen.Color == Color.LightGray) decreaseMinimumSubtreeCountRectangle = RectangleF.Empty;
    268284
    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;
    270286          graphics.DrawRectangle(pen, Rectangle.Round(increaseMaximumSubtreeCountRectangle));
    271287          graphics.DrawString("+", font, pen.Brush, increaseMaximumSubtreeCountRectangle, stringFormat);
    272288          if (pen.Color == Color.LightGray) increaseMaximumSubtreeCountRectangle = RectangleF.Empty;
    273289
    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;
    275291          graphics.DrawRectangle(pen, Rectangle.Round(decreaseMaximumSubtreeCountRectangle));
    276292          graphics.DrawString("-", font, pen.Brush, decreaseMaximumSubtreeCountRectangle, stringFormat);
     
    281297
    282298    private void allowedChildSymbolsControl_MouseDown(object sender, MouseEventArgs e) {
    283       if (Grammar == null) return;
     299      if (Grammar == null || Grammar.ReadOnly) return;
    284300      if (symbolicExpressionTreeChart.Tree == null) return;
    285301
  • branches/HeuristicLab.Hive.Azure/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarEditorView.Designer.cs

    r6803 r7215  
    162162      this.symbolsTreeView.TabIndex = 0;
    163163      this.symbolsTreeView.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.symbolsTreeView_AfterCheck);
     164      this.symbolsTreeView.BeforeCheck += new System.Windows.Forms.TreeViewCancelEventHandler(symbolsTreeView_BeforeCheck);
    164165      this.symbolsTreeView.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.symbolsTreeView_ItemDrag);
    165166      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  
    5454    }
    5555
     56    private Color treeViewBackColor = Color.Empty;
    5657    protected override void SetEnabledStateOfControls() {
    5758      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      }
    6174    }
    6275
     
    112125    #endregion
    113126
     127    private bool internalTreeViewUpdateInProgress = false;
    114128    private void UpdateSymbolsTreeView() {
     129      internalTreeViewUpdateInProgress = true;
    115130      var symbols = Content.Symbols.ToList();
    116131      foreach (var treeNode in IterateTreeNodes().ToList()) {
     
    125140
    126141      RebuildImageList();
     142      internalTreeViewUpdateInProgress = false;
    127143    }
    128144
    129145    private void UpdateChildTreeNodes(TreeNodeCollection collection, IEnumerable<ISymbol> symbols) {
    130146      foreach (ISymbol symbol in symbols) {
     147        if (symbol is ProgramRootSymbol) continue;
     148        if (symbol is Defun) continue;
     149
    131150        TreeNode node = collection.Cast<TreeNode>().Where(n => n.Tag == symbol).FirstOrDefault();
    132151        if (node == null) {
     
    145164    private void symbolsTreeView_AfterSelect(object sender, TreeViewEventArgs e) {
    146165      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();
    150167    }
    151168
     
    161178        Content.FinishedGrammarManipulation();
    162179      }
     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;
    163186    }
    164187
     
    180203    private void symbolsTreeView_DragEnter(object sender, DragEventArgs e) {
    181204      validDragOperation = false;
    182       if (Content == null) return;
     205      if (Content == null || Content.ReadOnly || ReadOnly || Locked) return;
    183206
    184207      var data = e.Data.GetData(HeuristicLab.Common.Constants.DragDropDataFormat);
     
    227250      Point coordinates = new Point(e.X, e.Y);
    228251      TreeNode node = symbolsTreeView.GetNodeAt(coordinates);
    229       if (e.Button == System.Windows.Forms.MouseButtons.Left && node == null) {
     252      if (e.Button == MouseButtons.Left && node == null) {
    230253        symbolsTreeView.SelectedNode = null;
    231254        symbolDetailsViewHost.Content = null;
     
    235258
    236259    private void symbolsTreeView_KeyDown(object sender, KeyEventArgs e) {
    237       if (ReadOnly) return;
     260      if (Content == null || Content.ReadOnly || ReadOnly || Locked) return;
    238261      if (symbolsTreeView.SelectedNode == null) return;
    239262      if (e.KeyCode != Keys.Delete) return;
  • branches/HeuristicLab.Hive.Azure/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarSampleExpressionTreeView.Designer.cs

    r6803 r7215  
    5252      this.maxTreeDepthTextBox = new System.Windows.Forms.TextBox();
    5353      this.generateSampleTreeButton = new System.Windows.Forms.Button();
     54      this.treeCreatorComboBox = new System.Windows.Forms.ComboBox();
     55      this.treeCreatorLabel = new System.Windows.Forms.Label();
    5456      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
    5557      this.sampleTreeGroupBox.SuspendLayout();
     
    6971      // sampleTreeGroupBox
    7072      //
    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)));
    7476      this.sampleTreeGroupBox.Controls.Add(this.sampleTreeView);
    75       this.sampleTreeGroupBox.Location = new System.Drawing.Point(3, 107);
     77      this.sampleTreeGroupBox.Location = new System.Drawing.Point(3, 134);
    7678      this.sampleTreeGroupBox.Name = "sampleTreeGroupBox";
    77       this.sampleTreeGroupBox.Size = new System.Drawing.Size(431, 292);
     79      this.sampleTreeGroupBox.Size = new System.Drawing.Size(431, 265);
    7880      this.sampleTreeGroupBox.TabIndex = 3;
    7981      this.sampleTreeGroupBox.TabStop = false;
     
    8991      this.sampleTreeView.Name = "sampleTreeView";
    9092      this.sampleTreeView.ReadOnly = false;
    91       this.sampleTreeView.Size = new System.Drawing.Size(425, 273);
     93      this.sampleTreeView.Size = new System.Drawing.Size(425, 246);
    9294      this.sampleTreeView.TabIndex = 0;
    9395      //
     
    112114      // maxTreeLengthTextBox
    113115      //
    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)));
    116118      this.maxTreeLengthTextBox.Location = new System.Drawing.Point(93, 26);
    117119      this.maxTreeLengthTextBox.Name = "maxTreeLengthTextBox";
     
    124126      // maxTreeDepthTextBox
    125127      //
    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)));
    128130      this.maxTreeDepthTextBox.Location = new System.Drawing.Point(93, 52);
    129131      this.maxTreeDepthTextBox.Name = "maxTreeDepthTextBox";
     
    136138      // generateSampleTreeButton
    137139      //
    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);
    141143      this.generateSampleTreeButton.Name = "generateSampleTreeButton";
    142144      this.generateSampleTreeButton.Size = new System.Drawing.Size(431, 23);
     
    146148      this.generateSampleTreeButton.Click += new System.EventHandler(this.generateSampleTreeButton_Click);
    147149      //
     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      //
    148171      // SymbolicExpressionGrammarSampleExpressionTreeView
    149172      //
    150173      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    151174      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     175      this.Controls.Add(this.treeCreatorLabel);
    152176      this.Controls.Add(this.sampleTreeGroupBox);
    153177      this.Controls.Add(this.maxTreeDepthLabel);
    154178      this.Controls.Add(this.maxTreeLengthTextBox);
     179      this.Controls.Add(this.treeCreatorComboBox);
    155180      this.Controls.Add(this.maxTreeLengthLabel);
    156181      this.Controls.Add(this.maxTreeDepthTextBox);
     
    161186      this.Controls.SetChildIndex(this.maxTreeDepthTextBox, 0);
    162187      this.Controls.SetChildIndex(this.maxTreeLengthLabel, 0);
     188      this.Controls.SetChildIndex(this.treeCreatorComboBox, 0);
    163189      this.Controls.SetChildIndex(this.maxTreeLengthTextBox, 0);
    164190      this.Controls.SetChildIndex(this.maxTreeDepthLabel, 0);
    165191      this.Controls.SetChildIndex(this.sampleTreeGroupBox, 0);
     192      this.Controls.SetChildIndex(this.treeCreatorLabel, 0);
    166193      this.Controls.SetChildIndex(this.nameTextBox, 0);
    167194      this.Controls.SetChildIndex(this.infoLabel, 0);
     
    183210    private System.Windows.Forms.Button generateSampleTreeButton;
    184211    private GraphicalSymbolicExpressionTreeView sampleTreeView;
     212    private System.Windows.Forms.ComboBox treeCreatorComboBox;
     213    private System.Windows.Forms.Label treeCreatorLabel;
    185214  }
    186215}
  • branches/HeuristicLab.Hive.Azure/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarSampleExpressionTreeView.cs

    r6803 r7215  
    3939      maxSampleTreeLength = int.Parse(maxTreeLengthTextBox.Text);
    4040      maxSampleTreeDepth = int.Parse(maxTreeDepthTextBox.Text);
     41      foreach (var treeCreator in ApplicationManager.Manager.GetInstances<ISymbolicExpressionTreeCreator>()) {
     42        treeCreatorComboBox.Items.Add(treeCreator);
     43      }
     44      treeCreatorComboBox.SelectedIndex = 0;
    4145    }
    4246
     
    97101    private void UpdateSampleTreeView() {
    98102      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);
    100105        foreach (var node in tree.Root.IterateNodesPrefix().OfType<SymbolicExpressionTreeTopLevelNode>())
    101106          node.SetGrammar(null);
     
    147152    }
    148153    #endregion
     154
     155    private void treeCreatorComboBox_SelectedIndexChanged(object sender, EventArgs e) {
     156    }
    149157  }
    150158}
Note: See TracChangeset for help on using the changeset viewer.