Example #1
0
 public override object CreateJSGenerator(JSCodeGeneratorInfo generatorInfo, IEngineContext context,
                                          IController controller,
                                          IControllerContext controllerContext)
 {
     return(new BrailJSGenerator(generatorInfo.CodeGenerator, generatorInfo.LibraryGenerator,
                                 generatorInfo.Extensions, generatorInfo.ElementExtensions));
 }
Example #2
0
        public override void GenerateJS(string templateName, TextWriter output, JSCodeGeneratorInfo generatorInfo,
                                        IEngineContext context, IController controller, IControllerContext controllerContext)
        {
            Log("Generating JS for {0}", templateName);

            try
            {
                var generator = CreateJSGenerator(generatorInfo, context, controller, controllerContext);
                AdjustJavascriptContentType(context);
                var file = ResolveJSTemplateName(templateName);
                var view = GetCompiledScriptInstance(file,
                                                     //we use the script just to build the generator, not to output to the user
                                                     new StringWriter(),
                                                     context, controller, controllerContext);
                Log("Executing JS view {0}", templateName);
                view.AddProperty("page", generator);
                view.Run();

                output.WriteLine(generator);
                Log("Finished executing JS view {0}", templateName);
            }
            catch (Exception ex)
            {
                if (Logger != null && Logger.IsErrorEnabled)
                {
                    Logger.Error("Could not generate JS", ex);
                }

                throw new MonoRailException("Error generating JS. Template: " + templateName, ex);
            }
        }
        protected string ProcessViewJS(string templatePath)
        {
            var sw = new StringWriter();

            ControllerContext.LayoutNames          = Layouts;
            EngineContext.CurrentControllerContext = ControllerContext;
            var engineManager = new DefaultViewEngineManager();

            engineManager.RegisterEngineForView(VelocityViewEngine);
            engineManager.RegisterEngineForExtesionLookup((VelocityViewEngine));
            var codeGenerator =
                new JSCodeGenerator(EngineContext.Server,
                                    engineManager,
                                    EngineContext, null, ControllerContext, EngineContext.Services.UrlBuilder);

            IJSGenerator jsGen = new PrototypeGenerator(codeGenerator);

            codeGenerator.JSGenerator = jsGen;

            var info = new JSCodeGeneratorInfo(codeGenerator, jsGen,
                                               new object[] { new ScriptaculousExtension(codeGenerator) },
                                               new object[] { new ScriptaculousExtension(codeGenerator) });

            VelocityViewEngine.GenerateJS(templatePath, sw, info, EngineContext, null, ControllerContext);
            lastOutput = sw.ToString();
            return(lastOutput);
        }
Example #4
0
        public override void GenerateJS(String templateName, TextWriter output, JSCodeGeneratorInfo generatorInfo,
                                        IEngineContext context, IController controller,
                                        IControllerContext controllerContext)
        {
            var ctx = CreateContext(context, controller, controllerContext);

            var generator = CreateJSGenerator(generatorInfo, context, controller, controllerContext);

            ctx.Put("page", generator);

            AdjustJavascriptContentType(context);

            var view = ResolveJSTemplateName(templateName);

            try
            {
                var template = velocity.GetTemplate(view);

                var writer = new StringWriter();

                template.Merge(ctx, writer);

                output.WriteLine(generator);
            }
            catch (Exception ex)
            {
                if (Logger.IsErrorEnabled)
                {
                    Logger.Error("Could not generate JS", ex);
                }

                throw new MonoRailException("Error generating JS. Template " + templateName, ex);
            }
        }
Example #5
0
		public override void GenerateJS(string templateName, TextWriter output, JSCodeGeneratorInfo generatorInfo,
										IEngineContext context, IController controller, IControllerContext controllerContext)
		{
			Log("Generating JS for {0}", templateName);

			try
			{
				object generator = CreateJSGenerator(generatorInfo, context, controller, controllerContext);
				AdjustJavascriptContentType(context);
				string file = ResolveJSTemplateName(templateName);
				BrailBase view = GetCompiledScriptInstance(file,
					//we use the script just to build the generator, not to output to the user
														   new StringWriter(),
														   context, controller, controllerContext);
				Log("Executing JS view {0}", templateName);
				view.AddProperty("page", generator);
				view.Run();

				output.WriteLine(generator);
				Log("Finished executing JS view {0}", templateName);
			}
			catch (Exception ex)
			{
				if (Logger != null && Logger.IsErrorEnabled)
				{
					Logger.Error("Could not generate JS", ex);
				}

				throw new MonoRailException("Error generating JS. Template: " + templateName, ex);
			}
		}
Example #6
0
		public override object CreateJSGenerator(JSCodeGeneratorInfo generatorInfo, IEngineContext context,
												 IController controller,
												 IControllerContext controllerContext)
		{
			return new BrailJSGenerator(generatorInfo.CodeGenerator, generatorInfo.LibraryGenerator,
										generatorInfo.Extensions, generatorInfo.ElementExtensions);
		}
Example #7
0
 public override void GenerateJS(string templateName, TextWriter output, JSCodeGeneratorInfo generatorInfo,
                                 IEngineContext context, IController controller, IControllerContext controllerContext)
 {
     throw new NotImplementedException();
 }
Example #8
0
 public override object CreateJSGenerator(JSCodeGeneratorInfo generatorInfo, IEngineContext context,
                                          IController controller, IControllerContext controllerContext)
 {
     throw new NotImplementedException();
 }
Example #9
0
 public override object CreateJSGenerator(JSCodeGeneratorInfo generatorInfo, IEngineContext context, IController controller, IControllerContext controllerContext)
 {
     return(null);
 }
		protected string ProcessViewJS(string templatePath)
		{
			StringWriter sw = new StringWriter();
			ControllerContext.LayoutNames = Layouts;
			StubEngineContext.CurrentControllerContext = ControllerContext;
			DefaultViewEngineManager engineManager = new DefaultViewEngineManager();
			engineManager.RegisterEngineForView(BooViewEngine);
			engineManager.RegisterEngineForExtesionLookup((BooViewEngine));
			JSCodeGenerator codeGenerator =
				  new JSCodeGenerator(StubEngineContext.Server,
					  engineManager,
					  StubEngineContext, null, ControllerContext, StubEngineContext.Services.UrlBuilder);

			IJSGenerator jsGen = new PrototypeGenerator(codeGenerator);

			codeGenerator.JSGenerator = jsGen;

			JSCodeGeneratorInfo info = new JSCodeGeneratorInfo(codeGenerator, jsGen,
				new object[] { new ScriptaculousExtension(codeGenerator) },
				new object[] { new ScriptaculousExtension(codeGenerator) });

			BooViewEngine.GenerateJS(templatePath, sw, info, StubEngineContext, null, ControllerContext);
			lastOutput = sw.ToString();
			return lastOutput;
		}
		public override void GenerateJS(String templateName, TextWriter output, JSCodeGeneratorInfo generatorInfo,
		                                IEngineContext context, IController controller,
		                                IControllerContext controllerContext)
		{
			var ctx = CreateContext(context, controller, controllerContext);

			var generator = CreateJSGenerator(generatorInfo, context, controller, controllerContext);

			ctx.Put("page", generator);

			AdjustJavascriptContentType(context);

			var view = ResolveJSTemplateName(templateName);

			try
			{
				var template = velocity.GetTemplate(view);

				var writer = new StringWriter();

				template.Merge(ctx, writer);

				output.WriteLine(generator);
			}
			catch(Exception ex)
			{
				if (Logger.IsErrorEnabled)
				{
					Logger.Error("Could not generate JS", ex);
				}

				throw new MonoRailException("Error generating JS. Template " + templateName, ex);
			}
		}
		public override void GenerateJS(string templateName, TextWriter output, JSCodeGeneratorInfo generatorInfo, IEngineContext context, IController controller, IControllerContext controllerContext)
		{
		}
Example #13
0
 public override void GenerateJS(string templateName, TextWriter output, JSCodeGeneratorInfo generatorInfo, IEngineContext context, IController controller, IControllerContext controllerContext)
 {
 }
Example #14
0
		/// <summary>
		/// Returns a prototype generator.
		/// </summary>
		/// <param name="generatorInfo"></param>
		/// <param name="context"></param>
		/// <param name="controller"></param>
		/// <param name="controllerContext"></param>
		/// <returns></returns>
		public override object CreateJSGenerator(JSCodeGeneratorInfo generatorInfo, IEngineContext context,
		                                         IController controller, IControllerContext controllerContext)
		{
			return new PrototypeGenerator(generatorInfo.CodeGenerator);
		}
		/// <summary>
		/// Implementors should return a generator instance if
		/// the view engine supports JS generation.
		/// </summary>
		/// <returns>A JS generator instance</returns>
		public override object CreateJSGenerator(JSCodeGeneratorInfo generatorInfo,
		                                         IEngineContext context, IController controller,
		                                         IControllerContext controllerContext)
		{
			throw new NotImplementedException();
		}
		public override void GenerateJS(string templateName, TextWriter output, JSCodeGeneratorInfo generatorInfo,
		                                IEngineContext context, IController controller, IControllerContext controllerContext)
		{
			throw new NotImplementedException();
		}
 /// <summary>
 /// Returns a prototype generator.
 /// </summary>
 /// <param name="generatorInfo"></param>
 /// <param name="context"></param>
 /// <param name="controller"></param>
 /// <param name="controllerContext"></param>
 /// <returns></returns>
 public override object CreateJSGenerator(JSCodeGeneratorInfo generatorInfo, IEngineContext context,
                                          IController controller, IControllerContext controllerContext)
 {
     return(new PrototypeGenerator(generatorInfo.CodeGenerator));
 }