Esempio n. 1
0
        public void TestExpressionOneArg()
        {
            var v1 = new JsVariable("var1");
            var cl = new JsClosure(new JsCall("init"), v1);

            Assert.AreEqual("function(var1){init()}", cl.Encode());
        }
Esempio n. 2
0
        public void TestRunnable()
        {
            var v1 = new JsVariable("var1");
            var v2 = new JsVariable("var2");
            var cl = new JsClosure(() => JsContext.Add(new JsCall("alert", v1, v2)), v2, v1);

            Assert.AreEqual("function(var2, var1){alert(var1, var2);}", cl.Encode());
        }
Esempio n. 3
0
        public void TestExpressionManyArgs()
        {
            var v1 = new JsVariable("var1");
            var v2 = new JsVariable("var2");
            var cl = new JsClosure(new JsCall("alert", v1, v2), v2, v1);

            Assert.AreEqual("function(var2, var1){alert(var1, var2)}", cl.Encode());
        }
Esempio n. 4
0
        public IJsExpression ToJsExpression()
        {
            var component = this;
            var script    = new JsClosure(component.Init);

            return(new HtmlFragment(ComponentRenderingHelper.GetStartTag(this) + ComponentRenderingHelper.GetEndTag(this),
                                    script).ToJsExpression());
        }
Esempio n. 5
0
        public void TestEncodeOnLoadAsHtml()
        {
            string result = new JsClosure(() => {
                JsContext.Add(new JsCall("init"));
                JsContext.Add(new JsCall("init2", 123));
            }).EncodeOnLoadAsHtml();

            Assert.AreEqual("<script>jQuery(function(){init();init2(123);})</script>", result);
        }
Esempio n. 6
0
        /**
         * Renders view fragment for the Form, using the specified model.
         * Generates javascript to initialize all rendered components.
         *
         * @param form      Form of the fragment to be rendered
         * @param fragment  fragment name
         * @param model     model for the fragment view
         * @return      HtmlFragment with rendered HTML and initialization script
         */
        public HtmlFragment RenderFragment(Form form, string fragment, object model)
        {
            form.FormEngine = this;
            var reg     = new RenderingContext(form);
            var builder = new StringBuilder();

            reg.Collect(() => builder.Append(_viewRenderer.RenderFragment(form, fragment, model)));
            var script = new JsClosure(() => {
                foreach (var comp in reg.Components)
                {
                    comp.Init();
                }
            });

            return(new HtmlFragment(builder.ToString(), script));
        }
Esempio n. 7
0
        /**
         * Renders main view for the Form, using the model returned by prepareModel-method.
         * Generates javascript to initialize all rendered components.
         *
         * @param form  Form to be rendered
         * @return      HtmlFragment with rendered HTML and initialization script
         */
        public HtmlFragment RenderMainView(Form form)
        {
            form.FormEngine = this;
            var builder = new StringBuilder();

            builder.Append(ComponentRenderingHelper.GetStartTag(form));
            var model = form.PrepareModel();
            var reg   = new RenderingContext(form);

            reg.Collect(() => builder.Append(_viewRenderer.RenderMainView(form, model)));
            builder.Append(ComponentRenderingHelper.GetEndTag(form));
            var script = new JsClosure(delegate
            {
                form.Init();
                foreach (var comp in reg.Components)
                {
                    comp.Init();
                }
                form.AfterInit();
                UpdateForm(form);
            });

            return(new HtmlFragment(builder.ToString(), script));
        }
Esempio n. 8
0
 public HtmlFragment(string html, JsClosure script)
 {
     Html   = html;
     Script = script;
 }
Esempio n. 9
0
        public void TestExpressionNoArgs()
        {
            var cl = new JsClosure(new JsCall("init"));

            Assert.AreEqual("function(){init()}", cl.Encode());
        }