/// <summary> /// Initializes a new instance of the <see cref="ScriptRegistrar"/> class. /// </summary> /// <param name="scripts">The scripts.</param> /// <param name="scriptableComponents">The scriptable components.</param> /// <param name="viewContext">The view context.</param> /// <param name="assetItemMerger">The asset merger.</param> /// <param name="scriptWrapper">The script wrapper.</param> public ScriptRegistrar(WebAssetCollection scripts, IList <IScriptableComponent> scriptableComponents, ViewContext viewContext, IWebAssetCollectionResolver resolver, ScriptWrapperBase scriptWrapper) { this.resolver = resolver; if (viewContext.HttpContext.Items[Key] != null) { throw new InvalidOperationException(Resources.TextResource.OnlyOneScriptRegistrarIsAllowedInASingleRequest); } viewContext.HttpContext.Items[Key] = this; OutputScriptFiles = true; DefaultGroup = new WebAssetGroup("default", false) { DefaultPath = WebAssetDefaultSettings.ScriptFilesPath }; Scripts = scripts; Scripts.Insert(0, DefaultGroup); this.scriptableComponents = scriptableComponents; ViewContext = viewContext; ScriptWrapper = scriptWrapper; AssetHandlerPath = WebAssetHttpHandler.DefaultPath; OnDocumentReadyActions = new List <Action>(); OnDocumentReadyStatements = new List <string>(); OnWindowUnloadActions = new List <Action>(); OnWindowUnloadStatements = new List <string>(); }
/// <summary> /// Initializes a new instance of the <see cref="ScriptRegistrar"/> class. /// </summary> /// <param name="scripts">The scripts.</param> /// <param name="scriptableComponents">The scriptable components.</param> /// <param name="viewContext">The view context.</param> /// <param name="assetItemMerger">The asset merger.</param> /// <param name="scriptWrapper">The script wrapper.</param> public ScriptRegistrar(WebAssetItemCollection scripts, IList<IScriptableComponent> scriptableComponents, ViewContext viewContext, IWebAssetItemMerger assetItemMerger, ScriptWrapperBase scriptWrapper) { Guard.IsNotNull(scripts, "scripts"); Guard.IsNotNull(scriptableComponents, "scriptableComponents"); Guard.IsNotNull(viewContext, "viewContext"); Guard.IsNotNull(assetItemMerger, "assetItemMerger"); Guard.IsNotNull(scriptWrapper, "scriptWrapper"); if (viewContext.HttpContext.Items[Key] != null) { throw new InvalidOperationException(Resources.TextResource.OnlyOneScriptRegistrarIsAllowedInASingleRequest); } viewContext.HttpContext.Items[Key] = this; DefaultGroup = new WebAssetItemGroup("default") { DefaultPath = FrameworkScriptPath }; Scripts = scripts; this.scriptableComponents = scriptableComponents; ViewContext = viewContext; AssetMerger = assetItemMerger; ScriptWrapper = scriptWrapper; AssetHandlerPath = WebAssetHttpHandler.DefaultPath; OnDocumentReadyActions = new List<Action>(); OnWindowUnloadActions = new List<Action>(); }
/// <summary> /// Initializes a new instance of the <see cref="ScriptRegistrar"/> class. /// </summary> /// <param name="scripts">The scripts.</param> /// <param name="scriptableComponents">The scriptable components.</param> /// <param name="viewContext">The view context.</param> /// <param name="assetItemMerger">The asset merger.</param> /// <param name="scriptWrapper">The script wrapper.</param> public ScriptRegistrar(WebAssetCollection scripts, IList<IScriptableComponent> scriptableComponents, ViewContext viewContext, IWebAssetCollectionResolver resolver, ScriptWrapperBase scriptWrapper) { this.resolver = resolver; if (viewContext.HttpContext.Items[Key] != null) { throw new InvalidOperationException(Resources.TextResource.OnlyOneScriptRegistrarIsAllowedInASingleRequest); } viewContext.HttpContext.Items[Key] = this; OutputScriptFiles = true; DefaultGroup = new WebAssetGroup("default", false) { DefaultPath = WebAssetDefaultSettings.ScriptFilesPath }; Scripts = scripts; Scripts.Insert(0, DefaultGroup); this.scriptableComponents = scriptableComponents; ViewContext = viewContext; ScriptWrapper = scriptWrapper; AssetHandlerPath = WebAssetHttpHandler.DefaultPath; OnDocumentReadyActions = new List<Action>(); OnDocumentReadyStatements = new List<string>(); OnWindowUnloadActions = new List<Action>(); OnWindowUnloadStatements = new List<string>(); }
/// <summary> /// Gets the Telerik View Component Factory /// </summary> /// <param name="helper">The helper.</param> /// <returns>The Factory</returns> public static ViewComponentFactory <TModel> Telerik <TModel>(this HtmlHelper <TModel> helper) { Guard.IsNotNull(helper, "helper"); ViewContext viewContext = helper.ViewContext; HttpContextBase httpContext = viewContext.HttpContext; ScriptWrapperBase scriptWrapper = DI.Current.Resolve <ScriptWrapperBase>(); IClientSideObjectWriterFactory clientSideObjectWriterFactory = DI.Current.Resolve <IClientSideObjectWriterFactory>(); StyleSheetRegistrar styleSheetRegistrar = httpContext.Items[StyleSheetRegistrar.Key] as StyleSheetRegistrar ?? new StyleSheetRegistrar(new WebAssetCollection(WebAssetDefaultSettings.StyleSheetFilesPath), viewContext, DI.Current.Resolve <IWebAssetCollectionResolver>()); ScriptRegistrar scriptRegistrar = httpContext.Items[ScriptRegistrar.Key] as ScriptRegistrar ?? new ScriptRegistrar(new WebAssetCollection(WebAssetDefaultSettings.ScriptFilesPath), new List <IScriptableComponent>(), viewContext, DI.Current.Resolve <IWebAssetCollectionResolver>(), scriptWrapper); StyleSheetRegistrarBuilder styleSheetRegistrarBuilder = StyleSheetRegistrarBuilder.Create(styleSheetRegistrar); ScriptRegistrarBuilder scriptRegistrarBuilder = ScriptRegistrarBuilder.Create(scriptRegistrar); return(new ViewComponentFactory <TModel>(helper, clientSideObjectWriterFactory, styleSheetRegistrarBuilder, scriptRegistrarBuilder)); }