示例#1
0
        protected PropertySyntax CreateToolTipProperty(SyntaxNode node, string caption = null)
        {
            SyntaxTriviaList leadingTriviaList  = node.CreateChildNodeIdentTrivia();
            SyntaxTriviaList trailingTriviaList = SyntaxFactory.ParseTrailingTrivia("\r\n", 0);

            //get caption from control
            PropertyValueSyntax captionProperty = node.GetPropertyValue("Caption");

            if (captionProperty != null)
            {
                string value = ALSyntaxHelper.DecodeString(captionProperty.ToString());
                if (!String.IsNullOrWhiteSpace(value))
                {
                    caption = value;
                }
            }
            else if (String.IsNullOrWhiteSpace(caption))
            {
                caption = node.GetNameStringValue();
            }


            string toolTipValue = "";

            switch (node.Kind.ConvertToLocalType())
            {
            case ConvertedSyntaxKind.PageField:
                toolTipValue = PageFieldTooltip;
                break;

            case ConvertedSyntaxKind.PageAction:
                toolTipValue = PageActionTooltip;
                break;
            }

            if (toolTipValue.Contains("%1"))
            {
                toolTipValue = toolTipValue.Replace("%1", caption);
            }

            //try to convert from string to avoid issues with enum ids changed between AL compiler versions
            PropertyKind propertyKind;

            try
            {
                propertyKind = (PropertyKind)Enum.Parse(typeof(PropertyKind), "ToolTip", true);
            }
            catch (Exception)
            {
                propertyKind = PropertyKind.ToolTip;
            }

            return(SyntaxFactory.PropertyLiteral(propertyKind, toolTipValue)
                   .WithLeadingTrivia(leadingTriviaList)
                   .WithTrailingTrivia(trailingTriviaList));
        }
        protected PropertySyntax CreateDataClassificationProperty(SyntaxNode node)
        {
            SyntaxTriviaList leadingTriviaList  = node.CreateChildNodeIdentTrivia();
            SyntaxTriviaList trailingTriviaList = SyntaxFactory.ParseTrailingTrivia("\r\n", 0);

            return(SyntaxFactory.Property(
                       SyntaxFactory.PropertyName(SyntaxFactory.Identifier("DataClassification"))
                       .WithTrailingTrivia(SyntaxFactory.ParseTrailingTrivia(" ")),
                       SyntaxFactory.EnumPropertyValue(SyntaxFactory.IdentifierName(this.DataClassification))
                       .WithLeadingTrivia(SyntaxFactory.ParseLeadingTrivia(" ")))
                   .WithLeadingTrivia(leadingTriviaList)
                   .WithTrailingTrivia(trailingTriviaList));
        }