public void visit(NonterminalTailD nonterminalTailD) { NonterminalTailV nonterminalTailV = new NonterminalTailV(nonterminalTailD, level + 1); nonterminalTailD.AddReference(nonterminalTailV); current = nonterminalTailV; }
public void visit(NonterminalTailV nonterminalTailV) { if (nonterminalTailV.IsExpanded) { nonterminalTailV.Rule.accept(this); drawnItem = new NonterminalExpanded(nonterminalTailV, drawnItem); } else { drawnItem = new NonterminalCollapsed(nonterminalTailV); } }
public NonterminalCollapsed(NonterminalTailV nonterminalTailIn) { InitializeComponent(); Init(nonterminalTailIn); }
private void Init(NonterminalTailV nonterminalTailIn) { reference = nonterminalTailIn; labelName.Content = "_" + reference.Name; this.Background = Global.Settings.getBrush(reference.Level); if (reference.Reference.Reference.IsSelected) SetBorderThickness(2.0); if ((reference.Reference.Parent.Parent as ChoiceD).Children.Count == 1) rightClickMenu.Items.Remove(removeChoice); // let the controller hear me y'all ViewController.ViewListener.Listen(this); }
public NonterminalExpanded(NonterminalTailV ruleIn, UserControl visualisedSymbolsIn) { InitializeComponent(); Init(ruleIn, visualisedSymbolsIn, false); }
public void AddReference(NonterminalTailV refIn) { reference.AddReference(refIn); }
private void Init(SymbolV ruleIn, UserControl visualisedSymbolsIn, bool isStartSymbolIn) { visualisedSymbols = visualisedSymbolsIn; isStartSymbol = isStartSymbolIn; if (isStartSymbol) { referenceHead = (NonterminalHeadV)ruleIn; referenceTail = null; setName(referenceHead.Name); this.Background = Global.Settings.getBrush(0); collapseBtn.Visibility = Visibility.Collapsed; if (referenceHead.Reference.IsSelected) SetBorderThickness(2.0); rightClickMenu.Visibility = Visibility.Collapsed; } else { referenceHead = null; referenceTail = (NonterminalTailV)ruleIn; if ((referenceTail.Reference.Parent.Parent as OperationD).Children.Count == 1) rightClickMenu.Items.Remove(removeChoice); setName(referenceTail.Name); this.Background = Global.Settings.getBrush(referenceTail.Level); if (referenceTail.Reference.Reference.IsSelected) SetBorderThickness(2.0); } // change direction of nont chilren if necessary if (ruleIn.Direction) { // draw top to bottom stackPanelOuter.Orientation = Orientation.Horizontal; stackPanelHeading.Orientation = Orientation.Vertical; stackPanelInner.Orientation = Orientation.Vertical; stackPanelName.Orientation = Orientation.Horizontal; arrow_down.Visibility = Visibility.Visible; arrow_right.Visibility = Visibility.Collapsed; } // add child to GUI stackPanelInner.Children.Remove(holder); stackPanelInner.Children.Add(visualisedSymbols); // let the controller hear me y'all ViewController.ViewListener.Listen(this); }
public void visit(NonterminalTailV nonterminalTailV) { if (nonterminalTailV.IsExpanded) nonterminalTailV.Rule.accept(this); }
public void Collapse(NonterminalTailV control) { control.Collapse(); }
public void Expand(NonterminalTailV control) { control.Expand(); }
private GrammarNodeV newVisual() { if (newItem is UndefinedD) { UndefinedD undefinedD = newItem as UndefinedD; UndefinedV visual = new UndefinedV(undefinedD, level); undefinedD.References.Add(visual); return visual; } else if (newItem is TerminalD) { TerminalD terminalD = newItem as TerminalD; TerminalV visual = new TerminalV(terminalD, level); terminalD.References.Add(visual); return visual; } else if (newItem is NonterminalTailD) { NonterminalTailD nontTailD = newItem as NonterminalTailD; NonterminalTailV visual = new NonterminalTailV(nontTailD, level); nontTailD.AddReference(visual); return visual; } else throw new NotImplementedException(); }
internal void setRule(NonterminalTailV nonterminalTailV) { rule = nonterminalTailV.Reference.getMyRule(); }