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
///
bool IStateManager.IsTrackingViewState {
get {
return IsTrackingViewState;
}
}
///
void IStateManager.LoadViewState(object savedState) {
LoadViewState(savedState);
}
///
object IStateManager.SaveViewState() {
return SaveViewState();
}
///
void IStateManager.TrackViewState() {
TrackViewState();
}
#endregion
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// 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
///
bool IStateManager.IsTrackingViewState {
get {
return IsTrackingViewState;
}
}
///
void IStateManager.LoadViewState(object savedState) {
LoadViewState(savedState);
}
///
object IStateManager.SaveViewState() {
return SaveViewState();
}
///
void IStateManager.TrackViewState() {
TrackViewState();
}
#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
- TextSpanModifier.cs
- DefinitionUpdate.cs
- SpecularMaterial.cs
- TemplateComponentConnector.cs
- ListViewUpdatedEventArgs.cs
- basevalidator.cs
- TableProviderWrapper.cs
- ConfigurationValue.cs
- ConnectionStringSettings.cs
- Rect3DValueSerializer.cs
- BitmapScalingModeValidation.cs
- GridViewUpdateEventArgs.cs
- CompositionAdorner.cs
- ObjectSpanRewriter.cs
- Image.cs
- followingsibling.cs
- Buffer.cs
- SqlDataSourceQuery.cs
- StylusEditingBehavior.cs
- SizeKeyFrameCollection.cs
- DesignerContextDescriptor.cs
- DataIdProcessor.cs
- SystemIcmpV6Statistics.cs
- ValuePattern.cs
- ClickablePoint.cs
- EqualityComparer.cs
- XmlDataDocument.cs
- DotAtomReader.cs
- Choices.cs
- GetPageCompletedEventArgs.cs
- MultiPartWriter.cs
- QuotedPrintableStream.cs
- TemplateBuilder.cs
- LicenseContext.cs
- DataServiceKeyAttribute.cs
- HtmlMeta.cs
- DefaultSerializationProviderAttribute.cs
- JoinTreeSlot.cs
- DrawListViewItemEventArgs.cs
- XPathCompileException.cs
- SqlProcedureAttribute.cs
- RuleSetReference.cs
- ImageCollectionCodeDomSerializer.cs
- ActivationArguments.cs
- AmbientProperties.cs
- BitmapImage.cs
- ZipIOLocalFileBlock.cs
- SingleQueryOperator.cs
- FormattedTextSymbols.cs
- UriExt.cs
- DocobjHost.cs
- RequestCachingSection.cs
- WindowsFormsHostPropertyMap.cs
- RepeatInfo.cs
- XmlSchemaDocumentation.cs
- IdentityValidationException.cs
- BackStopAuthenticationModule.cs
- XmlSchema.cs
- InstanceHandle.cs
- SQLDecimal.cs
- ScriptControlManager.cs
- HitTestWithPointDrawingContextWalker.cs
- AppDomainShutdownMonitor.cs
- XmlSchemaComplexContent.cs
- ToolStripTextBox.cs
- SchemaMapping.cs
- BulletDecorator.cs
- FormsIdentity.cs
- StringSorter.cs
- WebErrorHandler.cs
- EdmValidator.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- DataControlFieldCollection.cs
- ArgumentOutOfRangeException.cs
- SafeFileMapViewHandle.cs
- SelectedDatesCollection.cs
- CompressedStack.cs
- TransactionScope.cs
- SafeNativeMethodsCLR.cs
- TextPointer.cs
- StickyNoteAnnotations.cs
- StructuredProperty.cs
- SoapParser.cs
- WindowVisualStateTracker.cs
- XmlWrappingReader.cs
- HttpApplicationFactory.cs
- RegexWriter.cs
- SqlDataSource.cs
- InfoCardKeyedHashAlgorithm.cs
- EntityCollection.cs
- DataGridViewMethods.cs
- DefaultPrintController.cs
- BlurEffect.cs
- ExpressionWriter.cs
- SchemaType.cs
- ToolStripContentPanel.cs
- Utility.cs
- ProfileInfo.cs
- ActionItem.cs
- Resources.Designer.cs