public static void AddBehaviorReferenceProperties(WordprocessingDocument document, BehaviorReference behavior)
        {
            _log.Info("Printing Behavior Properties: " + behavior.Reference.Id);
            var body  = document.MainDocumentPart.Document.Body;
            var name  = Utils.GetNameForId(behavior.Reference.Id, ArtifactType.Behavior);
            var aDef  = body.AppendChild(new Paragraph());
            var adRun = aDef.AppendChild(new Run());

            adRun.AppendChild(new Text("Behavior Reference: " + name));
            Utils.ApplyStyleToParagraph(document, "Heading2", "Heading2", aDef);

            var rDef = body.AppendChild(new Paragraph());
            var rRun = rDef.AppendChild(new Run());

            rRun.AppendChild(new Text("Reference Notes: " + behavior.Reference.ReferenceNotes));
            Utils.ApplyStyleToParagraph(document, "Quote", "Quote", rDef);

            var basicProps = new[, ]
            {
                { "Is External:", behavior.IsExternal.ToString() },
                { "Constructor:", behavior.ConstructorType }
            };

            Utils.AddTable(document, basicProps); //"PlainTable3"

            var appDef = body.AppendChild(new Paragraph());
            var appRun = appDef.AppendChild(new Run());

            appRun.AppendChild(new Text("Applies To"));
            Utils.ApplyStyleToParagraph(document, "Heading3", "Heading3", appDef);
            foreach (var a in behavior.AppliesTo)
            {
                ArtifactPrinter.GenerateArtifactSymbol(document, a);
            }

            CommonPrinter.BuildInvocationsTable(document, behavior.Invocations);

            CommonPrinter.BuildInfluenceBindings(document, behavior.InfluenceBindings, ArtifactType.Behavior);

            if (behavior.Properties.Any())
            {
                CommonPrinter.BuildPropertiesTable(document, behavior.Properties, false);
            }
        }
Ejemplo n.º 2
0
        public static void PrintFormula(WordprocessingDocument document, TemplateFormula formula, bool book, bool isForAppendix = false)
        {
            ArtifactPrinter.AddArtifactContent(document, formula.Artifact, book, isForAppendix);
            _log.Info("Printing Template Formula Properties: " + formula.Artifact.Name);
            var body = document.MainDocumentPart.Document.Body;

            var aDef  = body.AppendChild(new Paragraph());
            var adRun = aDef.AppendChild(new Run());

            adRun.AppendChild(new Text("Template Formula"));
            Utils.ApplyStyleToParagraph(document, "Heading1", "Heading1", aDef, JustificationValues.Center);

            var tDef = body.AppendChild(new Paragraph());
            var tRun = tDef.AppendChild(new Run());

            tRun.AppendChild(new Text("Template Type: " + formula.TemplateType));
            Utils.ApplyStyleToParagraph(document, "Heading2", "Heading2", tDef);

            var bDef = body.AppendChild(new Paragraph());
            var bRun = bDef.AppendChild(new Run());

            bRun.AppendChild(new Text("Base Token"));
            Utils.ApplyStyleToParagraph(document, "Heading2", "Heading2", bDef, JustificationValues.Center);

            ArtifactPrinter.GenerateArtifactSymbol(document, formula.TokenBase.Base);

            var beDef = body.AppendChild(new Paragraph());
            var beRun = beDef.AppendChild(new Run());

            beRun.AppendChild(new Text("Behaviors"));
            Utils.ApplyStyleToParagraph(document, "Heading2", "Heading2", beDef, JustificationValues.Center);
            foreach (var b in formula.Behaviors)
            {
                ArtifactPrinter.GenerateArtifactSymbol(document, b.Behavior);
                var bbDef = body.AppendChild(new Paragraph());
                var bbRun = bbDef.AppendChild(new Run());
                bbRun.AppendChild(new Text(""));
                Utils.ApplyStyleToParagraph(document, "Heading2", "Heading2", bbDef, JustificationValues.Center);
            }

            var bgDef = body.AppendChild(new Paragraph());
            var bgRun = bgDef.AppendChild(new Run());

            bgRun.AppendChild(new Text("Behavior Groups"));
            Utils.ApplyStyleToParagraph(document, "Heading2", "Heading2", bgDef, JustificationValues.Center);
            foreach (var b in formula.BehaviorGroups)
            {
                ArtifactPrinter.GenerateArtifactSymbol(document, b.BehaviorGroup);
                var bbDef = body.AppendChild(new Paragraph());
                var bbRun = bbDef.AppendChild(new Run());
                bbRun.AppendChild(new Text(""));
                Utils.ApplyStyleToParagraph(document, "Heading2", "Heading2", bbDef, JustificationValues.Center);
            }

            var pDef = body.AppendChild(new Paragraph());
            var pRun = pDef.AppendChild(new Run());

            pRun.AppendChild(new Text("Property Sets"));
            Utils.ApplyStyleToParagraph(document, "Heading2", "Heading2", pDef, JustificationValues.Center);
            foreach (var p in formula.PropertySets)
            {
                ArtifactPrinter.GenerateArtifactSymbol(document, p.PropertySet);
                var bbDef = body.AppendChild(new Paragraph());
                var bbRun = bbDef.AppendChild(new Run());
                bbRun.AppendChild(new Text(""));
                Utils.ApplyStyleToParagraph(document, "Heading2", "Heading2", bbDef, JustificationValues.Center);
            }

            var cDef = body.AppendChild(new Paragraph());
            var cRun = cDef.AppendChild(new Run());

            cRun.AppendChild(new Text("Child Tokens"));
            Utils.ApplyStyleToParagraph(document, "Heading2", "Heading2", cDef, JustificationValues.Center);
            foreach (var c in formula.ChildTokens)
            {
                PrintFormula(document, c, false);
                var bbDef = body.AppendChild(new Paragraph());
                var bbRun = bbDef.AppendChild(new Run());
                bbRun.AppendChild(new Text(""));
                Utils.ApplyStyleToParagraph(document, "Heading2", "Heading2", bbDef, JustificationValues.Center);
            }
            if (!book)
            {
                return;
            }
            var pageBreak = body.AppendChild(new Paragraph());
            var pbr       = pageBreak.AppendChild(new Run());

            pbr.AppendChild(new Text(""));

            if (pageBreak.ParagraphProperties == null)
            {
                pageBreak.ParagraphProperties = new ParagraphProperties();
            }

            pageBreak.ParagraphProperties.PageBreakBefore = new PageBreakBefore();
            Utils.ApplyStyleToParagraph(document, "Normal", "Normal", pageBreak);
        }