Code:
                         / 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebParts / WebPartVerb.cs / 1305376 / WebPartVerb.cs
                        
                        
                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
//  
//----------------------------------------------------------------------------- 
namespace System.Web.UI.WebControls.WebParts { 
 
    using System;
    using System.ComponentModel; 
    using System.Diagnostics;
    using System.Drawing.Design;
    using System.Globalization;
    using System.Web.UI.WebControls; 
    using System.Web.Util;
 
    [ 
    TypeConverter(typeof(EmptyStringExpandableObjectConverter))
    ] 
    public class WebPartVerb : IStateManager {
        private bool _isTrackingViewState;
        private StateBag _viewState;
 
        private bool _visible = true;
 
        private string _id; 
        private string _clientClickHandler;
        private WebPartEventHandler _serverClickHandler; 
        private string _eventArgument;
        // PERF: Don't create the EventArgument string until needed, when the verb is actually rendered. 
        private string _eventArgumentPrefix;
 
        // Used when creating default verbs in WebPartZoneBase, CatalogZoneBase, EditorZoneBase. For these 
        // verbs, the clientClickHandler and serverClickHandler are null. The zone has references
        // to these verbs and can render the verb and handle events by knowing which verb it is 
        // rendering.
        internal WebPartVerb() {
        }
 
        private WebPartVerb(string id) {
            if (String.IsNullOrEmpty(id)) { 
                throw ExceptionUtil.ParameterNullOrEmpty("id"); 
            }
 
            _id = id;
        }
        public WebPartVerb(string id, WebPartEventHandler serverClickHandler) : this(id) { 
            if (serverClickHandler == null) {
                throw new ArgumentNullException("serverClickHandler"); 
            } 
            _serverClickHandler = serverClickHandler;
        } 
        public WebPartVerb(string id, string clientClickHandler) : this(id) {
            if (String.IsNullOrEmpty(clientClickHandler)) {
                throw new ArgumentNullException("clientClickHandler"); 
            }
            _clientClickHandler = clientClickHandler; 
        } 
        public WebPartVerb(string id, WebPartEventHandler serverClickHandler, string clientClickHandler) : this(id) { 
            if (serverClickHandler == null) {
                throw new ArgumentNullException("serverClickHandler");
            }
            if (String.IsNullOrEmpty(clientClickHandler)) { 
                throw new ArgumentNullException("clientClickHandler");
            } 
            _serverClickHandler = serverClickHandler; 
            _clientClickHandler = clientClickHandler;
        } 
        [
        DefaultValue(false),
        NotifyParentProperty(true), 
        Themeable(false),
        WebSysDescription(SR.WebPartVerb_Checked), 
        ] 
        public virtual bool Checked {
            get { 
                object b = ViewState["Checked"];
                return (b != null) ? (bool)b : false  ;
            }
            set { 
                ViewState["Checked"] = value;
            } 
        } 
        [ 
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
        ]
        public string ClientClickHandler { 
            get {
                return (_clientClickHandler == null) ? String.Empty: _clientClickHandler; 
            } 
        }
 
        [
        Localizable(true),
        NotifyParentProperty(true),
        // Must use WebSysDefaultValue instead of DefaultValue, since it is overridden in extending classes 
        WebSysDefaultValue(""),
        WebSysDescription(SR.WebPartVerb_Description), 
        ] 
        public virtual string Description {
            get { 
                object o = ViewState["Description"];
                return (o == null) ? String.Empty : (string)o;
            }
            set { 
                ViewState["Description"] = value;
            } 
        } 
        [ 
        DefaultValue(true),
        NotifyParentProperty(true),
        Themeable(false),
        WebSysDescription(SR.WebPartVerb_Enabled), 
        ]
        public virtual bool Enabled { 
            get { 
                object b = ViewState["Enabled"];
                return (b != null) ? (bool)b : true; 
            }
            set {
                ViewState["Enabled"] = value;
            } 
        }
 
        ///  
        /// Used to assign an event argument to the verb that will be rendered later.
        ///   
        internal string EventArgument {
            get {
                return (_eventArgument != null) ? _eventArgument : String.Empty;
            } 
            set {
                _eventArgument = value; 
            } 
        }
 
        [
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
        ] 
        public string ID {
            get { 
                return (_id != null) ? _id : String.Empty; 
            }
        } 
        [
        DefaultValue(""),
        Editor("System.Web.UI.Design.ImageUrlEditor, " + AssemblyRef.SystemDesign, typeof(UITypeEditor)), 
        NotifyParentProperty(true),
        UrlProperty(), 
        WebSysDescription(SR.WebPartVerb_ImageUrl), 
        ]
        public virtual string ImageUrl { 
            get {
                object o = ViewState["ImageUrl"];
                return (o == null) ? String.Empty : (string)o;
            } 
            set {
                ViewState["ImageUrl"] = value; 
            } 
        }
 
        protected virtual bool IsTrackingViewState {
            get {
                return _isTrackingViewState;
            } 
        }
 
        [ 
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) 
        ]
        public WebPartEventHandler ServerClickHandler {
            get {
                return _serverClickHandler; 
            }
        } 
 
        /// 
        /// The text to be displayed for the webPartVerb. 
        ///  
        [
        Localizable(true),
        NotifyParentProperty(true), 
        // Must use WebSysDefaultValue instead of DefaultValue, since it is overridden in extending classes
        WebSysDefaultValue(""), 
        WebSysDescription(SR.WebPartVerb_Text), 
        ]
        public virtual string Text { 
            get {
                object o = ViewState["Text"];
                return (o == null) ? String.Empty : (string)o;
            } 
            set {
                ViewState["Text"] = value; 
            } 
        }
 
        [
        DefaultValue(true),
        NotifyParentProperty(true),
        Themeable(false), 
        WebSysDescription(SR.WebPartVerb_Visible),
        ] 
        public virtual bool Visible { 
            get {
                return _visible; 
            }
            set {
                _visible = value;
                ViewState["Visible"] = value; 
            }
        } 
 
        protected StateBag ViewState {
            get { 
                if (_viewState == null) {
                    _viewState = new StateBag(false);
                    if (_isTrackingViewState) {
                        ((IStateManager)_viewState).TrackViewState(); 
                    }
                } 
                return _viewState; 
            }
        } 
        // PERF: Don't create the EventArgument string until needed, when the verb is actually rendered.
        // Only called by WebPartChrome and WebPartMenu.  The verbs in CatalogZone, EditorZone, and
        // ConnectionsZone just use the EventArgument property. 
        internal string GetEventArgument(string webPartID) {
            // If the prefix was never set, it means we are a user-specified verb with only a 
            // client click handler.  So we should return String.Empty for our EventArgument. 
            if (String.IsNullOrEmpty(_eventArgumentPrefix)) {
                return String.Empty; 
            }
            else {
                if (_id == null) {
                    return _eventArgumentPrefix + webPartID; 
                }
                else { 
                    return _eventArgumentPrefix + _id + 
                        WebPartZoneBase.EventArgumentSeparator + webPartID;
                } 
            }
        }
        protected virtual void LoadViewState(object savedState) { 
            if (savedState != null) {
                ((IStateManager)ViewState).LoadViewState(savedState); 
 
                // Cache value of Visible
                object b = ViewState["Visible"]; 
                if (b != null) {
                    _visible = (bool)b;
                }
            } 
        }
 
        protected virtual object SaveViewState() { 
            if (_viewState != null) {
                return ((IStateManager)_viewState).SaveViewState(); 
            }
            return null;
        }
 
        // Only used by WebPartZoneBase for verbs rendered on a WebPart.
        internal void SetEventArgumentPrefix(string eventArgumentPrefix) { 
            _eventArgumentPrefix = eventArgumentPrefix; 
        }
 
        protected virtual void TrackViewState() {
            _isTrackingViewState = true;
            if (_viewState != null) {
                ((IStateManager)_viewState).TrackViewState(); 
            }
        } 
 
        #region Implementation of IStateManager
        /// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
//  
//----------------------------------------------------------------------------- 
namespace System.Web.UI.WebControls.WebParts { 
 
    using System;
    using System.ComponentModel; 
    using System.Diagnostics;
    using System.Drawing.Design;
    using System.Globalization;
    using System.Web.UI.WebControls; 
    using System.Web.Util;
 
    [ 
    TypeConverter(typeof(EmptyStringExpandableObjectConverter))
    ] 
    public class WebPartVerb : IStateManager {
        private bool _isTrackingViewState;
        private StateBag _viewState;
 
        private bool _visible = true;
 
        private string _id; 
        private string _clientClickHandler;
        private WebPartEventHandler _serverClickHandler; 
        private string _eventArgument;
        // PERF: Don't create the EventArgument string until needed, when the verb is actually rendered. 
        private string _eventArgumentPrefix;
 
        // Used when creating default verbs in WebPartZoneBase, CatalogZoneBase, EditorZoneBase. For these 
        // verbs, the clientClickHandler and serverClickHandler are null. The zone has references
        // to these verbs and can render the verb and handle events by knowing which verb it is 
        // rendering.
        internal WebPartVerb() {
        }
 
        private WebPartVerb(string id) {
            if (String.IsNullOrEmpty(id)) { 
                throw ExceptionUtil.ParameterNullOrEmpty("id"); 
            }
 
            _id = id;
        }
        public WebPartVerb(string id, WebPartEventHandler serverClickHandler) : this(id) { 
            if (serverClickHandler == null) {
                throw new ArgumentNullException("serverClickHandler"); 
            } 
            _serverClickHandler = serverClickHandler;
        } 
        public WebPartVerb(string id, string clientClickHandler) : this(id) {
            if (String.IsNullOrEmpty(clientClickHandler)) {
                throw new ArgumentNullException("clientClickHandler"); 
            }
            _clientClickHandler = clientClickHandler; 
        } 
        public WebPartVerb(string id, WebPartEventHandler serverClickHandler, string clientClickHandler) : this(id) { 
            if (serverClickHandler == null) {
                throw new ArgumentNullException("serverClickHandler");
            }
            if (String.IsNullOrEmpty(clientClickHandler)) { 
                throw new ArgumentNullException("clientClickHandler");
            } 
            _serverClickHandler = serverClickHandler; 
            _clientClickHandler = clientClickHandler;
        } 
        [
        DefaultValue(false),
        NotifyParentProperty(true), 
        Themeable(false),
        WebSysDescription(SR.WebPartVerb_Checked), 
        ] 
        public virtual bool Checked {
            get { 
                object b = ViewState["Checked"];
                return (b != null) ? (bool)b : false  ;
            }
            set { 
                ViewState["Checked"] = value;
            } 
        } 
        [ 
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
        ]
        public string ClientClickHandler { 
            get {
                return (_clientClickHandler == null) ? String.Empty: _clientClickHandler; 
            } 
        }
 
        [
        Localizable(true),
        NotifyParentProperty(true),
        // Must use WebSysDefaultValue instead of DefaultValue, since it is overridden in extending classes 
        WebSysDefaultValue(""),
        WebSysDescription(SR.WebPartVerb_Description), 
        ] 
        public virtual string Description {
            get { 
                object o = ViewState["Description"];
                return (o == null) ? String.Empty : (string)o;
            }
            set { 
                ViewState["Description"] = value;
            } 
        } 
        [ 
        DefaultValue(true),
        NotifyParentProperty(true),
        Themeable(false),
        WebSysDescription(SR.WebPartVerb_Enabled), 
        ]
        public virtual bool Enabled { 
            get { 
                object b = ViewState["Enabled"];
                return (b != null) ? (bool)b : true; 
            }
            set {
                ViewState["Enabled"] = value;
            } 
        }
 
        ///  
        /// Used to assign an event argument to the verb that will be rendered later.
        ///   
        internal string EventArgument {
            get {
                return (_eventArgument != null) ? _eventArgument : String.Empty;
            } 
            set {
                _eventArgument = value; 
            } 
        }
 
        [
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
        ] 
        public string ID {
            get { 
                return (_id != null) ? _id : String.Empty; 
            }
        } 
        [
        DefaultValue(""),
        Editor("System.Web.UI.Design.ImageUrlEditor, " + AssemblyRef.SystemDesign, typeof(UITypeEditor)), 
        NotifyParentProperty(true),
        UrlProperty(), 
        WebSysDescription(SR.WebPartVerb_ImageUrl), 
        ]
        public virtual string ImageUrl { 
            get {
                object o = ViewState["ImageUrl"];
                return (o == null) ? String.Empty : (string)o;
            } 
            set {
                ViewState["ImageUrl"] = value; 
            } 
        }
 
        protected virtual bool IsTrackingViewState {
            get {
                return _isTrackingViewState;
            } 
        }
 
        [ 
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) 
        ]
        public WebPartEventHandler ServerClickHandler {
            get {
                return _serverClickHandler; 
            }
        } 
 
        /// 
        /// The text to be displayed for the webPartVerb. 
        ///  
        [
        Localizable(true),
        NotifyParentProperty(true), 
        // Must use WebSysDefaultValue instead of DefaultValue, since it is overridden in extending classes
        WebSysDefaultValue(""), 
        WebSysDescription(SR.WebPartVerb_Text), 
        ]
        public virtual string Text { 
            get {
                object o = ViewState["Text"];
                return (o == null) ? String.Empty : (string)o;
            } 
            set {
                ViewState["Text"] = value; 
            } 
        }
 
        [
        DefaultValue(true),
        NotifyParentProperty(true),
        Themeable(false), 
        WebSysDescription(SR.WebPartVerb_Visible),
        ] 
        public virtual bool Visible { 
            get {
                return _visible; 
            }
            set {
                _visible = value;
                ViewState["Visible"] = value; 
            }
        } 
 
        protected StateBag ViewState {
            get { 
                if (_viewState == null) {
                    _viewState = new StateBag(false);
                    if (_isTrackingViewState) {
                        ((IStateManager)_viewState).TrackViewState(); 
                    }
                } 
                return _viewState; 
            }
        } 
        // PERF: Don't create the EventArgument string until needed, when the verb is actually rendered.
        // Only called by WebPartChrome and WebPartMenu.  The verbs in CatalogZone, EditorZone, and
        // ConnectionsZone just use the EventArgument property. 
        internal string GetEventArgument(string webPartID) {
            // If the prefix was never set, it means we are a user-specified verb with only a 
            // client click handler.  So we should return String.Empty for our EventArgument. 
            if (String.IsNullOrEmpty(_eventArgumentPrefix)) {
                return String.Empty; 
            }
            else {
                if (_id == null) {
                    return _eventArgumentPrefix + webPartID; 
                }
                else { 
                    return _eventArgumentPrefix + _id + 
                        WebPartZoneBase.EventArgumentSeparator + webPartID;
                } 
            }
        }
        protected virtual void LoadViewState(object savedState) { 
            if (savedState != null) {
                ((IStateManager)ViewState).LoadViewState(savedState); 
 
                // Cache value of Visible
                object b = ViewState["Visible"]; 
                if (b != null) {
                    _visible = (bool)b;
                }
            } 
        }
 
        protected virtual object SaveViewState() { 
            if (_viewState != null) {
                return ((IStateManager)_viewState).SaveViewState(); 
            }
            return null;
        }
 
        // Only used by WebPartZoneBase for verbs rendered on a WebPart.
        internal void SetEventArgumentPrefix(string eventArgumentPrefix) { 
            _eventArgumentPrefix = eventArgumentPrefix; 
        }
 
        protected virtual void TrackViewState() {
            _isTrackingViewState = true;
            if (_viewState != null) {
                ((IStateManager)_viewState).TrackViewState(); 
            }
        } 
 
        #region Implementation of IStateManager
        /// 
                        
                        
                        
                    Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FixedBufferAttribute.cs
- SourceItem.cs
- HandleCollector.cs
- _DomainName.cs
- ZipArchive.cs
- EncryptedXml.cs
- PageContentCollection.cs
- ProfileElement.cs
- Cursor.cs
- PointAnimationClockResource.cs
- x509store.cs
- OracleCommand.cs
- FacetValues.cs
- KeyPressEvent.cs
- ContextMenuStrip.cs
- DynamicQueryableWrapper.cs
- DataMemberFieldConverter.cs
- TypeGeneratedEventArgs.cs
- EntityClientCacheEntry.cs
- XmlSignificantWhitespace.cs
- MessageFormatterConverter.cs
- NetTcpSectionData.cs
- HMACRIPEMD160.cs
- LambdaCompiler.Generated.cs
- WebPermission.cs
- NoResizeHandleGlyph.cs
- ViewValidator.cs
- SeparatorAutomationPeer.cs
- ReferenceSchema.cs
- DelegatedStream.cs
- TiffBitmapEncoder.cs
- XmlUTF8TextReader.cs
- StrokeCollection2.cs
- FixedBufferAttribute.cs
- StreamHelper.cs
- ListItem.cs
- QilName.cs
- ProfessionalColors.cs
- TemplateFactory.cs
- DocumentPaginator.cs
- XsltFunctions.cs
- Decorator.cs
- TcpTransportSecurity.cs
- ByteStreamMessageUtility.cs
- MouseEvent.cs
- EntityWithChangeTrackerStrategy.cs
- EventSourceCreationData.cs
- SamlEvidence.cs
- DataView.cs
- NominalTypeEliminator.cs
- Base64WriteStateInfo.cs
- IndexedString.cs
- NameSpaceEvent.cs
- TextRange.cs
- BitStream.cs
- XPathNodeHelper.cs
- CategoryValueConverter.cs
- QuadraticBezierSegment.cs
- SingleBodyParameterMessageFormatter.cs
- TextTreeUndo.cs
- HtmlEmptyTagControlBuilder.cs
- KeyConstraint.cs
- BoundColumn.cs
- BinaryFormatter.cs
- ServiceDescriptionReflector.cs
- GridLengthConverter.cs
- Console.cs
- ResourcePool.cs
- UpdateRecord.cs
- HttpHeaderCollection.cs
- SqlInfoMessageEvent.cs
- DataGridItemCollection.cs
- DesignSurfaceEvent.cs
- Hyperlink.cs
- DeflateInput.cs
- NavigatingCancelEventArgs.cs
- ServiceDocument.cs
- CacheModeValueSerializer.cs
- BitmapSource.cs
- CheckBoxList.cs
- DiagnosticTrace.cs
- AppearanceEditorPart.cs
- MailWriter.cs
- DetailsViewRowCollection.cs
- UnionCodeGroup.cs
- SaveWorkflowCommand.cs
- PixelShader.cs
- ApplicationServiceManager.cs
- HttpProfileGroupBase.cs
- PopOutPanel.cs
- StoreItemCollection.cs
- CodeStatementCollection.cs
- LayoutSettings.cs
- EncoderFallback.cs
- RectAnimationBase.cs
- SafeBitVector32.cs
- CutCopyPasteHelper.cs
- DateTimeValueSerializer.cs
- InkCanvasInnerCanvas.cs
- ChtmlLinkAdapter.cs