Esempio n. 1
0
 public void ImplicitContent()
 {
     XElement element = new XElement("Control",
         new XAttribute("name", "Foo"),
         new XText("Hello")
     );
     MarkupControlClass c = new MarkupControlClass(new MarkupControlInstance(element));
     Assert.AreEqual("Hello", ((MarkupHtmlElement)c.Content).Html);
 }
Esempio n. 2
0
 public void ExplicitTag()
 {
     XElement element = new XElement("Control",
         new XAttribute("name", "Foo"),
         new XAttribute("tag", "span")
     );
     MarkupControlClass c = new MarkupControlClass(new MarkupControlInstance(element));
     Assert.AreEqual("span", c.Tag);
 }
Esempio n. 3
0
 public void ControlClass()
 {
     XElement element = new XElement("Control",
         new XAttribute("name", "Minimal")
     );
     MarkupControlClass c = new MarkupControlClass(new MarkupControlInstance(element));
     Assert.AreEqual("Minimal", c.Name);
     Assert.AreEqual("Control", c.BaseClassName);
 }
 public void ControlWithNoScript()
 {
     MarkupControlClass c = new MarkupControlClass()
     {
         // BaseClassName = "Control",
         Name = "Foo"
     };
     string compiledCss = CssProcessor.CssForClass(c);
     Assert.AreEqual(String.Empty, compiledCss);
 }
Esempio n. 5
0
        /// <summary>
        /// Parse the Quick markup document.
        /// </summary>
        public static MarkupControlClass Compile(string markup)
        {
            // Preprocess to extract any script and/or style tags.
            string script;
            string style;
            string processed = PreprocessMarkup(markup, out script, out style);

            // Parse the remaining (processed) source.
            XElement controlElement = GetControlElement(processed);
            MarkupControlInstance controlInstance = new MarkupControlInstance(controlElement);
            MarkupControlClass controlClass = new MarkupControlClass(controlInstance, script, style);

            return controlClass;
        }
        /// <summary>
        /// Parse the Quick markup document.
        /// </summary>
        public static MarkupControlClass Compile(string markup)
        {
            // Preprocess to extract any script and/or style tags.
            string script;
            string style;
            string processed = PreprocessMarkup(markup, out script, out style);

            // Parse the remaining (processed) source.
            XDocument document = GetDocument(processed);
            IEnumerable<XComment> comments = GetComments(document);
            XElement controlElement = GetControlElement(document);
            MarkupControlInstance controlInstance = new MarkupControlInstance(controlElement);
            MarkupControlClass controlClass = new MarkupControlClass(controlInstance, script, style);
            AddCommentsToClass(controlClass, comments);

            return controlClass;
        }
Esempio n. 7
0
        public static string CssForClass(MarkupControlClass c)
        {
            if (c.Style == null)
            {
                return String.Empty;
            }

            string styles = c.Style.Trim();
            return styles.Length == 0
                ? String.Empty
                : Template.Format(
                    "/*** {ClassName} ***/\n\n{Styles}\n\n",
                    new
                    {
                        ClassName = c.Name,
                        Styles = AddClassNameToSelectors(c.Name, styles)
                    });
        }
Esempio n. 8
0
 public void Prototype()
 {
     XElement element = new XElement("Control",
         new XAttribute("name", "Foo"),
         new XElement("prototype",
             new XElement("Button",
                 new XAttribute("content", "Hello")
             )
         )
     );
     MarkupControlClass c = new MarkupControlClass(new MarkupControlInstance(element));
     MarkupControlInstance prototype = c.Prototype;
     Assert.AreEqual("Button", prototype.ClassName);
     Assert.AreEqual("Hello", ((MarkupHtmlElement)prototype.Properties["content"]).Html);
 }
        private static void AddCommentsToClass(MarkupControlClass controlClass, IEnumerable<XComment> comments)
        {
            StringBuilder s = new StringBuilder();
            foreach (XComment comment in comments)
            {
                if (s.Length > 0)
                {
                    s.AppendLine();
                }
                s.Append(comment.Value);
            }

            controlClass.Comments = s.ToString();
        }