void UpdateText(ViewModel.Node node, NodeAspect aspect) { switch (aspect) { case NodeAspect.NodeHeader: if (node == null) { base.Text = "<<null>>"; } else if (node is ViewModel.CaptureNode cn) { base.Text = String.Format("c[{0}]:", cn.Index); } else if (node is ViewModel.GroupNode gn) { base.Text = String.Format("g[{0} or \"{1}\"]:", gn.Number, gn.Name); } else if (node is ViewModel.MatchNode mn) { base.Text = String.Format("m[{0}]:", mn.Index); } else if (node is ViewModel.LineNode ln) { base.Text = String.Format("l[{0}]:", ln.Index); } break; case NodeAspect.NodeText: if (node == null) { base.Text = "<<null>>"; } else if (!node.Success) { base.Text = "--- FAILURE ---"; } else if (String.IsNullOrEmpty(node.Text)) { base.Text = "--- EMPTY ---"; } else { base.Text = PrepareNodeText(node.Text); } break; case NodeAspect.TooltipHeader: if (node == null) { base.Text = "<<null>>"; } else if (node is ViewModel.CaptureNode cn) { base.Text = String.Format("group.Captures[{0}]", cn.Index); } else if (node is ViewModel.GroupNode gn) { base.Text = String.Format("match.Groups[{0}] or match.Groups[\"{1}\"]", gn.Number, gn.Name); } else if (node is ViewModel.MatchNode mn) { base.Text = String.Format("matches[{0}]", mn.Index); } else if (node is ViewModel.LineNode ln) { base.Text = String.Format("lines[{0}]", ln.Index); } break; case NodeAspect.TooltipText: if (node == null) { base.Text = "<<null>>"; } else if (String.IsNullOrEmpty(node.Text)) { base.Text = "--- EMPTY ---"; } else { base.Text = PrepareTooltipText(node.Text); } break; } }
void AspectChanged(NodeAspect aspect) { UpdateText(Node, aspect); }