Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- TempFiles.cs
- LicenseProviderAttribute.cs
- SqlPersonalizationProvider.cs
- TextProperties.cs
- SelectionRangeConverter.cs
- WebPartPersonalization.cs
- Animatable.cs
- RegisteredExpandoAttribute.cs
- VisualStyleRenderer.cs
- CommandBindingCollection.cs
- ServiceNameCollection.cs
- Ipv6Element.cs
- TypeSystem.cs
- BasicHttpBindingCollectionElement.cs
- WebBrowserHelper.cs
- ClassHandlersStore.cs
- DataControlFieldCell.cs
- JoinSymbol.cs
- Trigger.cs
- mediapermission.cs
- MessageBox.cs
- FormViewUpdateEventArgs.cs
- HiddenField.cs
- SafeEventHandle.cs
- ListView.cs
- KerberosReceiverSecurityToken.cs
- XhtmlBasicValidationSummaryAdapter.cs
- CustomCredentialPolicy.cs
- AnimationTimeline.cs
- DesignTimeXamlWriter.cs
- ConfigurationElement.cs
- ReflectionTypeLoadException.cs
- InheritanceContextHelper.cs
- TreeBuilderXamlTranslator.cs
- MetadataCacheItem.cs
- PopupControlService.cs
- ListViewHitTestInfo.cs
- SqlWorkflowInstanceStore.cs
- PerformanceCounterScope.cs
- HttpChannelBindingToken.cs
- SubtreeProcessor.cs
- BamlStream.cs
- PointLight.cs
- MeshGeometry3D.cs
- _ProxyRegBlob.cs
- ProviderSettingsCollection.cs
- GeometryGroup.cs
- XmlSchemaInfo.cs
- OracleDateTime.cs
- TimeZoneNotFoundException.cs
- Msec.cs
- PageParser.cs
- AudioSignalProblemOccurredEventArgs.cs
- FilterException.cs
- ToolStripLabel.cs
- DeploymentSection.cs
- PropertyInfoSet.cs
- XomlSerializationHelpers.cs
- CodeAttributeDeclaration.cs
- SpeechAudioFormatInfo.cs
- GridViewUpdatedEventArgs.cs
- InvalidCardException.cs
- HtmlTableCellCollection.cs
- CompositeKey.cs
- ColorMatrix.cs
- WebException.cs
- ArrayConverter.cs
- ToolStripAdornerWindowService.cs
- shaper.cs
- RuntimeCompatibilityAttribute.cs
- SID.cs
- TypedReference.cs
- DATA_BLOB.cs
- TimeManager.cs
- ToolStripOverflowButton.cs
- Opcode.cs
- OdbcReferenceCollection.cs
- SqlMultiplexer.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- ListViewItemEventArgs.cs
- DetailsViewDeleteEventArgs.cs
- GridViewUpdateEventArgs.cs
- CqlWriter.cs
- ImageListUtils.cs
- Graph.cs
- DataSetMappper.cs
- PrincipalPermission.cs
- CfgParser.cs
- Canvas.cs
- Registry.cs
- EventLogInformation.cs
- MediaScriptCommandRoutedEventArgs.cs
- XsltSettings.cs
- XmlToDatasetMap.cs
- COAUTHIDENTITY.cs
- GeneralTransform.cs
- WorkflowFormatterBehavior.cs
- DebuggerAttributes.cs
- ScanQueryOperator.cs
- WebEncodingValidator.cs