e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
138 lines
4.4 KiB
C#
138 lines
4.4 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="Part.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace System.Web.UI.WebControls.WebParts {
|
|
|
|
using System;
|
|
using System.ComponentModel;
|
|
using System.Drawing.Design;
|
|
using System.Web.UI.WebControls;
|
|
|
|
/// <devdoc>
|
|
/// Base class for all Part classes in the WebPart framework. Common to all Part controls are properties that
|
|
/// allow the control to be rendered in a modular fashion.
|
|
/// </devdoc>
|
|
[
|
|
Designer("System.Web.UI.Design.WebControls.WebParts.PartDesigner, " + AssemblyRef.SystemDesign),
|
|
ParseChildren(true),
|
|
PersistChildren(false),
|
|
]
|
|
public abstract class Part : Panel, INamingContainer, ICompositeControlDesignerAccessor {
|
|
|
|
// Prevent class from being subclassed outside of our assembly
|
|
internal Part() {
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// The UI state of the part
|
|
/// </devdoc>
|
|
[
|
|
DefaultValue(PartChromeState.Normal),
|
|
WebCategory("WebPartAppearance"),
|
|
WebSysDescription(SR.Part_ChromeState),
|
|
]
|
|
public virtual PartChromeState ChromeState {
|
|
get {
|
|
object o = ViewState["ChromeState"];
|
|
return (o != null) ? (PartChromeState)o : PartChromeState.Normal;
|
|
}
|
|
set {
|
|
if ((value < PartChromeState.Normal) || (value > PartChromeState.Minimized)) {
|
|
throw new ArgumentOutOfRangeException("value");
|
|
}
|
|
|
|
ViewState["ChromeState"] = value;
|
|
}
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// The type of frame/border for the part.
|
|
/// </devdoc>
|
|
[
|
|
DefaultValue(PartChromeType.Default),
|
|
WebCategory("WebPartAppearance"),
|
|
WebSysDescription(SR.Part_ChromeType),
|
|
]
|
|
public virtual PartChromeType ChromeType {
|
|
get {
|
|
object o = ViewState["ChromeType"];
|
|
return (o != null) ? (PartChromeType)(int)o : PartChromeType.Default;
|
|
}
|
|
set {
|
|
if ((value < PartChromeType.Default) || (value > PartChromeType.BorderOnly)) {
|
|
throw new ArgumentOutOfRangeException("value");
|
|
}
|
|
ViewState["ChromeType"] = (int)value;
|
|
}
|
|
}
|
|
|
|
// Copied from CompositeControl
|
|
/// <internalonly/>
|
|
/// <devdoc>
|
|
/// </devdoc>
|
|
public override ControlCollection Controls {
|
|
get {
|
|
EnsureChildControls();
|
|
return base.Controls;
|
|
}
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// Short descriptive text used in tooltips and web part catalog descriptions
|
|
/// </devdoc>
|
|
[
|
|
DefaultValue(""),
|
|
Localizable(true),
|
|
WebCategory("WebPartAppearance"),
|
|
WebSysDescription(SR.Part_Description),
|
|
]
|
|
public virtual string Description {
|
|
get {
|
|
string s = (string)ViewState["Description"];
|
|
return (s != null) ? s : String.Empty;
|
|
}
|
|
set {
|
|
ViewState["Description"] = value;
|
|
}
|
|
}
|
|
|
|
[
|
|
// Must use WebSysDefaultValue instead of DefaultValue, since it is overridden in extending classes
|
|
Localizable(true),
|
|
WebSysDefaultValue(""),
|
|
WebCategory("WebPartAppearance"),
|
|
WebSysDescription(SR.Part_Title),
|
|
]
|
|
public virtual string Title {
|
|
get {
|
|
string s = (string)ViewState["Title"];
|
|
return (s != null) ? s : String.Empty;
|
|
}
|
|
set {
|
|
ViewState["Title"] = value;
|
|
}
|
|
}
|
|
|
|
// Copied from CompositeControl
|
|
/// <devdoc>
|
|
/// Perform our own databinding, then perform our child controls' databinding.
|
|
/// </devdoc>
|
|
public override void DataBind() {
|
|
OnDataBinding(EventArgs.Empty);
|
|
EnsureChildControls();
|
|
DataBindChildren();
|
|
}
|
|
|
|
// Copied from CompositeControl
|
|
#region ICompositeControlDesignerAccessor implementation
|
|
void ICompositeControlDesignerAccessor.RecreateChildControls() {
|
|
ChildControlsCreated = false;
|
|
EnsureChildControls();
|
|
}
|
|
#endregion
|
|
}
|
|
}
|