Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebParts / BehaviorEditorPart.cs / 1305376 / 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.Web.UI; using System.Web.UI.WebControls; 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XpsFixedDocumentReaderWriter.cs
- AsyncPostBackTrigger.cs
- GridViewDeletedEventArgs.cs
- CanExecuteRoutedEventArgs.cs
- WebPartManagerDesigner.cs
- ConditionalBranch.cs
- GeometryConverter.cs
- DataRecordInternal.cs
- UserControlCodeDomTreeGenerator.cs
- BinaryCommonClasses.cs
- TransformCollection.cs
- ListDictionary.cs
- FloaterParagraph.cs
- Authorization.cs
- SettingsSection.cs
- FastPropertyAccessor.cs
- SafeRightsManagementQueryHandle.cs
- WinEventQueueItem.cs
- BaseCollection.cs
- IssuedTokenParametersElement.cs
- XPathNavigatorReader.cs
- SmiContextFactory.cs
- ManifestResourceInfo.cs
- InputReferenceExpression.cs
- StreamGeometryContext.cs
- ContainerControl.cs
- AutoResetEvent.cs
- CompiledRegexRunnerFactory.cs
- DesignSurface.cs
- DataGridViewAdvancedBorderStyle.cs
- TextProperties.cs
- UIPermission.cs
- ZipIOCentralDirectoryFileHeader.cs
- SplitterEvent.cs
- UxThemeWrapper.cs
- DynamicValueConverter.cs
- DesignBindingValueUIHandler.cs
- RouteData.cs
- Condition.cs
- Win32Exception.cs
- ScriptResourceAttribute.cs
- DataGridViewColumnHeaderCell.cs
- CompressStream.cs
- TimeZoneNotFoundException.cs
- ChannelSinkStacks.cs
- QueryCacheManager.cs
- PreservationFileReader.cs
- SizeFConverter.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- OperandQuery.cs
- GradientSpreadMethodValidation.cs
- PageFunction.cs
- WindowsScroll.cs
- Label.cs
- MimeParameter.cs
- ConfigPathUtility.cs
- ComboBox.cs
- ReaderWriterLockWrapper.cs
- PagerStyle.cs
- _SecureChannel.cs
- DataServiceQueryProvider.cs
- XMLUtil.cs
- CircleHotSpot.cs
- FixedDocument.cs
- NamedObject.cs
- SchemaCreator.cs
- __Filters.cs
- BamlStream.cs
- HandleCollector.cs
- DataList.cs
- ObjectDataSourceDisposingEventArgs.cs
- WebEventTraceProvider.cs
- Geometry.cs
- CompositeScriptReference.cs
- Pair.cs
- JapaneseCalendar.cs
- UserMapPath.cs
- PropertyStore.cs
- SmtpLoginAuthenticationModule.cs
- sqlmetadatafactory.cs
- ThicknessAnimationUsingKeyFrames.cs
- TextProperties.cs
- NotificationContext.cs
- ColorConverter.cs
- DocumentGridContextMenu.cs
- XPathDocumentIterator.cs
- FontNamesConverter.cs
- WebEvents.cs
- QilReference.cs
- RadioButton.cs
- BinaryFormatterWriter.cs
- ParameterBinding.cs
- SamlAuthorizationDecisionClaimResource.cs
- BitmapEffect.cs
- HttpListenerResponse.cs
- XamlFigureLengthSerializer.cs
- XmlCharCheckingWriter.cs
- SafeRightsManagementHandle.cs
- PointAnimationUsingKeyFrames.cs
- FontSizeConverter.cs