Exemplo n.º 1
0
        protected void magix_viewport_include_client_file(object sender, ActiveEventArgs e)
        {
            Node ip = Ip(e.Params);

            if (ShouldInspect(ip))
            {
                AppendInspectFromResource(
                    ip["inspect"],
                    "Magix.Core",
                    "Magix.Core.hyperlisp.inspect.hl",
                    "[magix.viewport.include-client-file-dox].value");
                AppendCodeFromResource(
                    ip,
                    "Magix.Core",
                    "Magix.Core.hyperlisp.inspect.hl",
                    "[magix.viewport.include-client-file-sample]");
                return;
            }

            Node dp = Dp(e.Params);

            if (!ip.ContainsValue("type"))
            {
                throw new ArgumentException("no [type] given to [magix.viewport.include-client-file]");
            }
            string type = Expressions.GetExpressionValue <string>(ip["type"].Get <string>(), dp, ip, false);

            if (!ip.ContainsValue("file"))
            {
                throw new ArgumentException("no [file] given to [magix.viewport.include-client-file]");
            }
            string file = Expressions.GetExpressionValue <string>(ip["file"].Get <string>(), dp, ip, false);

            if (type == "css")
            {
                if (!CssFiles.Contains(file))
                {
                    CssFiles.Add(file);
                    IncludeCssFile(file);
                }
            }
            else if (type == "javascript")
            {
                if (!JavaScriptFiles.Contains(file))
                {
                    JavaScriptFiles.Add(file);
                    IncludeJavaScriptFile(file);
                }
            }
            else
            {
                throw new ArgumentException("only 'css' and 'javascript' are legal types in [magix.viewport.include-client-file]");
            }
        }