Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / Compilation / PageThemeBuildProvider.cs / 1 / PageThemeBuildProvider.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Compilation {
using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Specialized;
using System.IO;
using System.Web.Hosting;
using System.Web.UI;
using System.Web.Util;
internal class PageThemeBuildProvider: BaseTemplateBuildProvider {
private VirtualPath _virtualDirPath;
private IList _skinFileList;
private ArrayList _cssFileList;
internal PageThemeBuildProvider(VirtualPath virtualDirPath) {
_virtualDirPath = virtualDirPath;
//
SetVirtualPath(virtualDirPath);
}
internal virtual String AssemblyNamePrefix {
get {
return BuildManager.AppThemeAssemblyNamePrefix;
}
}
internal void AddSkinFile(VirtualPath virtualPath) {
if (_skinFileList == null)
_skinFileList = new StringCollection();
_skinFileList.Add(virtualPath.VirtualPathString);
}
internal void AddCssFile(VirtualPath virtualPath) {
if (_cssFileList == null)
_cssFileList = new ArrayList();
_cssFileList.Add(virtualPath.AppRelativeVirtualPathString);
}
protected override TemplateParser CreateParser() {
if (_cssFileList != null) {
_cssFileList.Sort();
}
return new PageThemeParser(_virtualDirPath, _skinFileList, _cssFileList);
}
internal override BaseCodeDomTreeGenerator CreateCodeDomTreeGenerator(TemplateParser parser) {
return new PageThemeCodeDomTreeGenerator((PageThemeParser)parser);
}
}
internal class GlobalPageThemeBuildProvider : PageThemeBuildProvider {
private VirtualPath _virtualDirPath;
internal GlobalPageThemeBuildProvider(VirtualPath virtualDirPath) : base (virtualDirPath) {
_virtualDirPath = virtualDirPath;
}
internal override String AssemblyNamePrefix {
get {
return BuildManager.GlobalThemeAssemblyNamePrefix;
}
}
public override ICollection VirtualPathDependencies {
get {
ICollection parentDependencies = base.VirtualPathDependencies;
string themeName = _virtualDirPath.FileName;
// Here we add the app theme dir to the dependency list so that global theme will be invalidated
// from cache when app theme is added.
CaseInsensitiveStringSet sourceDependencies = new CaseInsensitiveStringSet();
sourceDependencies.AddCollection(parentDependencies);
string appThemesVdir = UrlPath.SimpleCombine(HttpRuntime.AppDomainAppVirtualPathString, HttpRuntime.ThemesDirectoryName);
string appThemeVdir = appThemesVdir + '/' + themeName;
if (HostingEnvironment.VirtualPathProvider.DirectoryExists(appThemeVdir)) {
sourceDependencies.Add(appThemeVdir);
}
else {
sourceDependencies.Add(appThemesVdir);
}
return sourceDependencies;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Compilation {
using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Specialized;
using System.IO;
using System.Web.Hosting;
using System.Web.UI;
using System.Web.Util;
internal class PageThemeBuildProvider: BaseTemplateBuildProvider {
private VirtualPath _virtualDirPath;
private IList _skinFileList;
private ArrayList _cssFileList;
internal PageThemeBuildProvider(VirtualPath virtualDirPath) {
_virtualDirPath = virtualDirPath;
//
SetVirtualPath(virtualDirPath);
}
internal virtual String AssemblyNamePrefix {
get {
return BuildManager.AppThemeAssemblyNamePrefix;
}
}
internal void AddSkinFile(VirtualPath virtualPath) {
if (_skinFileList == null)
_skinFileList = new StringCollection();
_skinFileList.Add(virtualPath.VirtualPathString);
}
internal void AddCssFile(VirtualPath virtualPath) {
if (_cssFileList == null)
_cssFileList = new ArrayList();
_cssFileList.Add(virtualPath.AppRelativeVirtualPathString);
}
protected override TemplateParser CreateParser() {
if (_cssFileList != null) {
_cssFileList.Sort();
}
return new PageThemeParser(_virtualDirPath, _skinFileList, _cssFileList);
}
internal override BaseCodeDomTreeGenerator CreateCodeDomTreeGenerator(TemplateParser parser) {
return new PageThemeCodeDomTreeGenerator((PageThemeParser)parser);
}
}
internal class GlobalPageThemeBuildProvider : PageThemeBuildProvider {
private VirtualPath _virtualDirPath;
internal GlobalPageThemeBuildProvider(VirtualPath virtualDirPath) : base (virtualDirPath) {
_virtualDirPath = virtualDirPath;
}
internal override String AssemblyNamePrefix {
get {
return BuildManager.GlobalThemeAssemblyNamePrefix;
}
}
public override ICollection VirtualPathDependencies {
get {
ICollection parentDependencies = base.VirtualPathDependencies;
string themeName = _virtualDirPath.FileName;
// Here we add the app theme dir to the dependency list so that global theme will be invalidated
// from cache when app theme is added.
CaseInsensitiveStringSet sourceDependencies = new CaseInsensitiveStringSet();
sourceDependencies.AddCollection(parentDependencies);
string appThemesVdir = UrlPath.SimpleCombine(HttpRuntime.AppDomainAppVirtualPathString, HttpRuntime.ThemesDirectoryName);
string appThemeVdir = appThemesVdir + '/' + themeName;
if (HostingEnvironment.VirtualPathProvider.DirectoryExists(appThemeVdir)) {
sourceDependencies.Add(appThemeVdir);
}
else {
sourceDependencies.Add(appThemesVdir);
}
return sourceDependencies;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RelationshipDetailsCollection.cs
- Queue.cs
- RubberbandSelector.cs
- Visual.cs
- AssemblyUtil.cs
- ValueTypePropertyReference.cs
- WebBrowserNavigatingEventHandler.cs
- Effect.cs
- ColorConvertedBitmap.cs
- InfoCardSymmetricCrypto.cs
- NotificationContext.cs
- TransformerTypeCollection.cs
- StreamGeometry.cs
- QilReplaceVisitor.cs
- BooleanToVisibilityConverter.cs
- MarginsConverter.cs
- SqlMethodAttribute.cs
- HandledEventArgs.cs
- MethodInfo.cs
- ObjectAnimationUsingKeyFrames.cs
- Size.cs
- PerformanceCounterCategory.cs
- ObjectDataSourceSelectingEventArgs.cs
- EnumBuilder.cs
- ScriptModule.cs
- HelpInfo.cs
- ExpressionBindingCollection.cs
- AssociationEndMember.cs
- WebPartMinimizeVerb.cs
- Ray3DHitTestResult.cs
- IntegrationExceptionEventArgs.cs
- ToolboxService.cs
- ImageClickEventArgs.cs
- Camera.cs
- SiteMembershipCondition.cs
- Token.cs
- TypeConverter.cs
- SqlUDTStorage.cs
- TextParagraph.cs
- ValidationError.cs
- TemplateControl.cs
- FieldInfo.cs
- IisTraceWebEventProvider.cs
- ComponentCommands.cs
- BaseDataListActionList.cs
- ConnectionStringsExpressionBuilder.cs
- Polyline.cs
- GridViewItemAutomationPeer.cs
- SettingsPropertyIsReadOnlyException.cs
- Maps.cs
- OrderedEnumerableRowCollection.cs
- OptimalTextSource.cs
- TemplateInstanceAttribute.cs
- SmtpReplyReaderFactory.cs
- LongSumAggregationOperator.cs
- WebPartCloseVerb.cs
- AssertFilter.cs
- PrefixQName.cs
- Int32RectConverter.cs
- DataSourceControl.cs
- SystemIPGlobalProperties.cs
- ObjectTypeMapping.cs
- Exceptions.cs
- SiteMapDataSourceView.cs
- ListControlBuilder.cs
- Button.cs
- SpellerStatusTable.cs
- Ray3DHitTestResult.cs
- SQLSingle.cs
- DataGridViewRowsRemovedEventArgs.cs
- HotSpotCollection.cs
- translator.cs
- GlobalAclOperationRequirement.cs
- unsafenativemethodsother.cs
- WebBrowserDesigner.cs
- ClientClassGenerator.cs
- BooleanExpr.cs
- WinFormsComponentEditor.cs
- ToolStripTextBox.cs
- DataServiceEntityAttribute.cs
- ClassGenerator.cs
- XmlWriter.cs
- FormatControl.cs
- Matrix3D.cs
- UnsafeNativeMethods.cs
- BinaryObjectReader.cs
- DesignerPerfEventProvider.cs
- RepeaterItemCollection.cs
- PropertyRef.cs
- ACE.cs
- SiteMapDataSource.cs
- MaskDesignerDialog.cs
- LayoutUtils.cs
- BezierSegment.cs
- Int16Storage.cs
- ThreadExceptionEvent.cs
- DrawingGroup.cs
- TraceContextEventArgs.cs
- FrameAutomationPeer.cs
- ProviderSettingsCollection.cs