Exemple #1
0
        /// <summary>
        /// Combines the content of the CSS files.
        /// </summary>
        /// <param name="combiner">The combiner.</param>
        /// <returns></returns>
        private string CombineCssFileContent(CombinerConfig combiner)
        {
            var resolver =
                new CssRelativeUrlResolver(AppDomain.CurrentDomain.BaseDirectory, new Uri(EngineContext.ApplicationPath + "/", UriKind.Relative));

            PostProcessScript postProcess = resolver.Resolve;

            return(CombineFileContent(combiner.CssFiles, postProcess));
        }
		/// <summary>
		/// Called by the framework so the component can
		/// render its content
		/// </summary>
		public override void Render()
		{
			var combiner = new CombinerConfig(AppDomain.CurrentDomain.BaseDirectory, EngineContext.ApplicationPath);
			PropertyBag["combiner"] = combiner;

			// Evaluate the component body, without output
			RenderBody(new StringWriter());

			var key = (string) ComponentParams["key"];
			var cssKey = key + "css";

			if (!ScriptBuilder.Concatenate)
			{
				foreach (var file in combiner.CssFiles)
					RenderCSS(combiner.Relative(file));
				foreach (var file in combiner.JavascriptFiles)
					RenderJavascript(combiner.Relative(file));
			}
			else
			{
				var cssHash = CalculateChangeSetHash(combiner.CssFiles);
				var javascriptHash = CalculateChangeSetHash(combiner.JavascriptFiles);

				var resourceRegistry = EngineContext.Services.StaticResourceRegistry;

				if (!resourceRegistry.Exists(key, null, javascriptHash.ToString()))
				{
					RegisterJavascript(combiner, key, resourceRegistry, javascriptHash);
				}

				if (!resourceRegistry.Exists(cssKey, null, cssHash.ToString()))
				{
					RegisterCss(combiner, resourceRegistry, cssKey, cssHash);
				}

				var extension = String.Empty;
				if (EngineContext.Services.UrlBuilder.UseExtensions)
				{
					extension = "." + EngineContext.UrlInfo.Extension;
				}

				if (cssHash != 0)
				{
					var cssFullName = string.Format("{0}/MonoRail/Files/BuiltJS{1}?name={2}&version={3}",
					                                   EngineContext.ApplicationPath, extension, cssKey, cssHash);
					RenderCSS(cssFullName);
				}

				if (javascriptHash != 0)
				{
					var javascriptFullName = string.Format("{0}/MonoRail/Files/BuiltJS{1}?name={2}&version={3}",
					                                          EngineContext.ApplicationPath, extension, key, javascriptHash);
					RenderJavascript(javascriptFullName);
				}
			}
		}
        private RouteComponent createCombiner(DataTypeBase source, bool rss)
        {
            if (source.attributes.length() <= 0)
            {
                throw new IllegalRouteOperationException(string.Format("Cannot apply \'{0}\' to null data", !rss ? "rms" : "rss"));
            }
            else if (source.eventConfig[0] == (byte)SENSOR_FUSION)
            {
                throw new IllegalRouteOperationException(string.Format("Cannot apply \'{0}\' to sensor fusion data", !rss ? "rms" : "rss"));
            }

            var config = new CombinerConfig(source.attributes, rss);
            var next   = source.transform(config, state.bridge.GetModule <IDataProcessor>() as DataProcessor);

            return(postCreate(next.Item2, new NullEditor(config, next.Item1, state.bridge)));
        }
Exemple #4
0
        /// <summary>
        /// Registers the javascript.
        /// </summary>
        /// <param name="combiner">The combiner.</param>
        /// <param name="key">The key.</param>
        /// <param name="resourceRegistry">The resource registry.</param>
        /// <param name="javascriptHash">The javascript hash.</param>
        private void RegisterJavascript(CombinerConfig combiner, string key, IStaticResourceRegistry resourceRegistry, long javascriptHash)
        {
            if (combiner.JavascriptFiles.Count < 1)
            {
                return;
            }

            var script = CombineJSFileContent(combiner.JavascriptFiles);

            if (ScriptBuilder.Minify)
            {
                script = ScriptBuilder.CompressJavascript(script);
            }

            var staticContentResource = new StaticContentResource(script);

            resourceRegistry.RegisterCustomResource(key, null, javascriptHash.ToString(), staticContentResource,
                                                    "application/x-javascript", DateTime.Now);
        }
Exemple #5
0
        /// <summary>
        /// Registers the CSS.
        /// </summary>
        /// <param name="combiner">The combiner.</param>
        /// <param name="resourceRegistry">The resource registry.</param>
        /// <param name="cssKey">The CSS key.</param>
        /// <param name="cssHash">The CSS hash.</param>
        private void RegisterCss(CombinerConfig combiner, IStaticResourceRegistry resourceRegistry, string cssKey, long cssHash)
        {
            if (combiner.CssFiles.Count < 1)
            {
                return;
            }

            var css = CombineCssFileContent(combiner);

            if (ScriptBuilder.Minify)
            {
                css = ScriptBuilder.CompressCSS(css);
            }

            var cssResource = new StaticContentResource(css);

            resourceRegistry.RegisterCustomResource(cssKey, null, cssHash.ToString(), cssResource,
                                                    "text/css", DateTime.Now);
        }
Exemple #6
0
        /// <summary>
        /// Called by the framework so the component can
        /// render its content
        /// </summary>
        public override void Render()
        {
            var combiner = new CombinerConfig(AppDomain.CurrentDomain.BaseDirectory, EngineContext.ApplicationPath);

            PropertyBag["combiner"] = combiner;

            // Evaluate the component body, without output
            RenderBody(new StringWriter());

            var key    = (string)ComponentParams["key"];
            var cssKey = key + "css";

            if (!ScriptBuilder.Concatenate)
            {
                foreach (var file in combiner.CssFiles)
                {
                    RenderCSS(combiner.Relative(file));
                }
                foreach (var file in combiner.JavascriptFiles)
                {
                    RenderJavascript(combiner.Relative(file));
                }
            }
            else
            {
                var cssHash        = CalculateChangeSetHash(combiner.CssFiles);
                var javascriptHash = CalculateChangeSetHash(combiner.JavascriptFiles);

                var resourceRegistry = EngineContext.Services.StaticResourceRegistry;

                if (!resourceRegistry.Exists(key, null, javascriptHash.ToString()))
                {
                    RegisterJavascript(combiner, key, resourceRegistry, javascriptHash);
                }

                if (!resourceRegistry.Exists(cssKey, null, cssHash.ToString()))
                {
                    RegisterCss(combiner, resourceRegistry, cssKey, cssHash);
                }

                var extension = String.Empty;
                if (EngineContext.Services.UrlBuilder.UseExtensions)
                {
                    extension = "." + EngineContext.UrlInfo.Extension;
                }

                if (cssHash != 0)
                {
                    var cssFullName = string.Format("{0}/MonoRail/Files/BuiltJS{1}?name={2}&version={3}",
                                                    EngineContext.ApplicationPath, extension, cssKey, cssHash);
                    RenderCSS(cssFullName);
                }

                if (javascriptHash != 0)
                {
                    var javascriptFullName = string.Format("{0}/MonoRail/Files/BuiltJS{1}?name={2}&version={3}",
                                                           EngineContext.ApplicationPath, extension, key, javascriptHash);
                    RenderJavascript(javascriptFullName);
                }
            }
        }
		/// <summary>
		/// Combines the content of the CSS files.
		/// </summary>
		/// <param name="combiner">The combiner.</param>
		/// <returns></returns>
		private string CombineCssFileContent(CombinerConfig combiner)
		{
			var resolver =
				new CssRelativeUrlResolver(AppDomain.CurrentDomain.BaseDirectory, new Uri(EngineContext.ApplicationPath + "/", UriKind.Relative));

			PostProcessScript postProcess = resolver.Resolve;

			return CombineFileContent(combiner.CssFiles, postProcess);
		}
		/// <summary>
		/// Registers the javascript.
		/// </summary>
		/// <param name="combiner">The combiner.</param>
		/// <param name="key">The key.</param>
		/// <param name="resourceRegistry">The resource registry.</param>
		/// <param name="javascriptHash">The javascript hash.</param>
		private void RegisterJavascript(CombinerConfig combiner, string key, IStaticResourceRegistry resourceRegistry, long javascriptHash)
		{
			if (combiner.JavascriptFiles.Count < 1) return;

			var script = CombineJSFileContent(combiner.JavascriptFiles);

			if (ScriptBuilder.Minify)
				script = ScriptBuilder.CompressJavascript(script);

			var staticContentResource = new StaticContentResource(script);

			resourceRegistry.RegisterCustomResource(key, null, javascriptHash.ToString(), staticContentResource,
													"application/x-javascript", DateTime.Now);
		}
		/// <summary>
		/// Registers the CSS.
		/// </summary>
		/// <param name="combiner">The combiner.</param>
		/// <param name="resourceRegistry">The resource registry.</param>
		/// <param name="cssKey">The CSS key.</param>
		/// <param name="cssHash">The CSS hash.</param>
		private void RegisterCss(CombinerConfig combiner, IStaticResourceRegistry resourceRegistry, string cssKey, long cssHash)
		{
			if (combiner.CssFiles.Count < 1) return;

			var css = CombineCssFileContent(combiner);

			if (ScriptBuilder.Minify)
				css = ScriptBuilder.CompressCSS(css);

			var cssResource = new StaticContentResource(css);

			resourceRegistry.RegisterCustomResource(cssKey, null, cssHash.ToString(), cssResource,
													"text/css", DateTime.Now);
		}