Exemple #1
0
        private VNode BuildNumberingContainer()
        {
            var node = new VNode(_config.NumberingContainerTag, "", 0, 0);

            node.AddClasses(_config.NumberingContainerCls);
            return(node);
        }
Exemple #2
0
        public void RemoveClasses_Test()
        {
            var instance = new VNode();

            instance.AddClasses("c1", "c2", "c3");
            instance.RemoveClasses("c1", "c3");
            Assert.AreEqual("c2", instance.Classes.Single());
        }
Exemple #3
0
        public void AddClasses_EmptyTest()
        {
            var instance = new VNode();

            instance.AddClasses("", null);

            Assert.AreEqual(0, instance.Classes.Count);
        }
        private bool ProcessModifiedRun(IElementProcessingState state, OpenXmlElement modifedRun, string cssClass)
        {
            var vNode = new VNode("span", "", state.Index, modifedRun.InnerText.Length);

            vNode.AddClasses(cssClass);
            state.AddContent(vNode);
            state.CurrentVNode = vNode;
            return(true);
        }
Exemple #5
0
        public void AddClass_Test()
        {
            string className = "test-cls";
            var    instance  = new VNode();

            instance.AddClasses(className);

            Assert.IsTrue(instance.Classes.Contains(className));
            Assert.AreEqual(className, instance.Attributes["class"]);
        }
Exemple #6
0
        private VNode BuildNumberingNumber(IParagraphData pData)
        {
            var numberingNumber = new VNode(_config.NumberingNumberTag);

            numberingNumber.AddClasses(_config.NumberingNumberCls);

            AddPadding(numberingNumber, pData);
            AddTrackChanges(numberingNumber, pData);
            AddNumberingNumberValue(numberingNumber, pData);

            return(numberingNumber);
        }
Exemple #7
0
        public void Transform_NoChildrenVNodeTest()
        {
            var expected = new XElement("div", "Some content");

            expected.Add(new XAttribute("id", "test-id"));
            expected.Add(new XAttribute("class", "blue green red"));

            var vNode = new VNode("div")
            {
                Text = "Some content"
            };

            vNode.SetAttribute("id", "test-id");
            vNode.AddClasses("blue");
            vNode.AddClasses("green");
            vNode.AddClasses("red");

            var result = VNodeXmlTransformer.ToXElement(vNode);

            Utils.AssertSameXml(expected, result);
        }
Exemple #8
0
        public bool ProcessElement(IElementProcessingState state, Run run)
        {
            var vSpan = new VNode
            {
                Tag    = _config.RunTag,
                Index  = state.Index,
                Length = run.InnerText.Length
            };

            vSpan.AddClasses(_config.RunCls);
            state.AddContent(vSpan);
            state.CurrentVNode = vSpan;
            return(true);
        }
Exemple #9
0
        public bool ProcessElement(IElementProcessingState state, Hyperlink anchor)
        {
            var vAnchor = new VNode
            {
                Tag    = _config.HyperLinkTag,
                Index  = state.Index,
                Length = anchor.InnerText.Length
            };

            vAnchor.AddClasses(_config.HyperLinkCls);
            state.AddContent(vAnchor);
            state.CurrentVNode = vAnchor;
            return(true);
        }
Exemple #10
0
        public void Clone_Test()
        {
            var node1 = new VNode
            {
                Index  = 0,
                Length = 100,
            };

            node1.AddClasses("ng-redirect");
            node1.SetAttribute("id", "10");
            node1.SetStyle("color", "red");

            Assert.IsTrue(node1.Equals(node1));
        }
Exemple #11
0
        private void AddTrackChanges(VNode numberingNumber, IParagraphData pData)
        {
            switch (pData.TrackChangesFlag)
            {
            case TrackChanges.TrackChangesFlag.Inserted:
                numberingNumber.AddClasses(_config.NumberingInsertedCls);
                break;

            case TrackChanges.TrackChangesFlag.Deleted:
                numberingNumber.AddClasses(_config.NumberingDeletedCls);
                break;

            case TrackChanges.TrackChangesFlag.Changed:
                var previousNumberingNumber = new VNode(_config.NumberingNumberTag, pData.PreviousVerbose);
                previousNumberingNumber.AddClasses(_config.PreviousNumberingNumber);
                numberingNumber.VLayers[0].Content.Add(previousNumberingNumber);
                numberingNumber.AddClasses(_config.NumberingChangedCls);
                break;

            default:
                break;
            }
        }
 public void Initialize()
 {
     _p = new VNode("p", "", 0, 0);
     _numberingContainer = new VNode("div", "", 0, 0);
     _numberingContainer.AddClasses("numbering-container");
     _spacerLeft = new VNode("div", "", 0, 0);
     _spacerLeft.AddClasses("spacer-left");
     _spacerLeft.VLayers[0].Prefix.Add(_numberingContainer);
     _spacerRight = new VNode("div", "", 0, 0);
     _spacerRight.AddClasses("spacer_right");
     _div = new VNode("div", "", 0, 0);
     _div.VLayers[0].Prefix.Add(_spacerLeft);
     _div.VLayers[0].Content.Add(_p);
     _div.VLayers[0].Suffix.Add(_spacerRight);
     _instance                = new ElementProcessingState();
     _instance.RootElement    = new Paragraph();
     _instance.RootVNode      = _div;
     _instance.CurrentElement = new Paragraph();
     _instance.CurrentVNode   = _p;
 }
Exemple #13
0
        public bool ProcessElement(IElementProcessingState state, Paragraph p)
        {
            var layer = new VLayer();

            foreach (Match m in regex.Matches(p.InnerText))
            {
                var node = new VNode
                {
                    Index  = state.Index + m.Index,
                    Length = m.Length,
                    Tag    = "span"
                };
                node.AddClasses(CLASS_NAME);
                layer.Content.Add(node);
            }
            if (!layer.IsEmpty)
            {
                state.CurrentVNode.VLayers.Add(layer);
            }
            return(false);
        }
Exemple #14
0
        public bool ProcessElement(IElementProcessingState state, Paragraph paragraph)
        {
            if (!(paragraph.Parent is Body))
            {
                var container = new VNode("div");
                container.AddClasses("container");
                state.AddContent(container);
                state.CurrentVNode = container;
            }
            var vP = new VNode {
                Tag = _config.ParagraphTag
            };

            vP.Index  = state.Index;
            vP.Length = paragraph.InnerText.Length;
            vP.Text   = "​"; // zero width white psace
            vP.AddClasses(_config.ParagraphCls);
            state.SetContext(new ParagraphContext {
                Parent = state.CurrentVNode
            });
            state.AddContent(vP);
            state.CurrentVNode = vP;
            return(true);
        }
Exemple #15
0
        public void FlatternAndConvert_Test()
        {
            var expected = new XElement("div",
                                        new XAttribute("id", "100"),
                                        new XElement("div",
                                                     new XAttribute("class", "margin-left"),
                                                     new XElement("div",
                                                                  new XAttribute("class", "numbering-container"),
                                                                  new XElement("span", "1.1")
                                                                  )
                                                     ),
                                        new XElement("p",
                                                     new XElement("span", "Some content is "),
                                                     new XElement("a",
                                                                  new XAttribute("onclick", "doStuff()"),
                                                                  new XElement("span", "Defined")
                                                                  ),
                                                     new XElement("span", " here.")
                                                     ),
                                        new XElement("div",
                                                     new XAttribute("class", "margin-right")
                                                     )
                                        );

            string text    = "Some content is Defined here.";
            string defined = "Defined";

            // link
            var link = new VNode
            {
                Index  = text.IndexOf(defined),
                Length = defined.Length,
                Tag    = "a"
            };

            link.SetAttribute("onclick", "doStuff()");


            // prefix
            var nContainer = new VNode {
                Tag = "div"
            };

            nContainer.AddClasses("numbering-container");
            nContainer.VLayers[0].Content.Add(new VNode {
                Text = "1.1", Tag = "span"
            });
            var marginLeft = new VNode {
                Tag = "div"
            };

            marginLeft.AddClasses("margin-left");
            marginLeft.VLayers[0].Content.Add(nContainer);

            // suffix
            var marginRight = new VNode("div");

            marginRight.AddClasses("margin-right");

            var vNode = new VNode(
                "div",
                "",
                0,
                0,
                new VNode(
                    "p",
                    "",
                    0,
                    text.Length,
                    new VNode[] { new VNode("span", text, 0, text.Length) },
                    new VNode[] { link }
                    )
                );

            vNode.SetAttribute("id", "100");
            vNode.VLayers[0].Prefix.Add(marginLeft);
            vNode.VLayers[0].Suffix.Add(marginRight);

            var result = VNodeXmlTransformer.Transform(vNode);

            Utils.AssertSameXml(expected, result);
        }