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
- WrappedReader.cs
- CompensationToken.cs
- GlobalizationSection.cs
- AppDomainFactory.cs
- UnsafeNativeMethods.cs
- RegistrySecurity.cs
- ChtmlPageAdapter.cs
- MediaElementAutomationPeer.cs
- TextTabProperties.cs
- StateManagedCollection.cs
- SqlErrorCollection.cs
- ForwardPositionQuery.cs
- VerificationException.cs
- Typeface.cs
- EventSinkHelperWriter.cs
- DockingAttribute.cs
- SatelliteContractVersionAttribute.cs
- CommandHelpers.cs
- CodeCatchClause.cs
- FormViewInsertedEventArgs.cs
- TextBoxView.cs
- PathFigureCollectionConverter.cs
- SessionEndingEventArgs.cs
- IndexedWhereQueryOperator.cs
- util.cs
- ConfigurationValidatorAttribute.cs
- EncryptedPackage.cs
- IndicCharClassifier.cs
- BindableTemplateBuilder.cs
- ToolTipService.cs
- HttpRequestCacheValidator.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- AnimationTimeline.cs
- RequestCachePolicy.cs
- BaseTemplateBuildProvider.cs
- ContainerParaClient.cs
- SmtpAuthenticationManager.cs
- DataStreams.cs
- TypeKeyValue.cs
- Parallel.cs
- EntityContainer.cs
- WCFServiceClientProxyGenerator.cs
- MailAddressCollection.cs
- PropertyNames.cs
- FileReservationCollection.cs
- ConfigurationElement.cs
- ConstraintStruct.cs
- DependencyPropertyDescriptor.cs
- Attributes.cs
- AnnotationHelper.cs
- WebPartConnectVerb.cs
- DrawingContextWalker.cs
- BaseAsyncResult.cs
- MetadataItemCollectionFactory.cs
- EntitySqlQueryCacheKey.cs
- IntPtr.cs
- NumberAction.cs
- DesignerDataTableBase.cs
- AndCondition.cs
- CallbackValidator.cs
- EditorPartCollection.cs
- GregorianCalendar.cs
- ModelTreeManager.cs
- TablePattern.cs
- RuleSettingsCollection.cs
- SecureUICommand.cs
- ProjectionPruner.cs
- TextBoxRenderer.cs
- XPathArrayIterator.cs
- RequiredFieldValidator.cs
- IndentedTextWriter.cs
- GeneralTransform3DGroup.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- EdmComplexTypeAttribute.cs
- Mapping.cs
- ReservationCollection.cs
- DateTimeFormatInfo.cs
- PointAnimationBase.cs
- DesignerSerializationVisibilityAttribute.cs
- FrameworkContentElement.cs
- HashAlgorithm.cs
- RecognizedAudio.cs
- CodeFieldReferenceExpression.cs
- InteropEnvironment.cs
- RawStylusInputReport.cs
- TaiwanCalendar.cs
- MaskedTextBoxDesigner.cs
- WinFormsComponentEditor.cs
- WindowsTokenRoleProvider.cs
- Brush.cs
- LocalizationParserHooks.cs
- HttpChannelFactory.cs
- XmlAggregates.cs
- MimeTypeAttribute.cs
- SerializerProvider.cs
- RubberbandSelector.cs
- TextSelection.cs
- HtmlInputButton.cs
- RootAction.cs
- VectorAnimationBase.cs