Exemplo n.º 1
0
        public override string GetPublicUrl(Node node)
        {
            string url  = string.Empty;
            var    type = EcmaDoc.GetNodeType(node);

            //Console.WriteLine ("GetPublicUrl {0} : {1} [{2}]", node.Element, node.Caption, type.ToString ());
            switch (type)
            {
            case EcmaNodeType.Namespace:
                return(node.Element);                // A namespace node has already a well formated internal url

            case EcmaNodeType.Type:
                return(MakeTypeNodeUrl(node));

            case EcmaNodeType.Meta:
                return(MakeTypeNodeUrl(GetNodeTypeParent(node)) + GenerateMetaSuffix(node));

            case EcmaNodeType.Member:
                var typeChar   = EcmaDoc.GetNodeMemberTypeChar(node);
                var parentNode = GetNodeTypeParent(node);
                var typeNode   = MakeTypeNodeUrl(parentNode).Substring(2);
                return(typeChar + ":" + typeNode + MakeMemberNodeUrl(typeChar, node));

            default:
                return(null);
            }
        }
Exemplo n.º 2
0
        string GenerateMetaSuffix(Node node)
        {
            string suffix = string.Empty;

            // A meta node has always a type element to begin with
            while (EcmaDoc.GetNodeType(node) != EcmaNodeType.Type)
            {
                suffix = '/' + node.Element + suffix;
                node   = node.Parent;
            }
            return(suffix);
        }