コード例 #1
0
        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);
            }
        }
コード例 #2
0
 public DataSource(NodeViewOptions viewOptions)
 {
     NodeViewOptions = viewOptions;
 }
コード例 #3
0
 public void UpdateNodeView(NodeViewOptions options)
 {
     updateNodeHeader(this, options);
 }