Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / ObjectListCommandCollection.cs / 1305376 / ObjectListCommandCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Security.Permissions; namespace System.Web.UI.MobileControls { /* * Object List Command Collection class. * * Copyright (c) 2000 Microsoft Corporation */ ///[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")] public class ObjectListCommandCollection : ArrayListCollectionBase, IStateManager { // ObjectListCommandCollection has a special form of viewstate management. // In normal operation, if you add, remove or modify commands in the // collection, the results are saved as part of view state. // // However, when showing the commands for an item, the ObjectList control // raises an event that allows the application to alter the commands // specifically for the item. These changes are considered local to the // item, and are not saved. // // To do this, the class uses a private state, declared in the MarkState // enumeration below. The following sequence of events are used: // // 1) Class is created. MarkState is set to MarkState.NotMarked. // 2) Class is initialized from persistent values. // 3) Framework calls TrackViewState. MarkState is set to MarkState.MArked. // 4) Properties can be changed. Changes are reflected in viewstate. // 5) Just before raising the ShowItemCommands event, the ObjectList control // calls GlobalStateSet. PreSaveViewState is called to create a // snapshot of viewstate, and MarkState is set to MarkState.PostMarked. // 6) If any changes are made after this, they will be ignored for view state // purposes. // 7) The framework calls SaveViewState. Instead of the current view state // (which would include the changes made in Step 6), the snapshot view state // from step 5 is returned. private enum MarkState { NotMarked, Marked, PostMarked, } private MarkState _markState = MarkState.NotMarked; private bool _dirty; private String[] _savedState; internal ObjectListCommandCollection() { } /// public ObjectListCommand this[int index] { get { return (ObjectListCommand)Items[index]; } } /// public void Clear() { foreach (ObjectListCommand command in Items) { command.Owner = null; } Items.Clear(); SetDirty(); } /// public void Add(ObjectListCommand command) { AddAt(-1, command); } /// public void AddAt(int index, ObjectListCommand command) { if (index == -1) { Items.Add(command); } else { Items.Insert(index, command); } command.Owner = this; SetDirty(); } /// public void Remove(String s) { RemoveAt(IndexOf(s)); } /// public void RemoveAt(int index) { (this[index]).Owner = null; Items.RemoveAt(index); SetDirty(); } /// public int IndexOf(String s) { int index = 0; foreach (ObjectListCommand command in Items) { if (String.Compare(command.Name, s, StringComparison.OrdinalIgnoreCase) == 0) { return index; } index++; } return -1; } internal void GlobalStateSet() { // Base commands have been set. From here, commands will only be // modified on a per-item, non-persistent basis. PreSaveViewState(); _markState = MarkState.PostMarked; } internal void SetDirty() { if (_markState == MarkState.Marked) { _dirty = true; } } ///////////////////////////////////////////////////////////////////////// // STATE MANAGEMENT ///////////////////////////////////////////////////////////////////////// private void PreSaveViewState() { if (_dirty) { ArrayList commands = Items; _savedState = new String[commands.Count * 2]; int i = 0; foreach (ObjectListCommand command in commands) { _savedState[i] = command.Name; _savedState[i + 1] = command.Text; i += 2; } } else { _savedState = null; } } /// protected bool IsTrackingViewState { get { return _markState != MarkState.NotMarked; } } /// protected void TrackViewState() { _markState = MarkState.Marked; } /// protected void LoadViewState(Object state) { if (state != null) { String[] commandStates = (String[])state; int count = commandStates.Length; Clear(); for (int i = 0; i < count; i += 2) { Add(new ObjectListCommand(commandStates[i], commandStates[i + 1])); } } } /// protected Object SaveViewState() { if (_markState == MarkState.Marked) { PreSaveViewState(); } return _savedState; } #region Implementation of IStateManager /// bool IStateManager.IsTrackingViewState { get { return IsTrackingViewState; } } /// void IStateManager.LoadViewState(object state) { LoadViewState(state); } /// void IStateManager.TrackViewState() { TrackViewState(); } /// object IStateManager.SaveViewState() { return SaveViewState(); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Security.Permissions; namespace System.Web.UI.MobileControls { /* * Object List Command Collection class. * * Copyright (c) 2000 Microsoft Corporation */ ///[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")] public class ObjectListCommandCollection : ArrayListCollectionBase, IStateManager { // ObjectListCommandCollection has a special form of viewstate management. // In normal operation, if you add, remove or modify commands in the // collection, the results are saved as part of view state. // // However, when showing the commands for an item, the ObjectList control // raises an event that allows the application to alter the commands // specifically for the item. These changes are considered local to the // item, and are not saved. // // To do this, the class uses a private state, declared in the MarkState // enumeration below. The following sequence of events are used: // // 1) Class is created. MarkState is set to MarkState.NotMarked. // 2) Class is initialized from persistent values. // 3) Framework calls TrackViewState. MarkState is set to MarkState.MArked. // 4) Properties can be changed. Changes are reflected in viewstate. // 5) Just before raising the ShowItemCommands event, the ObjectList control // calls GlobalStateSet. PreSaveViewState is called to create a // snapshot of viewstate, and MarkState is set to MarkState.PostMarked. // 6) If any changes are made after this, they will be ignored for view state // purposes. // 7) The framework calls SaveViewState. Instead of the current view state // (which would include the changes made in Step 6), the snapshot view state // from step 5 is returned. private enum MarkState { NotMarked, Marked, PostMarked, } private MarkState _markState = MarkState.NotMarked; private bool _dirty; private String[] _savedState; internal ObjectListCommandCollection() { } /// public ObjectListCommand this[int index] { get { return (ObjectListCommand)Items[index]; } } /// public void Clear() { foreach (ObjectListCommand command in Items) { command.Owner = null; } Items.Clear(); SetDirty(); } /// public void Add(ObjectListCommand command) { AddAt(-1, command); } /// public void AddAt(int index, ObjectListCommand command) { if (index == -1) { Items.Add(command); } else { Items.Insert(index, command); } command.Owner = this; SetDirty(); } /// public void Remove(String s) { RemoveAt(IndexOf(s)); } /// public void RemoveAt(int index) { (this[index]).Owner = null; Items.RemoveAt(index); SetDirty(); } /// public int IndexOf(String s) { int index = 0; foreach (ObjectListCommand command in Items) { if (String.Compare(command.Name, s, StringComparison.OrdinalIgnoreCase) == 0) { return index; } index++; } return -1; } internal void GlobalStateSet() { // Base commands have been set. From here, commands will only be // modified on a per-item, non-persistent basis. PreSaveViewState(); _markState = MarkState.PostMarked; } internal void SetDirty() { if (_markState == MarkState.Marked) { _dirty = true; } } ///////////////////////////////////////////////////////////////////////// // STATE MANAGEMENT ///////////////////////////////////////////////////////////////////////// private void PreSaveViewState() { if (_dirty) { ArrayList commands = Items; _savedState = new String[commands.Count * 2]; int i = 0; foreach (ObjectListCommand command in commands) { _savedState[i] = command.Name; _savedState[i + 1] = command.Text; i += 2; } } else { _savedState = null; } } /// protected bool IsTrackingViewState { get { return _markState != MarkState.NotMarked; } } /// protected void TrackViewState() { _markState = MarkState.Marked; } /// protected void LoadViewState(Object state) { if (state != null) { String[] commandStates = (String[])state; int count = commandStates.Length; Clear(); for (int i = 0; i < count; i += 2) { Add(new ObjectListCommand(commandStates[i], commandStates[i + 1])); } } } /// protected Object SaveViewState() { if (_markState == MarkState.Marked) { PreSaveViewState(); } return _savedState; } #region Implementation of IStateManager /// bool IStateManager.IsTrackingViewState { get { return IsTrackingViewState; } } /// void IStateManager.LoadViewState(object state) { LoadViewState(state); } /// void IStateManager.TrackViewState() { TrackViewState(); } /// object IStateManager.SaveViewState() { return SaveViewState(); } #endregion } } // 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
- BlurBitmapEffect.cs
- InvariantComparer.cs
- HttpBrowserCapabilitiesBase.cs
- TextPattern.cs
- WindowsGrip.cs
- StandardBindingOptionalReliableSessionElement.cs
- HorizontalAlignConverter.cs
- OleDbParameter.cs
- SettingsPropertyNotFoundException.cs
- EntityDataSourceUtil.cs
- URLMembershipCondition.cs
- SafeFileMappingHandle.cs
- WindowsPrincipal.cs
- InputReportEventArgs.cs
- CharAnimationUsingKeyFrames.cs
- MiniMapControl.xaml.cs
- DataIdProcessor.cs
- QueryContinueDragEventArgs.cs
- DropShadowBitmapEffect.cs
- CircleHotSpot.cs
- SchemaNotation.cs
- TextSerializer.cs
- SettingsSavedEventArgs.cs
- BinaryReader.cs
- ObservableDictionary.cs
- GetBrowserTokenRequest.cs
- StorageAssociationTypeMapping.cs
- ProviderUtil.cs
- Configuration.cs
- OdbcDataReader.cs
- XmlSchemaAnyAttribute.cs
- SingleAnimationUsingKeyFrames.cs
- ConfigViewGenerator.cs
- CookieParameter.cs
- WebPartEditorApplyVerb.cs
- WebPartDisplayModeCancelEventArgs.cs
- ImageFormatConverter.cs
- TripleDESCryptoServiceProvider.cs
- SslSecurityTokenParameters.cs
- AffineTransform3D.cs
- DataGridColumnFloatingHeader.cs
- ConnectionConsumerAttribute.cs
- TextRangeEdit.cs
- CompiledQueryCacheKey.cs
- _NegoState.cs
- PropertyMappingExceptionEventArgs.cs
- WorkflowElementDialog.cs
- InvalidFilterCriteriaException.cs
- BitmapInitialize.cs
- DataGridCellItemAutomationPeer.cs
- _ListenerRequestStream.cs
- LinqDataSourceDeleteEventArgs.cs
- MetricEntry.cs
- AlignmentYValidation.cs
- VirtualizingStackPanel.cs
- InputEventArgs.cs
- HttpCookieCollection.cs
- ICspAsymmetricAlgorithm.cs
- commandenforcer.cs
- TemplateXamlParser.cs
- TemplateBamlRecordReader.cs
- ConfigurationValue.cs
- WriteTimeStream.cs
- FileDialogPermission.cs
- MSAAWinEventWrap.cs
- TypeDescriptionProviderAttribute.cs
- EdmValidator.cs
- MergeLocalizationDirectives.cs
- SupportingTokenProviderSpecification.cs
- FontFaceLayoutInfo.cs
- SimpleHandlerFactory.cs
- _IPv4Address.cs
- DataGrid.cs
- KeyTimeConverter.cs
- ErasingStroke.cs
- XXXOnTypeBuilderInstantiation.cs
- CustomTrackingQuery.cs
- PhysicalAddress.cs
- TextShapeableCharacters.cs
- ServerValidateEventArgs.cs
- COM2ColorConverter.cs
- TargetConverter.cs
- SoapWriter.cs
- TriggerActionCollection.cs
- UnmanagedMarshal.cs
- panel.cs
- CodeChecksumPragma.cs
- WebServiceParameterData.cs
- TextTreeNode.cs
- MemberDescriptor.cs
- NameScope.cs
- XamlContextStack.cs
- Pipe.cs
- KnownBoxes.cs
- ThrowHelper.cs
- ConfigurationStrings.cs
- Literal.cs
- EmptyEnumerator.cs
- CodeAttributeArgument.cs
- HtmlTextArea.cs