Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / UI / PageThemeParser.cs / 1 / PageThemeParser.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI {
using System;
using System.Collections;
using System.Collections.Specialized;
using System.Globalization;
using System.IO;
using System.Reflection;
using System.Text;
using System.Web.Compilation;
using System.Web.Util;
using System.Web.UI;
internal class PageThemeParser : BaseTemplateParser {
internal const string defaultDirectiveName = "skin";
private bool _mainDirectiveProcessed;
private IList _skinFileList;
private IList _cssFileList;
private ControlBuilder _currentSkinBuilder;
private VirtualPath _virtualDirPath;
internal VirtualPath VirtualDirPath {
get { return _virtualDirPath; }
}
internal PageThemeParser(VirtualPath virtualDirPath, IList skinFileList, IList cssFileList) {
_virtualDirPath = virtualDirPath;
_skinFileList = skinFileList;
_cssFileList = cssFileList;
}
internal ICollection CssFileList {
get { return _cssFileList; }
}
internal override Type DefaultBaseType {
get {
return typeof(PageTheme);
}
}
internal override string DefaultDirectiveName {
get {
return defaultDirectiveName;
}
}
/* code is not allowed in skin files */
internal override bool IsCodeAllowed {
get {
return false;
}
}
// The current processing controlbuilder for the ITemplate in the skin file.
internal ControlBuilder CurrentSkinBuilder {
get {
return _currentSkinBuilder;
}
set {
_currentSkinBuilder = value;
}
}
internal override RootBuilder CreateDefaultFileLevelBuilder() {
return new FileLevelPageThemeBuilder();
}
internal override void ParseInternal() {
if (_skinFileList != null) {
foreach(string virtualPath in _skinFileList) {
ParseFile(null /*physicalPath*/, virtualPath);
}
}
AddSourceDependency(_virtualDirPath);
}
internal override void ProcessDirective(string directiveName, IDictionary directive) {
if (directiveName == null ||
directiveName.Length == 0 ||
StringUtil.EqualsIgnoreCase(directiveName, DefaultDirectiveName)) {
// Make sure the main directive was not already specified
if (_mainDirectiveProcessed) {
ProcessError(SR.GetString(SR.Only_one_directive_allowed, DefaultDirectiveName));
return;
}
ProcessMainDirective(directive);
_mainDirectiveProcessed = true;
}
else if (StringUtil.EqualsIgnoreCase(directiveName, "register")) {
base.ProcessDirective(directiveName, directive);
}
else {
ProcessError(SR.GetString(SR.Unknown_directive, directiveName));
return;
}
}
internal override bool ProcessMainDirectiveAttribute(string deviceName, string name,
string value, IDictionary parseData) {
switch (name) {
// Fail on the following unsupported attributes. Note that our base class
// TemplateParser does support them, hence the special casing
case "classname":
case "compilationmode":
case "inherits":
ProcessError(SR.GetString(SR.Attr_not_supported_in_directive,
name, DefaultDirectiveName));
return false;
default:
// We didn't handle the attribute. Try the base class
return base.ProcessMainDirectiveAttribute(deviceName, name, value, parseData);
}
}
}
internal class DesignTimePageThemeParser : PageThemeParser {
private string _themePhysicalPath;
internal DesignTimePageThemeParser(string virtualDirPath) : base(null, null, null) {
_themePhysicalPath = virtualDirPath;
}
internal string ThemePhysicalPath {
get {
return _themePhysicalPath;
}
}
// Parse the designtime theme content here.
internal override void ParseInternal() {
if (Text != null) {
ParseString(Text, CurrentVirtualPath, Encoding.UTF8);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI {
using System;
using System.Collections;
using System.Collections.Specialized;
using System.Globalization;
using System.IO;
using System.Reflection;
using System.Text;
using System.Web.Compilation;
using System.Web.Util;
using System.Web.UI;
internal class PageThemeParser : BaseTemplateParser {
internal const string defaultDirectiveName = "skin";
private bool _mainDirectiveProcessed;
private IList _skinFileList;
private IList _cssFileList;
private ControlBuilder _currentSkinBuilder;
private VirtualPath _virtualDirPath;
internal VirtualPath VirtualDirPath {
get { return _virtualDirPath; }
}
internal PageThemeParser(VirtualPath virtualDirPath, IList skinFileList, IList cssFileList) {
_virtualDirPath = virtualDirPath;
_skinFileList = skinFileList;
_cssFileList = cssFileList;
}
internal ICollection CssFileList {
get { return _cssFileList; }
}
internal override Type DefaultBaseType {
get {
return typeof(PageTheme);
}
}
internal override string DefaultDirectiveName {
get {
return defaultDirectiveName;
}
}
/* code is not allowed in skin files */
internal override bool IsCodeAllowed {
get {
return false;
}
}
// The current processing controlbuilder for the ITemplate in the skin file.
internal ControlBuilder CurrentSkinBuilder {
get {
return _currentSkinBuilder;
}
set {
_currentSkinBuilder = value;
}
}
internal override RootBuilder CreateDefaultFileLevelBuilder() {
return new FileLevelPageThemeBuilder();
}
internal override void ParseInternal() {
if (_skinFileList != null) {
foreach(string virtualPath in _skinFileList) {
ParseFile(null /*physicalPath*/, virtualPath);
}
}
AddSourceDependency(_virtualDirPath);
}
internal override void ProcessDirective(string directiveName, IDictionary directive) {
if (directiveName == null ||
directiveName.Length == 0 ||
StringUtil.EqualsIgnoreCase(directiveName, DefaultDirectiveName)) {
// Make sure the main directive was not already specified
if (_mainDirectiveProcessed) {
ProcessError(SR.GetString(SR.Only_one_directive_allowed, DefaultDirectiveName));
return;
}
ProcessMainDirective(directive);
_mainDirectiveProcessed = true;
}
else if (StringUtil.EqualsIgnoreCase(directiveName, "register")) {
base.ProcessDirective(directiveName, directive);
}
else {
ProcessError(SR.GetString(SR.Unknown_directive, directiveName));
return;
}
}
internal override bool ProcessMainDirectiveAttribute(string deviceName, string name,
string value, IDictionary parseData) {
switch (name) {
// Fail on the following unsupported attributes. Note that our base class
// TemplateParser does support them, hence the special casing
case "classname":
case "compilationmode":
case "inherits":
ProcessError(SR.GetString(SR.Attr_not_supported_in_directive,
name, DefaultDirectiveName));
return false;
default:
// We didn't handle the attribute. Try the base class
return base.ProcessMainDirectiveAttribute(deviceName, name, value, parseData);
}
}
}
internal class DesignTimePageThemeParser : PageThemeParser {
private string _themePhysicalPath;
internal DesignTimePageThemeParser(string virtualDirPath) : base(null, null, null) {
_themePhysicalPath = virtualDirPath;
}
internal string ThemePhysicalPath {
get {
return _themePhysicalPath;
}
}
// Parse the designtime theme content here.
internal override void ParseInternal() {
if (Text != null) {
ParseString(Text, CurrentVirtualPath, Encoding.UTF8);
}
}
}
}
// 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
- CustomAttributeBuilder.cs
- UniqueCodeIdentifierScope.cs
- DesignerActionItemCollection.cs
- ExtensibleClassFactory.cs
- ToolStripItemTextRenderEventArgs.cs
- DesignerForm.cs
- followingquery.cs
- HtmlElementEventArgs.cs
- DbProviderFactories.cs
- Transform.cs
- PerformanceCounterCategory.cs
- CngKeyCreationParameters.cs
- XmlMapping.cs
- EndpointNotFoundException.cs
- TextSegment.cs
- XmlIterators.cs
- InputBuffer.cs
- EntityClassGenerator.cs
- ClientSession.cs
- TextTreeUndo.cs
- SchemaManager.cs
- ResourceExpressionBuilder.cs
- SqlUtils.cs
- BitmapEffectCollection.cs
- NullableDecimalAverageAggregationOperator.cs
- XmlUTF8TextReader.cs
- NameValueConfigurationElement.cs
- srgsitem.cs
- FloaterParagraph.cs
- RuleSettingsCollection.cs
- PrinterUnitConvert.cs
- DataBindingCollectionEditor.cs
- ProxyWebPart.cs
- RuntimeVariablesExpression.cs
- ServerIdentity.cs
- RowUpdatedEventArgs.cs
- SizeKeyFrameCollection.cs
- MetaModel.cs
- StagingAreaInputItem.cs
- BooleanAnimationBase.cs
- PropertyConverter.cs
- HtmlElementCollection.cs
- GZipDecoder.cs
- ToolboxItemWrapper.cs
- Unit.cs
- JsonSerializer.cs
- EntitySetBaseCollection.cs
- ColorComboBox.cs
- TextAutomationPeer.cs
- FlowDocumentFormatter.cs
- CroppedBitmap.cs
- X509CertificateCollection.cs
- ContentPresenter.cs
- MarshalDirectiveException.cs
- Variable.cs
- HashHelper.cs
- ExpressionSelection.cs
- URLString.cs
- XpsSerializationManagerAsync.cs
- UiaCoreTypesApi.cs
- AutoGeneratedFieldProperties.cs
- UnmanagedMemoryStreamWrapper.cs
- Quaternion.cs
- CompatibleIComparer.cs
- OrderedDictionary.cs
- BaseTemplateCodeDomTreeGenerator.cs
- TextStore.cs
- dataobject.cs
- ExpressionBinding.cs
- DataGridViewButtonCell.cs
- DropSourceBehavior.cs
- HttpContext.cs
- WindowsGrip.cs
- InvalidOperationException.cs
- WindowsStatic.cs
- BlurEffect.cs
- TableLayoutStyleCollection.cs
- MeasurementDCInfo.cs
- exports.cs
- XmlSchemaComplexContent.cs
- DataPointer.cs
- ScrollItemProviderWrapper.cs
- XmlSchemas.cs
- ClientRoleProvider.cs
- LayoutEditorPart.cs
- InputDevice.cs
- HttpPostedFile.cs
- TextServicesProperty.cs
- Latin1Encoding.cs
- CommandConverter.cs
- InkCollectionBehavior.cs
- UnsafeNativeMethodsPenimc.cs
- Axis.cs
- StringToken.cs
- GridViewRow.cs
- ContainerControl.cs
- HelpEvent.cs
- ThousandthOfEmRealPoints.cs
- ADMembershipProvider.cs
- BufferCache.cs