Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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; } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlTextWriter.cs
- PrivateFontCollection.cs
- FlowDocumentReaderAutomationPeer.cs
- PreservationFileWriter.cs
- InstanceDataCollectionCollection.cs
- PointAnimationUsingKeyFrames.cs
- ControllableStoryboardAction.cs
- DataGridViewTopLeftHeaderCell.cs
- SystemUdpStatistics.cs
- UserControlParser.cs
- HtmlElement.cs
- XmlSerializationWriter.cs
- TypeConstant.cs
- SimpleType.cs
- GeneralTransform2DTo3D.cs
- XmlNodeChangedEventArgs.cs
- CodeCommentStatementCollection.cs
- ItemChangedEventArgs.cs
- PasswordBoxAutomationPeer.cs
- InputLanguageSource.cs
- ListCollectionView.cs
- HtmlCommandAdapter.cs
- CngAlgorithmGroup.cs
- MenuStrip.cs
- loginstatus.cs
- NotConverter.cs
- DefaultPrintController.cs
- followingquery.cs
- DodSequenceMerge.cs
- FormsAuthenticationConfiguration.cs
- WebPartEditorApplyVerb.cs
- XomlCompilerError.cs
- ExternalException.cs
- HttpUnhandledOperationInvoker.cs
- smtppermission.cs
- WebScriptServiceHost.cs
- ToolStripLocationCancelEventArgs.cs
- TextServicesCompartmentEventSink.cs
- Ref.cs
- TextSyndicationContent.cs
- Compiler.cs
- DetailsViewUpdatedEventArgs.cs
- TableLayoutPanel.cs
- TypeForwardedToAttribute.cs
- ExportOptions.cs
- CompilationPass2TaskInternal.cs
- PixelFormat.cs
- webproxy.cs
- OleDbWrapper.cs
- ProfileManager.cs
- DCSafeHandle.cs
- SafeEventLogReadHandle.cs
- SettingsPropertyCollection.cs
- ButtonFieldBase.cs
- Viewport3DAutomationPeer.cs
- PageWrapper.cs
- GatewayDefinition.cs
- CrossContextChannel.cs
- SelectorItemAutomationPeer.cs
- ProfileWorkflowElement.cs
- SqlEnums.cs
- AlternateViewCollection.cs
- InputElement.cs
- MDIWindowDialog.cs
- CacheDependency.cs
- CornerRadiusConverter.cs
- EDesignUtil.cs
- BasicViewGenerator.cs
- SocketInformation.cs
- Knowncolors.cs
- UserNamePasswordValidator.cs
- ThumbAutomationPeer.cs
- GorillaCodec.cs
- TextParagraph.cs
- LocalizationComments.cs
- VisualStyleInformation.cs
- WebPartUserCapability.cs
- ConsumerConnectionPointCollection.cs
- DictationGrammar.cs
- HttpServerProtocol.cs
- TypeExtensionConverter.cs
- PostBackOptions.cs
- Pen.cs
- AssemblyBuilderData.cs
- SerialErrors.cs
- SchemaExporter.cs
- CngKeyCreationParameters.cs
- securestring.cs
- SqlCacheDependencySection.cs
- ResourcesChangeInfo.cs
- TerminateSequence.cs
- documentsequencetextview.cs
- WithParamAction.cs
- StatusBar.cs
- DataGridPagingPage.cs
- ComPlusThreadInitializer.cs
- ContentFileHelper.cs
- DetailsViewInsertedEventArgs.cs
- DynamicPropertyHolder.cs
- Italic.cs