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
|
||
|
}
|
||
|
}
|