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
- AutomationPropertyInfo.cs
- __Error.cs
- StreamResourceInfo.cs
- BrowserInteropHelper.cs
- SystemUdpStatistics.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- DocComment.cs
- AttributeUsageAttribute.cs
- FixedSOMPageConstructor.cs
- PageCodeDomTreeGenerator.cs
- DashStyle.cs
- InkCanvasFeedbackAdorner.cs
- dbenumerator.cs
- WindowsToolbarAsMenu.cs
- DoubleLink.cs
- TreeNodeBindingCollection.cs
- XmlElementAttribute.cs
- basecomparevalidator.cs
- ServiceDiscoveryBehavior.cs
- SchemaTableColumn.cs
- ToolStripPanelCell.cs
- BackgroundWorker.cs
- DnsPermission.cs
- BindingContext.cs
- SecurityCookieModeValidator.cs
- XmlSerializationReader.cs
- PreloadedPackages.cs
- TransportReplyChannelAcceptor.cs
- ResXBuildProvider.cs
- GroupByQueryOperator.cs
- ColumnResult.cs
- SessionConnectionReader.cs
- JoinSymbol.cs
- XmlSchemaInfo.cs
- hebrewshape.cs
- ProfileProvider.cs
- FixedPageStructure.cs
- GridViewColumnCollection.cs
- XPathPatternParser.cs
- TrustManager.cs
- HostedElements.cs
- Assert.cs
- RightsManagementEncryptedStream.cs
- GridItemPatternIdentifiers.cs
- SvcMapFileLoader.cs
- EdmType.cs
- PropertyGrid.cs
- ConnectionPointGlyph.cs
- AggregationMinMaxHelpers.cs
- RuntimeVariableList.cs
- PreservationFileWriter.cs
- UriExt.cs
- PropertiesTab.cs
- DataGridItemAttachedStorage.cs
- Identity.cs
- StyleCollection.cs
- StorageModelBuildProvider.cs
- DataGridViewCheckBoxCell.cs
- BitmapFrame.cs
- FunctionGenerator.cs
- BitmapEffect.cs
- OdbcPermission.cs
- ForwardPositionQuery.cs
- XhtmlTextWriter.cs
- parserscommon.cs
- ScriptingJsonSerializationSection.cs
- SimpleType.cs
- Int32CollectionConverter.cs
- NumberFormatInfo.cs
- XmlSerializableReader.cs
- SchemaManager.cs
- TreeNodeClickEventArgs.cs
- TabletDevice.cs
- MissingMemberException.cs
- SpellerError.cs
- ListViewItem.cs
- FileDialogCustomPlaces.cs
- SingleConverter.cs
- DynamicValueConverter.cs
- FixedSOMLineCollection.cs
- ValidationContext.cs
- ProcessStartInfo.cs
- NotSupportedException.cs
- PasswordRecovery.cs
- StylusPointProperty.cs
- ConnectionStringSettings.cs
- ObjectListCommandsPage.cs
- EntityContainer.cs
- TextRangeProviderWrapper.cs
- ConfigXmlComment.cs
- XmlCharType.cs
- SoapFault.cs
- CodeAttributeArgumentCollection.cs
- WindowsScroll.cs
- CacheEntry.cs
- SmiGettersStream.cs
- SvcMapFileLoader.cs
- XamlWriter.cs
- DoubleAverageAggregationOperator.cs
- WebSysDescriptionAttribute.cs