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
- Tile.cs
- CodeGotoStatement.cs
- PopupControlService.cs
- TreeBuilderXamlTranslator.cs
- DoubleSumAggregationOperator.cs
- mactripleDES.cs
- PublisherMembershipCondition.cs
- DataRowExtensions.cs
- ByteRangeDownloader.cs
- DesignerTransaction.cs
- TextEffect.cs
- CodeSnippetCompileUnit.cs
- ForeignKeyConstraint.cs
- RelatedImageListAttribute.cs
- PropertyManager.cs
- Slider.cs
- ConfigurationFileMap.cs
- FormattedTextSymbols.cs
- DebugHandleTracker.cs
- X509SecurityTokenParameters.cs
- BuildManager.cs
- InertiaTranslationBehavior.cs
- WebReference.cs
- QueryExpression.cs
- ButtonChrome.cs
- FormParameter.cs
- MatrixAnimationUsingPath.cs
- TemplateParser.cs
- FileInfo.cs
- MarshalByValueComponent.cs
- PointCollection.cs
- StringToken.cs
- CompilationLock.cs
- DataGridViewButtonCell.cs
- ProgressPage.cs
- TdsEnums.cs
- DataDocumentXPathNavigator.cs
- WinEventQueueItem.cs
- BinaryNode.cs
- SoapElementAttribute.cs
- MenuItemStyleCollection.cs
- UnicodeEncoding.cs
- LogManagementAsyncResult.cs
- TrustManagerPromptUI.cs
- ReflectionPermission.cs
- DefinitionBase.cs
- ForEach.cs
- SelectionPattern.cs
- XmlTextReaderImpl.cs
- MasterPage.cs
- FormattedTextSymbols.cs
- AdCreatedEventArgs.cs
- MDIWindowDialog.cs
- keycontainerpermission.cs
- TreeNodeEventArgs.cs
- SessionStateUtil.cs
- ModifierKeysConverter.cs
- DataGridViewCellPaintingEventArgs.cs
- SocketAddress.cs
- OleDbException.cs
- SqlException.cs
- EditorPart.cs
- SplineKeyFrames.cs
- SR.Designer.cs
- FontFamilyIdentifier.cs
- ExtentCqlBlock.cs
- Maps.cs
- WindowsListViewItemCheckBox.cs
- SiteIdentityPermission.cs
- DataGridViewComboBoxColumn.cs
- DesignSurfaceServiceContainer.cs
- SqlDependencyUtils.cs
- ScrollPattern.cs
- Constants.cs
- WebPartDisplayModeCollection.cs
- SqlConnectionPoolGroupProviderInfo.cs
- CategoryGridEntry.cs
- Utils.cs
- WindowsAltTab.cs
- UIElement3D.cs
- EditorZoneDesigner.cs
- WebPartRestoreVerb.cs
- MessageProperties.cs
- StringInfo.cs
- BaseDataBoundControlDesigner.cs
- OperationInvokerTrace.cs
- SettingsPropertyValue.cs
- TypeConverterHelper.cs
- CodeDelegateInvokeExpression.cs
- HwndMouseInputProvider.cs
- Site.cs
- AsyncDataRequest.cs
- SortKey.cs
- WebPartZoneCollection.cs
- XmlEntityReference.cs
- NameValuePermission.cs
- BitmapInitialize.cs
- WebSysDescriptionAttribute.cs
- Trace.cs
- ThreadExceptionDialog.cs