BehaviorEditorPart.cs source code in C# .NET

Source code for the .NET framework in C#

                        

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

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK