void updateNodeHeader(Asn1TreeNode node, NodeViewOptions options) { if (node.Value.Tag == (Byte)Asn1Type.INTEGER) { updateIntValue(node.Value, options.IntegerAsInteger); } var outerList = new List <String>(); var innerList = new List <String>(); if (options.ShowNodePath) { outerList.Add($"({node.Path})"); } if (options.ShowTagNumber) { innerList.Add(options.ShowInHex ? $"T:{node.Value.Tag:x2}" : $"T:{node.Value.Tag}"); } if (options.ShowNodeOffset) { innerList.Add(options.ShowInHex ? $"O:{node.Value.Offset:x4}" : $"O:{node.Value.Offset}"); } if (options.ShowNodeLength) { innerList.Add(options.ShowInHex ? $"L:{node.Value.PayloadLength:x4}" : $"L:{node.Value.PayloadLength}"); } if (innerList.Count > 0) { outerList.Add("(" + String.Join(", ", innerList) + ")"); } outerList.Add(node.Value.TagName); if (options.ShowContent) { if (!String.IsNullOrEmpty(node.Value.ExplicitValue)) { outerList.Add(":"); outerList.Add(node.Value.ExplicitValue); } } node.Value.Header = String.Join(" ", outerList); node.Value.ToolTip = writeToolTip(node); foreach (Asn1TreeNode child in node.Children) { updateNodeHeader(child, options); } }
public DataSource(NodeViewOptions viewOptions) { NodeViewOptions = viewOptions; }
public void UpdateNodeView(NodeViewOptions options) { updateNodeHeader(this, options); }