Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / WebParts / BehaviorEditorPart.cs / 1 / BehaviorEditorPart.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls.WebParts { using System; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.Security.Permissions; using System.Web.UI; using System.Web.UI.WebControls; [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class BehaviorEditorPart : EditorPart { private CheckBox _allowClose; private CheckBox _allowConnect; private CheckBox _allowHide; private CheckBox _allowMinimize; private CheckBox _allowZoneChange; private DropDownList _exportMode; private DropDownList _helpMode; private TextBox _description; private TextBox _titleUrl; private TextBox _titleIconImageUrl; private TextBox _catalogIconImageUrl; private TextBox _helpUrl; private TextBox _importErrorMessage; private TextBox _authorizationFilter; private CheckBox _allowEdit; private string _allowCloseErrorMessage; private string _allowConnectErrorMessage; private string _allowHideErrorMessage; private string _allowMinimizeErrorMessage; private string _allowZoneChangeErrorMessage; private string _exportModeErrorMessage; private string _helpModeErrorMessage; private string _descriptionErrorMessage; private string _titleUrlErrorMessage; private string _titleIconImageUrlErrorMessage; private string _catalogIconImageUrlErrorMessage; private string _helpUrlErrorMessage; private string _importErrorMessageErrorMessage; private string _authorizationFilterErrorMessage; private string _allowEditErrorMessage; private const int TextBoxColumns = 30; [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override string DefaultButton { get { return base.DefaultButton; } set { base.DefaultButton = value; } } public override bool Display { get { if (WebPartToEdit != null && WebPartToEdit.IsShared && WebPartManager != null && (WebPartManager.Personalization.Scope == PersonalizationScope.User)) { return false; } return base.Display; } } private bool HasError { get { return (_allowCloseErrorMessage != null || _allowConnectErrorMessage != null || _allowHideErrorMessage != null || _allowMinimizeErrorMessage != null || _allowZoneChangeErrorMessage != null || _exportModeErrorMessage != null || _helpModeErrorMessage != null || _descriptionErrorMessage != null || _titleUrlErrorMessage != null || _titleIconImageUrlErrorMessage != null || _catalogIconImageUrlErrorMessage != null || _helpUrlErrorMessage != null || _importErrorMessageErrorMessage != null || _authorizationFilterErrorMessage != null || _allowEditErrorMessage != null); } } [ WebSysDefaultValue(SR.BehaviorEditorPart_PartTitle), ] public override string Title { get { string s = (string)ViewState["Title"]; return (s != null) ? s : SR.GetString(SR.BehaviorEditorPart_PartTitle); } set { ViewState["Title"] = value; } } public override bool ApplyChanges() { WebPart webPart = WebPartToEdit; Debug.Assert(webPart != null); if (webPart != null) { EnsureChildControls(); bool allowLayoutChange = webPart.Zone.AllowLayoutChange; if (allowLayoutChange) { try { webPart.AllowClose = _allowClose.Checked; } catch (Exception e) { _allowCloseErrorMessage = CreateErrorMessage(e.Message); } } try { webPart.AllowConnect = _allowConnect.Checked; } catch (Exception e) { _allowConnectErrorMessage = CreateErrorMessage(e.Message); } if (allowLayoutChange) { try { webPart.AllowHide = _allowHide.Checked; } catch (Exception e) { _allowHideErrorMessage = CreateErrorMessage(e.Message); } } if (allowLayoutChange) { try { webPart.AllowMinimize = _allowMinimize.Checked; } catch (Exception e) { _allowMinimizeErrorMessage = CreateErrorMessage(e.Message); } } if (allowLayoutChange) { try { webPart.AllowZoneChange = _allowZoneChange.Checked; } catch (Exception e) { _allowZoneChangeErrorMessage = CreateErrorMessage(e.Message); } } try { TypeConverter exportModeConverter = TypeDescriptor.GetConverter(typeof(WebPartExportMode)); webPart.ExportMode = (WebPartExportMode)exportModeConverter.ConvertFromString(_exportMode.SelectedValue); } catch (Exception e) { _exportModeErrorMessage = CreateErrorMessage(e.Message); } try { TypeConverter helpModeConverter = TypeDescriptor.GetConverter(typeof(WebPartHelpMode)); webPart.HelpMode = (WebPartHelpMode)helpModeConverter.ConvertFromString(_helpMode.SelectedValue); } catch (Exception e) { _helpModeErrorMessage = CreateErrorMessage(e.Message); } try { webPart.Description = _description.Text; } catch (Exception e) { _descriptionErrorMessage = CreateErrorMessage(e.Message); } string value = _titleUrl.Text; if (CrossSiteScriptingValidation.IsDangerousUrl(value)) { _titleUrlErrorMessage = SR.GetString(SR.EditorPart_ErrorBadUrl); } else { try { webPart.TitleUrl = value; } catch (Exception e) { _titleUrlErrorMessage = CreateErrorMessage(e.Message); } } value = _titleIconImageUrl.Text; if (CrossSiteScriptingValidation.IsDangerousUrl(value)) { _titleIconImageUrlErrorMessage = SR.GetString(SR.EditorPart_ErrorBadUrl); } else { try { webPart.TitleIconImageUrl = value; } catch (Exception e) { _titleIconImageUrlErrorMessage = CreateErrorMessage(e.Message); } } value = _catalogIconImageUrl.Text; if (CrossSiteScriptingValidation.IsDangerousUrl(value)) { _catalogIconImageUrlErrorMessage = SR.GetString(SR.EditorPart_ErrorBadUrl); } else { try { webPart.CatalogIconImageUrl = value; } catch (Exception e) { _catalogIconImageUrlErrorMessage = CreateErrorMessage(e.Message); } } value = _helpUrl.Text; if (CrossSiteScriptingValidation.IsDangerousUrl(value)) { _helpUrlErrorMessage = SR.GetString(SR.EditorPart_ErrorBadUrl); } else { try { webPart.HelpUrl = value; } catch (Exception e) { _helpUrlErrorMessage = CreateErrorMessage(e.Message); } } try { webPart.ImportErrorMessage = _importErrorMessage.Text; } catch (Exception e) { _importErrorMessageErrorMessage = CreateErrorMessage(e.Message); } try { webPart.AuthorizationFilter = _authorizationFilter.Text; } catch (Exception e) { _authorizationFilterErrorMessage = CreateErrorMessage(e.Message); } try { webPart.AllowEdit = _allowEdit.Checked; } catch (Exception e) { _allowEditErrorMessage = CreateErrorMessage(e.Message); } } return !HasError; } protected internal override void CreateChildControls() { ControlCollection controls = Controls; controls.Clear(); _allowClose = new CheckBox(); controls.Add(_allowClose); _allowConnect = new CheckBox(); controls.Add(_allowConnect); _allowHide = new CheckBox(); controls.Add(_allowHide); _allowMinimize = new CheckBox(); controls.Add(_allowMinimize); _allowZoneChange = new CheckBox(); controls.Add(_allowZoneChange); TypeConverter exportModeConverter = TypeDescriptor.GetConverter(typeof(WebPartExportMode)); _exportMode = new DropDownList(); _exportMode.Items.AddRange(new ListItem[] { new ListItem(SR.GetString(SR.BehaviorEditorPart_ExportModeNone), exportModeConverter.ConvertToString(WebPartExportMode.None)), new ListItem(SR.GetString(SR.BehaviorEditorPart_ExportModeAll), exportModeConverter.ConvertToString(WebPartExportMode.All)), new ListItem(SR.GetString(SR.BehaviorEditorPart_ExportModeNonSensitiveData), exportModeConverter.ConvertToString(WebPartExportMode.NonSensitiveData)), }); controls.Add(_exportMode); TypeConverter helpModeConverter = TypeDescriptor.GetConverter(typeof(WebPartHelpMode)); _helpMode = new DropDownList(); _helpMode.Items.AddRange(new ListItem[] { new ListItem(SR.GetString(SR.BehaviorEditorPart_HelpModeModal), helpModeConverter.ConvertToString(WebPartHelpMode.Modal)), new ListItem(SR.GetString(SR.BehaviorEditorPart_HelpModeModeless), helpModeConverter.ConvertToString(WebPartHelpMode.Modeless)), new ListItem(SR.GetString(SR.BehaviorEditorPart_HelpModeNavigate), helpModeConverter.ConvertToString(WebPartHelpMode.Navigate)), }); controls.Add(_helpMode); _description = new TextBox(); _description.Columns = TextBoxColumns; controls.Add(_description); _titleUrl = new TextBox(); _titleUrl.Columns = TextBoxColumns; controls.Add(_titleUrl); _titleIconImageUrl = new TextBox(); _titleIconImageUrl.Columns = TextBoxColumns; controls.Add(_titleIconImageUrl); _catalogIconImageUrl = new TextBox(); _catalogIconImageUrl.Columns = TextBoxColumns; controls.Add(_catalogIconImageUrl); _helpUrl = new TextBox(); _helpUrl.Columns = TextBoxColumns; controls.Add(_helpUrl); _importErrorMessage = new TextBox(); _importErrorMessage.Columns = TextBoxColumns; controls.Add(_importErrorMessage); _authorizationFilter = new TextBox(); _authorizationFilter.Columns = TextBoxColumns; controls.Add(_authorizationFilter); _allowEdit = new CheckBox(); controls.Add(_allowEdit); // We don't need viewstate enabled on our child controls. Disable for perf. foreach (Control c in controls) { c.EnableViewState = false; } } protected internal override void OnPreRender(EventArgs e) { base.OnPreRender(e); // We want to synchronize the EditorPart to the state of the WebPart on every page load, // so we stay current if the WebPart changes in the background. if (Display && Visible && !HasError) { SyncChanges(); } } protected internal override void RenderContents(HtmlTextWriter writer) { if (Page != null) { Page.VerifyRenderingInServerForm(this); } // HACK: Need this for child controls to be created at design-time when control is inside template EnsureChildControls(); string[] propertyDisplayNames = new string[] { SR.GetString(SR.BehaviorEditorPart_Description), SR.GetString(SR.BehaviorEditorPart_TitleLink), SR.GetString(SR.BehaviorEditorPart_TitleIconImageLink), SR.GetString(SR.BehaviorEditorPart_CatalogIconImageLink), SR.GetString(SR.BehaviorEditorPart_HelpLink), SR.GetString(SR.BehaviorEditorPart_HelpMode), SR.GetString(SR.BehaviorEditorPart_ImportErrorMessage), SR.GetString(SR.BehaviorEditorPart_ExportMode), SR.GetString(SR.BehaviorEditorPart_AuthorizationFilter), SR.GetString(SR.BehaviorEditorPart_AllowClose), SR.GetString(SR.BehaviorEditorPart_AllowConnect), SR.GetString(SR.BehaviorEditorPart_AllowEdit), SR.GetString(SR.BehaviorEditorPart_AllowHide), SR.GetString(SR.BehaviorEditorPart_AllowMinimize), SR.GetString(SR.BehaviorEditorPart_AllowZoneChange), }; WebControl[] propertyEditors = new WebControl[] { _description, _titleUrl, _titleIconImageUrl, _catalogIconImageUrl, _helpUrl, _helpMode, _importErrorMessage, _exportMode, _authorizationFilter, _allowClose, _allowConnect, _allowEdit, _allowHide, _allowMinimize, _allowZoneChange, }; string[] errorMessages = new string[] { _descriptionErrorMessage, _titleUrlErrorMessage, _titleIconImageUrlErrorMessage, _catalogIconImageUrlErrorMessage, _helpUrlErrorMessage, _helpModeErrorMessage, _importErrorMessageErrorMessage, _exportModeErrorMessage, _authorizationFilterErrorMessage, _allowCloseErrorMessage, _allowConnectErrorMessage, _allowEditErrorMessage, _allowHideErrorMessage, _allowMinimizeErrorMessage, _allowZoneChangeErrorMessage, }; RenderPropertyEditors(writer, propertyDisplayNames, null /* propertyDescriptions */, propertyEditors, errorMessages); } public override void SyncChanges() { WebPart webPart = WebPartToEdit; Debug.Assert(webPart != null); if (webPart != null) { bool allowLayoutChange = webPart.Zone.AllowLayoutChange; EnsureChildControls(); _allowClose.Checked = webPart.AllowClose; _allowClose.Enabled = allowLayoutChange; _allowConnect.Checked = webPart.AllowConnect; _allowHide.Checked = webPart.AllowHide; _allowHide.Enabled = allowLayoutChange; _allowMinimize.Checked = webPart.AllowMinimize; _allowMinimize.Enabled = allowLayoutChange; _allowZoneChange.Checked = webPart.AllowZoneChange; _allowZoneChange.Enabled = allowLayoutChange; TypeConverter exportModeConverter = TypeDescriptor.GetConverter(typeof(WebPartExportMode)); _exportMode.SelectedValue = exportModeConverter.ConvertToString(webPart.ExportMode); TypeConverter helpModeConverter = TypeDescriptor.GetConverter(typeof(WebPartHelpMode)); _helpMode.SelectedValue = helpModeConverter.ConvertToString(webPart.HelpMode); _description.Text = webPart.Description; _titleUrl.Text = webPart.TitleUrl; _titleIconImageUrl.Text = webPart.TitleIconImageUrl; _catalogIconImageUrl.Text = webPart.CatalogIconImageUrl; _helpUrl.Text = webPart.HelpUrl; _importErrorMessage.Text = webPart.ImportErrorMessage; _authorizationFilter.Text = webPart.AuthorizationFilter; _allowEdit.Checked = webPart.AllowEdit; } } } } // 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
- TypeUsage.cs
- StringKeyFrameCollection.cs
- FileDialog_Vista.cs
- GenerateTemporaryTargetAssembly.cs
- GraphicsContainer.cs
- TextRunTypographyProperties.cs
- MemberHolder.cs
- BitmapMetadata.cs
- GreenMethods.cs
- _ChunkParse.cs
- IResourceProvider.cs
- SafeSecurityHelper.cs
- OleDbError.cs
- AssociationTypeEmitter.cs
- DataSetMappper.cs
- SimpleRecyclingCache.cs
- RenderDataDrawingContext.cs
- ErrorStyle.cs
- CompareValidator.cs
- SimpleLine.cs
- DeviceSpecificDialogCachedState.cs
- BufferedWebEventProvider.cs
- SymbolEqualComparer.cs
- EmptyStringExpandableObjectConverter.cs
- GridItemCollection.cs
- XPathNode.cs
- DecimalAnimationUsingKeyFrames.cs
- OpCodes.cs
- SqlDependencyUtils.cs
- UTF8Encoding.cs
- PictureBox.cs
- InternalBase.cs
- APCustomTypeDescriptor.cs
- Triangle.cs
- ReferencedCollectionType.cs
- DataBindingCollection.cs
- LocalizationComments.cs
- TextFormatterImp.cs
- OleDbError.cs
- TimerElapsedEvenArgs.cs
- EntityDataSourceMemberPath.cs
- DesignBindingConverter.cs
- SelectedDatesCollection.cs
- TypeSystem.cs
- PrintingPermission.cs
- ProcessProtocolHandler.cs
- ColorContext.cs
- TypedReference.cs
- sitestring.cs
- SqlRewriteScalarSubqueries.cs
- SemaphoreFullException.cs
- AdditionalEntityFunctions.cs
- HostedTcpTransportManager.cs
- RecognizedWordUnit.cs
- InputScopeNameConverter.cs
- ThreadPoolTaskScheduler.cs
- LinearQuaternionKeyFrame.cs
- CounterSetInstance.cs
- ToolboxCategory.cs
- Dump.cs
- StorageSetMapping.cs
- FilteredXmlReader.cs
- TypeLibConverter.cs
- SapiRecognizer.cs
- CodeAttributeDeclaration.cs
- BrushValueSerializer.cs
- ProbeMatchesMessage11.cs
- cookiecontainer.cs
- DetailsViewDeletedEventArgs.cs
- OrderByExpression.cs
- GenericAuthenticationEventArgs.cs
- ConfigurationValue.cs
- Int16AnimationUsingKeyFrames.cs
- Table.cs
- PropertyTab.cs
- RecognizedAudio.cs
- XhtmlTextWriter.cs
- TimeoutConverter.cs
- ParameterToken.cs
- ImportCatalogPart.cs
- DiagnosticStrings.cs
- ExpressionServices.cs
- ClassHandlersStore.cs
- TraceProvider.cs
- CodeNamespaceCollection.cs
- InProcStateClientManager.cs
- WindowsFormsLinkLabel.cs
- DeviceContext.cs
- XmlNamedNodeMap.cs
- TypeConverterAttribute.cs
- Exceptions.cs
- FixedSOMTableRow.cs
- TableLayoutPanelCellPosition.cs
- CellCreator.cs
- BigInt.cs
- DetailsViewDeleteEventArgs.cs
- PermissionToken.cs
- CompilerGeneratedAttribute.cs
- EmbeddedObject.cs
- MachineSettingsSection.cs