Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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);
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DirtyTextRange.cs
- CompositeFontParser.cs
- Command.cs
- Attachment.cs
- X509CertificateValidator.cs
- PropertyEmitter.cs
- SerializationEventsCache.cs
- RecognitionEventArgs.cs
- ObjectDataSourceSelectingEventArgs.cs
- TextRange.cs
- LostFocusEventManager.cs
- NumberAction.cs
- __Filters.cs
- DecoderReplacementFallback.cs
- CircleEase.cs
- Brushes.cs
- Repeater.cs
- TemplateParser.cs
- AdornerPresentationContext.cs
- MonitoringDescriptionAttribute.cs
- AsyncPostBackErrorEventArgs.cs
- NotCondition.cs
- ProxySimple.cs
- ToolStripContainer.cs
- Constraint.cs
- Cell.cs
- Attributes.cs
- GridItemCollection.cs
- CmsUtils.cs
- BitmapEffectOutputConnector.cs
- SettingsBindableAttribute.cs
- WebPartEditVerb.cs
- MouseWheelEventArgs.cs
- SchemaImporterExtension.cs
- BasePattern.cs
- HttpCookie.cs
- FixedBufferAttribute.cs
- ConfigurationSection.cs
- METAHEADER.cs
- GridItemProviderWrapper.cs
- JsonQNameDataContract.cs
- DataListItem.cs
- CompilationRelaxations.cs
- XmlIgnoreAttribute.cs
- AsyncOperation.cs
- xmlglyphRunInfo.cs
- BitmapImage.cs
- WindowsProgressbar.cs
- DockProviderWrapper.cs
- FrameworkContentElementAutomationPeer.cs
- ToolStripGripRenderEventArgs.cs
- baseaxisquery.cs
- RegularExpressionValidator.cs
- JobDuplex.cs
- DataGridViewRowCancelEventArgs.cs
- OpenTypeMethods.cs
- XmlChildEnumerator.cs
- UserControl.cs
- OleDbReferenceCollection.cs
- ZipIOCentralDirectoryFileHeader.cs
- HwndSourceParameters.cs
- InheritedPropertyChangedEventArgs.cs
- Composition.cs
- UIElementCollection.cs
- DisplayInformation.cs
- SamlAssertion.cs
- RijndaelManaged.cs
- Triplet.cs
- ReturnEventArgs.cs
- BitmapEffect.cs
- ResourceDictionary.cs
- ContentOperations.cs
- InputMethodStateTypeInfo.cs
- TemplateContentLoader.cs
- DiagnosticsConfigurationHandler.cs
- BindingWorker.cs
- ContextDataSource.cs
- RsaElement.cs
- StretchValidation.cs
- FamilyCollection.cs
- CompoundFileStreamReference.cs
- Win32KeyboardDevice.cs
- ExtenderControl.cs
- Point3DAnimationBase.cs
- DataGridViewCellCancelEventArgs.cs
- LeftCellWrapper.cs
- TagPrefixAttribute.cs
- PropertyGrid.cs
- SimpleFileLog.cs
- MappingModelBuildProvider.cs
- SerializationSectionGroup.cs
- WindowsButton.cs
- ButtonBase.cs
- PathFigure.cs
- IISMapPath.cs
- ManagedCodeMarkers.cs
- XamlToRtfParser.cs
- ColumnMapTranslator.cs
- DeclaredTypeValidator.cs
- Model3D.cs