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:
2 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
Note: See TracChangeset for help on using the changeset viewer.