BehaviorEditorPart.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / 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.
//------------------------------------------------------------------------------ 
// 
//     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

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