Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / ChtmlTextWriter.cs / 2 / ChtmlTextWriter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- // ChtmlTextWriter.cs // namespace System.Web.UI { using System; using System.Collections; using System.Collections.Specialized; using System.IO; using System.Text; using System.Web.UI.WebControls; using System.Web.Util; using System.Globalization; using System.Security.Permissions; ////// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class ChtmlTextWriter : Html32TextWriter { private Hashtable _recognizedAttributes = new Hashtable(StringComparer.CurrentCultureIgnoreCase); private Hashtable _suppressedAttributes = new Hashtable(StringComparer.CurrentCultureIgnoreCase); private Hashtable _globalSuppressedAttributes = new Hashtable(StringComparer.CurrentCultureIgnoreCase); public ChtmlTextWriter(TextWriter writer) : this(writer, DefaultTabString) { } public ChtmlTextWriter(TextWriter writer, string tabString) : base(writer, tabString) { _globalSuppressedAttributes["onclick"] = true; _globalSuppressedAttributes["ondblclick"] = true; _globalSuppressedAttributes["onmousedown"] = true; _globalSuppressedAttributes["onmouseup"] = true; _globalSuppressedAttributes["onmouseover"] = true; _globalSuppressedAttributes["onmousemove"] = true; _globalSuppressedAttributes["onmouseout"] = true; _globalSuppressedAttributes["onkeypress"] = true; _globalSuppressedAttributes["onkeydown"] = true; _globalSuppressedAttributes["onkeyup"] = true; // Supress certain element attribute pairs that can happen when Html32TextWriter performs the div table // substitution. RemoveRecognizedAttributeInternal("div", "accesskey"); // RemoveRecognizedAttributeInternal("div", "cellspacing"); RemoveRecognizedAttributeInternal("div", "cellpadding"); RemoveRecognizedAttributeInternal("div", "gridlines"); RemoveRecognizedAttributeInternal("div", "rules"); RemoveRecognizedAttributeInternal("span", "cellspacing"); RemoveRecognizedAttributeInternal("span", "cellpadding"); RemoveRecognizedAttributeInternal("span", "gridlines"); RemoveRecognizedAttributeInternal("span", "rules"); } ///[To be supplied.] ////// public virtual void AddRecognizedAttribute(string elementName, string attributeName) { Hashtable eltAttributes = (Hashtable) _recognizedAttributes[elementName]; if (eltAttributes == null) { eltAttributes = new Hashtable(StringComparer.CurrentCultureIgnoreCase); _recognizedAttributes[elementName] = eltAttributes; } eltAttributes.Add(attributeName, true); } ///[To be supplied.] ////// Override to filter out unnecessary attributes /// protected override bool OnAttributeRender(string name, string value, HtmlTextWriterAttribute key) { Hashtable elementRecognizedAttributes = (Hashtable)_recognizedAttributes[TagName]; if (elementRecognizedAttributes != null && elementRecognizedAttributes[name] != null) { return true; } if (_globalSuppressedAttributes[name] != null) { return false; } Hashtable elementSuppressedAttributes = (Hashtable)_suppressedAttributes[TagName]; if (elementSuppressedAttributes != null && elementSuppressedAttributes[name] != null) { return false; } return true; } protected override bool OnStyleAttributeRender(string name,string value, HtmlTextWriterStyle key) { if (key == HtmlTextWriterStyle.TextDecoration) { if (StringUtil.EqualsIgnoreCase("line-through", value)) { return false; } } return base.OnStyleAttributeRender(name, value, key); } protected override bool OnTagRender(string name, HtmlTextWriterTag key) { return base.OnTagRender(name, key) && key != HtmlTextWriterTag.Span; } ////// public virtual void RemoveRecognizedAttribute(string elementName, string attributeName) { RemoveRecognizedAttributeInternal(elementName, attributeName); } private void RemoveRecognizedAttributeInternal(string elementName, string attributeName) { // Since recognized attributes have precedence, we need to do two operations: add this attribute // to the suppressed list, and remove it from the recognized list. Hashtable eltAttributes = (Hashtable) _suppressedAttributes[elementName]; if (eltAttributes == null) { eltAttributes = new Hashtable(StringComparer.CurrentCultureIgnoreCase); _suppressedAttributes[elementName] = eltAttributes; } eltAttributes.Add(attributeName, true); eltAttributes = (Hashtable)_recognizedAttributes[elementName]; if (eltAttributes == null) { eltAttributes = new Hashtable(StringComparer.CurrentCultureIgnoreCase); _recognizedAttributes[elementName] = eltAttributes; } // Note: Hashtable::Remove silently continues if the key does not exist. eltAttributes.Remove(attributeName); } public override void WriteBreak() { Write("[To be supplied.] ///
"); } public override void WriteEncodedText(String text) { if (null == text || text.Length == 0) { return; } int length = text.Length; int start = -1; for(int pos = 0; pos < length; pos++) { int ch = text[pos]; if(ch > 160 && ch < 256) { if(start != -1) { base.WriteEncodedText(text.Substring(start, pos - start)); start = -1; } base.Write(text[pos]); } else { if(start == -1) { start = pos; } } } if(start != -1) { if(start == 0) { base.WriteEncodedText(text); } else { base.WriteEncodedText(text.Substring(start, length - start)); } } } protected Hashtable RecognizedAttributes { get { return _recognizedAttributes; } } protected Hashtable SuppressedAttributes { get { return _suppressedAttributes; } } protected Hashtable GlobalSuppressedAttributes { get { return _globalSuppressedAttributes; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- // ChtmlTextWriter.cs // namespace System.Web.UI { using System; using System.Collections; using System.Collections.Specialized; using System.IO; using System.Text; using System.Web.UI.WebControls; using System.Web.Util; using System.Globalization; using System.Security.Permissions; ////// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class ChtmlTextWriter : Html32TextWriter { private Hashtable _recognizedAttributes = new Hashtable(StringComparer.CurrentCultureIgnoreCase); private Hashtable _suppressedAttributes = new Hashtable(StringComparer.CurrentCultureIgnoreCase); private Hashtable _globalSuppressedAttributes = new Hashtable(StringComparer.CurrentCultureIgnoreCase); public ChtmlTextWriter(TextWriter writer) : this(writer, DefaultTabString) { } public ChtmlTextWriter(TextWriter writer, string tabString) : base(writer, tabString) { _globalSuppressedAttributes["onclick"] = true; _globalSuppressedAttributes["ondblclick"] = true; _globalSuppressedAttributes["onmousedown"] = true; _globalSuppressedAttributes["onmouseup"] = true; _globalSuppressedAttributes["onmouseover"] = true; _globalSuppressedAttributes["onmousemove"] = true; _globalSuppressedAttributes["onmouseout"] = true; _globalSuppressedAttributes["onkeypress"] = true; _globalSuppressedAttributes["onkeydown"] = true; _globalSuppressedAttributes["onkeyup"] = true; // Supress certain element attribute pairs that can happen when Html32TextWriter performs the div table // substitution. RemoveRecognizedAttributeInternal("div", "accesskey"); // RemoveRecognizedAttributeInternal("div", "cellspacing"); RemoveRecognizedAttributeInternal("div", "cellpadding"); RemoveRecognizedAttributeInternal("div", "gridlines"); RemoveRecognizedAttributeInternal("div", "rules"); RemoveRecognizedAttributeInternal("span", "cellspacing"); RemoveRecognizedAttributeInternal("span", "cellpadding"); RemoveRecognizedAttributeInternal("span", "gridlines"); RemoveRecognizedAttributeInternal("span", "rules"); } ///[To be supplied.] ////// public virtual void AddRecognizedAttribute(string elementName, string attributeName) { Hashtable eltAttributes = (Hashtable) _recognizedAttributes[elementName]; if (eltAttributes == null) { eltAttributes = new Hashtable(StringComparer.CurrentCultureIgnoreCase); _recognizedAttributes[elementName] = eltAttributes; } eltAttributes.Add(attributeName, true); } ///[To be supplied.] ////// Override to filter out unnecessary attributes /// protected override bool OnAttributeRender(string name, string value, HtmlTextWriterAttribute key) { Hashtable elementRecognizedAttributes = (Hashtable)_recognizedAttributes[TagName]; if (elementRecognizedAttributes != null && elementRecognizedAttributes[name] != null) { return true; } if (_globalSuppressedAttributes[name] != null) { return false; } Hashtable elementSuppressedAttributes = (Hashtable)_suppressedAttributes[TagName]; if (elementSuppressedAttributes != null && elementSuppressedAttributes[name] != null) { return false; } return true; } protected override bool OnStyleAttributeRender(string name,string value, HtmlTextWriterStyle key) { if (key == HtmlTextWriterStyle.TextDecoration) { if (StringUtil.EqualsIgnoreCase("line-through", value)) { return false; } } return base.OnStyleAttributeRender(name, value, key); } protected override bool OnTagRender(string name, HtmlTextWriterTag key) { return base.OnTagRender(name, key) && key != HtmlTextWriterTag.Span; } ////// public virtual void RemoveRecognizedAttribute(string elementName, string attributeName) { RemoveRecognizedAttributeInternal(elementName, attributeName); } private void RemoveRecognizedAttributeInternal(string elementName, string attributeName) { // Since recognized attributes have precedence, we need to do two operations: add this attribute // to the suppressed list, and remove it from the recognized list. Hashtable eltAttributes = (Hashtable) _suppressedAttributes[elementName]; if (eltAttributes == null) { eltAttributes = new Hashtable(StringComparer.CurrentCultureIgnoreCase); _suppressedAttributes[elementName] = eltAttributes; } eltAttributes.Add(attributeName, true); eltAttributes = (Hashtable)_recognizedAttributes[elementName]; if (eltAttributes == null) { eltAttributes = new Hashtable(StringComparer.CurrentCultureIgnoreCase); _recognizedAttributes[elementName] = eltAttributes; } // Note: Hashtable::Remove silently continues if the key does not exist. eltAttributes.Remove(attributeName); } public override void WriteBreak() { Write("[To be supplied.] ///
"); } public override void WriteEncodedText(String text) { if (null == text || text.Length == 0) { return; } int length = text.Length; int start = -1; for(int pos = 0; pos < length; pos++) { int ch = text[pos]; if(ch > 160 && ch < 256) { if(start != -1) { base.WriteEncodedText(text.Substring(start, pos - start)); start = -1; } base.Write(text[pos]); } else { if(start == -1) { start = pos; } } } if(start != -1) { if(start == 0) { base.WriteEncodedText(text); } else { base.WriteEncodedText(text.Substring(start, length - start)); } } } protected Hashtable RecognizedAttributes { get { return _recognizedAttributes; } } protected Hashtable SuppressedAttributes { get { return _suppressedAttributes; } } protected Hashtable GlobalSuppressedAttributes { get { return _globalSuppressedAttributes; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DiffuseMaterial.cs
- MetadataItemCollectionFactory.cs
- ObjectSet.cs
- WebReferencesBuildProvider.cs
- _NestedMultipleAsyncResult.cs
- WebPartMenuStyle.cs
- PeerApplicationLaunchInfo.cs
- CodeGenerator.cs
- SingleAnimationUsingKeyFrames.cs
- NodeLabelEditEvent.cs
- TypeDescriptor.cs
- OleDbEnumerator.cs
- CopyOnWriteList.cs
- ToolStripDesignerAvailabilityAttribute.cs
- EventDescriptorCollection.cs
- StyleCollection.cs
- ModelServiceImpl.cs
- PointHitTestResult.cs
- PasswordDeriveBytes.cs
- WindowsComboBox.cs
- EasingQuaternionKeyFrame.cs
- SubtreeProcessor.cs
- StrongTypingException.cs
- CodeAccessPermission.cs
- RequestResponse.cs
- WrappedIUnknown.cs
- FixedBufferAttribute.cs
- MergeLocalizationDirectives.cs
- ImageCollectionEditor.cs
- RelationshipEndCollection.cs
- columnmapkeybuilder.cs
- DataReaderContainer.cs
- DataStorage.cs
- TopClause.cs
- CompositeActivityTypeDescriptorProvider.cs
- XmlSchemaInferenceException.cs
- FormViewActionList.cs
- NavigationExpr.cs
- PlainXmlDeserializer.cs
- CodeValidator.cs
- StringExpressionSet.cs
- WebPartEventArgs.cs
- BrowserDefinition.cs
- GraphicsState.cs
- TextElementEnumerator.cs
- DataControlButton.cs
- BaseTemplateCodeDomTreeGenerator.cs
- NativeRecognizer.cs
- StretchValidation.cs
- ContentWrapperAttribute.cs
- IOThreadTimer.cs
- ButtonBase.cs
- RegistryPermission.cs
- ConfigDefinitionUpdates.cs
- ExpanderAutomationPeer.cs
- remotingproxy.cs
- RectangleConverter.cs
- IRCollection.cs
- ExclusiveHandleList.cs
- Serializer.cs
- BCryptSafeHandles.cs
- SqlClientMetaDataCollectionNames.cs
- GridView.cs
- ItemMap.cs
- ColorTypeConverter.cs
- HierarchicalDataBoundControlAdapter.cs
- DataGridViewBindingCompleteEventArgs.cs
- XmlBinaryReaderSession.cs
- ButtonBase.cs
- TypeSemantics.cs
- PageFunction.cs
- AuthenticationModuleElementCollection.cs
- NavigatingCancelEventArgs.cs
- SessionStateUtil.cs
- GenericIdentity.cs
- TableItemProviderWrapper.cs
- WorkflowQueueInfo.cs
- ViewManager.cs
- DbLambda.cs
- ActiveXHelper.cs
- DataColumnChangeEvent.cs
- PropertyValueUIItem.cs
- DataGridState.cs
- StandardToolWindows.cs
- AppearanceEditorPart.cs
- odbcmetadatafactory.cs
- CodeBinaryOperatorExpression.cs
- HTTPNotFoundHandler.cs
- HttpPostedFileWrapper.cs
- Line.cs
- RelationshipWrapper.cs
- BindingMemberInfo.cs
- ToolStripItemDataObject.cs
- EncoderParameter.cs
- ExpressionBuilder.cs
- TemplatePropertyEntry.cs
- TableParagraph.cs
- Point4DConverter.cs
- InputLanguageManager.cs
- WebPartDisplayMode.cs