-//\r
-// System.Web.UI.WebControls.WebParts.Part.cs\r
-//\r
-// Authors:\r
-// Gaurav Vaish (gaurav[DOT]vaish[AT]gmail[DOT]com)\r
-// Sanjay Gupta (gsanjay@novell.com)\r
-//\r
-// (C) 2004 Gaurav Vaish (http://www.mastergaurav.org)\r
-// (C) 2004 Novell Inc., (http://www.novell.com)\r
-//\r
-\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining\r
-// a copy of this software and associated documentation files (the\r
-// "Software"), to deal in the Software without restriction, including\r
-// without limitation the rights to use, copy, modify, merge, publish,\r
-// distribute, sublicense, and/or sell copies of the Software, and to\r
-// permit persons to whom the Software is furnished to do so, subject to\r
-// the following conditions:\r
-//\r
-// The above copyright notice and this permission notice shall be\r
-// included in all copies or substantial portions of the Software.\r
-//\r
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
-//\r
-\r
-#if NET_2_0\r
-\r
-using System;\r
-using System.ComponentModel;\r
-using System.Web;\r
-using System.Web.UI.WebControls;\r
-\r
-namespace System.Web.UI.WebControls.WebParts\r
-{\r
- [DesignerAttribute ("System.Web.UI.Design.WebControls.WebParts.WebPartDesigner, System.Design", \r
- "System.ComponentModel.Design.IDesigner")] \r
- public class WebPart : Part, IWebPart, IWebActionable\r
- {\r
- private bool allowClose = true;\r
- private bool allowEdit = true;\r
- private bool allowHide = true;\r
- private bool allowMinimize = true;\r
- private bool allowZoneChange = true;\r
- private bool allowHelp = true;\r
-\r
- private bool isStatic = true;\r
- private bool isStandalone = true;\r
- private bool isClosed = true;\r
-\r
- private PartChromeState chromeState = PartChromeState.Normal;\r
- private PartChromeType chromeType = PartChromeType.Default;\r
- private WebPartExportMode exportMode = WebPartExportMode.None;\r
- private WebPartHelpMode helpMode = WebPartHelpMode.Navigate;\r
-\r
- private string caption;\r
- private string catalogIconImageUrl;\r
- private string description;\r
- private string titleIconImageUrl;\r
- private string title;\r
- private string titleUrl;\r
- private WebPartVerbCollection verbCollection;\r
- \r
- protected WebPart()\r
- {\r
- }\r
- \r
- [WebSysDescriptionAttribute ("Determines Whether the Web Part can be closed."),\r
- DefaultValueAttribute (true), WebCategoryAttribute ("Behavior of Web Part")]\r
- //, PersonalizableAttribute \r
- public virtual bool AllowClose {\r
- get { return allowClose; }\r
- set { allowClose = value; }\r
- }\r
-\r
- [WebSysDescriptionAttribute ("Determines Whether properties of the Web Part can be changed using the EditorZone."),\r
- DefaultValueAttribute (true), WebCategoryAttribute ("Behavior of Web Part")]\r
- //, PersonalizableAttribute \r
- public virtual bool AllowEdit {\r
- get { return allowEdit; }\r
- set { allowEdit = value; }\r
- }\r
-\r
- [WebSysDescriptionAttribute ("Determines Whether properties of the Web Part can be changed using the EditorZone."),\r
- DefaultValueAttribute (true), WebCategoryAttribute ("Behavior of Web Part")]\r
- //, PersonalizableAttribute \r
- public virtual bool AllowHelp {\r
- get { return AllowHelp; }\r
- set { allowHelp = value; }\r
- }\r
-\r
- [WebSysDescriptionAttribute ("Determines Whether the Web Part can be minimized."),\r
- DefaultValueAttribute (true), WebCategoryAttribute ("Behavior of Web Part")]\r
- //, PersonalizableAttribute \r
- public virtual bool AllowMinimize {\r
- get { return allowMinimize; }\r
- set { allowMinimize = value; }\r
- }\r
-\r
- [WebSysDescriptionAttribute ("Determines Whether the Web Part can be moved to some other zone."),\r
- DefaultValueAttribute (true), WebCategoryAttribute ("Behavior of Web Part")]\r
- //, PersonalizableAttribute \r
- public virtual bool AllowZoneChange {\r
- get { return allowZoneChange; }\r
- set { allowZoneChange = value; }\r
- }\r
-\r
- [BrowsableAttribute (false), \r
- DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
- public bool IsClosed {\r
- get { return isClosed; }\r
- }\r
-\r
- [BrowsableAttribute (false),\r
- DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
- public bool IsStandalone\r
- {\r
- get { return isStandalone; }\r
- }\r
- \r
- //[PersonalizableAttribute ]\r
- public override PartChromeState ChromeState {\r
- get { return chromeState; }\r
- set {\r
- if(!Enum.IsDefined (typeof (PartChromeState), value))\r
- throw new ArgumentException ("value");\r
- chromeState = value;\r
- }\r
- }\r
- \r
- //[PersonalizableAttribute ]\r
- public override PartChromeType ChromeType {\r
- get { return chromeType; }\r
- set {\r
- if(!Enum.IsDefined (typeof (PartChromeType), value))\r
- throw new ArgumentException ("value");\r
- chromeType = value;\r
- }\r
- }\r
-\r
- string IWebPart.Caption {
- get { return caption; }
- }
-
- [DefaultValueAttribute (String.Empty), \r
- EditorAttribute ("System.Web.UI.Design.ImageUrlEditor, System.Design", \r
- "System.Drawing.Design.UITypeEditor, System.Drawing") , \r
- WebCategoryAttribute ("Appearance of the Web Part"),\r
- WebSysDescriptionAttribute ("Specifies URL of image which is displayed in WebPart's Catalog.")]
- //UrlPropertyAttribute, PersonalizableAttribute
- string IWebPart.CatalogIconImageUrl {
- get { return catalogIconImageUrl; }
- set { catalogIconImageUrl = value; }
- }
-
- string IWebPart.Description {
- get { return description; }
- set { description = value; }
- }
-
- string IWebPart.Title {
- get { return title; }
- set { title = value; }
- }\r
-\r
- [DefaultValueAttribute (String.Empty),\r
- EditorAttribute ("System.Web.UI.Design.ImageUrlEditor, System.Design",\r
- "System.Drawing.Design.UITypeEditor, System.Drawing"),\r
- WebCategoryAttribute ("Appearance of the Web Part"),\r
- WebSysDescriptionAttribute ("Specifies URL of image which is displayed in WebPart's title bar.")]\r
- //UrlPropertyAttribute, PersonalizableAttribute\r
- string IWebPart.TitleIconImageUrl\r
- {\r
- get { return titleIconImageUrl; }
- set { titleIconImageUrl = value; }
- }
-
- [DefaultValueAttribute (String.Empty),\r
- EditorAttribute ("System.Web.UI.Design.UrlEditor, System.Design",\r
- "System.Drawing.Design.UITypeEditor, System.Drawing"),\r
- WebCategoryAttribute ("Behaviour of the Web Part"),\r
- WebSysDescriptionAttribute ("Specifies URL of page, containing additional information about this WebPart.")]\r
- //UrlPropertyAttribute, PersonalizableAttribute
- string IWebPart.TitleUrl {
- get { return titleUrl; }
- set { titleUrl = value; }
- }\r
-\r
- [BrowsableAttribute (false),\r
- DesignerSerializationVisibilityAttribute (DesignerSerializationVisibility.Hidden)]\r
- WebPartVerbCollection IWebActionable.Verbs {\r
- get {
- if (verbCollection == null) {
- verbCollection = new WebPartVerbCollection ();
- }
- return verbCollection;
- }
- }\r
- }\r
-}\r
+//
+// System.Web.UI.WebControls.WebParts.Part
+//
+// Authors: Chris Toshok <toshok@novell.com>
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_2_0
+using System;
+
+namespace System.Web.UI.WebControls.WebParts
+{
+ public abstract class WebPart : Part, IWebPart, IWebActionable
+#if IWebEditableInterface
+ , IWebEditable
+#endif
+ {
+ [Flags]
+ enum Allow {
+ Close = 0x01,
+ Connect = 0x02,
+ Edit = 0x04,
+ Hide = 0x08,
+ Minimize = 0x10,
+ ZoneChange = 0x20
+ }
+
+
+ WebPartVerbCollection verbs = new WebPartVerbCollection();
+ Allow allow;
+ string auth_filter;
+ string catalog_icon_url;
+ WebPartExportMode exportMode = WebPartExportMode.None;
+ string titleIconImageUrl,
+ titleUrl,
+ helpUrl;
+ bool isStatic, hidden, isClosed, hasSharedData, hasUserData;
+ WebPartHelpMode helpMode = WebPartHelpMode.Navigate;
+ int zoneIndex ;
+
+ protected WebPart ()
+ {
+ verbs = new WebPartVerbCollection();
+ allow = Allow.Close | Allow.Connect | Allow.Edit | Allow.Hide | Allow.Minimize | Allow.ZoneChange;
+ auth_filter = "";
+ catalog_icon_url = "";
+ titleIconImageUrl = string.Empty;
+ titleUrl = string.Empty;
+ helpUrl = string.Empty;
+ isStatic = false;
+ hasUserData = false;
+ hasSharedData = false;
+ hidden = false;
+ isClosed = false;
+ }
+
+#if IWebEditableInterface
+ [MonoTODO]
+ public virtual EditorPartCollection CreateEditorParts ()
+ {
+ throw new NotImplementedException ();
+ }
+#endif
+
+ [MonoTODO]
+ protected void SetPersonalizationDirty ()
+ {
+ throw new NotImplementedException ();
+ }
+
+ [MonoTODO]
+ public static void SetPersonalizationDirty (Control control)
+ {
+ throw new NotImplementedException ();
+ }
+
+ protected override void TrackViewState ()
+ {
+ base.TrackViewState();
+
+ foreach (IStateManager verb in verbs) {
+ verb.TrackViewState();
+ }
+ }
+
+ protected internal virtual void OnClosing (EventArgs e)
+ { /* no base class implementation */ }
+
+ protected internal virtual void OnConnectModeChanged (EventArgs e)
+ { /* no base class implementation */ }
+
+ protected internal virtual void OnDeleting (EventArgs e)
+ { /* no base class implementation */ }
+
+ protected internal virtual void OnEditModeChanged (EventArgs e)
+ { /* no base class implementation */ }
+
+ [WebSysDescriptionAttribute ("")]
+ [WebCategoryAttribute ("Behavior")]
+ public virtual bool AllowClose
+ {
+ get {
+ return (allow & Allow.Close) != 0;
+ }
+ set {
+ if (value)
+ allow |= Allow.Close;
+ else
+ allow &= ~Allow.Close;
+ }
+ }
+
+ [WebSysDescriptionAttribute ("")]
+ [WebCategoryAttribute ("Behavior")]
+ public virtual bool AllowConnect
+ {
+ get {
+ return (allow & Allow.Connect) != 0;
+ }
+ set {
+ if (value)
+ allow |= Allow.Connect;
+ else
+ allow &= ~Allow.Connect;
+ }
+ }
+
+ [WebSysDescriptionAttribute ("")]
+ [WebCategoryAttribute ("Behavior")]
+ public virtual bool AllowEdit
+ {
+ get {
+ return (allow & Allow.Edit) != 0;
+ }
+ set {
+ if (value)
+ allow |= Allow.Edit;
+ else
+ allow &= ~Allow.Edit;
+ }
+ }
+
+ [WebSysDescriptionAttribute ("")]
+ [WebCategoryAttribute ("Behavior")]
+ public virtual bool AllowHide
+ {
+ get {
+ return (allow & Allow.Hide) != 0;
+ }
+ set {
+ if (value)
+ allow |= Allow.Hide;
+ else
+ allow &= ~Allow.Hide;
+ }
+ }
+
+ [WebSysDescriptionAttribute ("")]
+ [WebCategoryAttribute ("Behavior")]
+ public virtual bool AllowMinimize
+ {
+ get {
+ return (allow & Allow.Minimize) != 0;
+ }
+ set {
+ if (value)
+ allow |= Allow.Minimize;
+ else
+ allow &= ~Allow.Minimize;
+ }
+ }
+
+ [WebSysDescriptionAttribute ("")]
+ [WebCategoryAttribute ("Behavior")]
+ public virtual bool AllowZoneChange
+ {
+ get {
+ return (allow & Allow.ZoneChange) != 0;
+ }
+ set {
+ if (value)
+ allow |= Allow.ZoneChange;
+ else
+ allow &= ~Allow.ZoneChange;
+ }
+ }
+
+ [MonoTODO]
+ public virtual string AuthorizationFilter
+ {
+ get {
+ return auth_filter;
+ }
+ set {
+ auth_filter = value;
+ }
+ }
+
+ [MonoTODO]
+ public virtual string CatalogIconImageUrl
+ {
+ get {
+ return catalog_icon_url;
+ }
+ set {
+ catalog_icon_url = value;
+ }
+ }
+
+ [MonoTODO ("why override?")]
+ public override PartChromeState ChromeState
+ {
+ get {
+ return base.ChromeState;
+ }
+ set {
+ base.ChromeState = value;
+ }
+ }
+
+ [MonoTODO ("why override?")]
+ public override PartChromeType ChromeType
+ {
+ get {
+ return base.ChromeType;
+ }
+ set {
+ base.ChromeType = value;
+ }
+ }
+
+ [MonoTODO]
+ public string ConnectErrorMessage
+ {
+ get {
+ return "";
+ }
+ }
+
+ [MonoTODO ("why override?")]
+ public override string Description
+ {
+ get {
+ return base.Description;
+ }
+ set {
+ base.Description = value;
+ }
+ }
+
+ [MonoTODO]
+ /* msdn2 lists this as an override, but it doesn't appear to work with our implementation */
+ public /*override*/ ContentDirection Direction
+ {
+ get {
+ throw new NotImplementedException ();
+ }
+ set {
+ throw new NotImplementedException ();
+ }
+ }
+
+ public string DisplayTitle
+ {
+ get {
+ return "Untitled";
+ }
+ }
+
+ [MonoTODO]
+ public virtual WebPartExportMode ExportMode
+ {
+ get {
+ return exportMode;
+ }
+ set {
+ exportMode = value;
+ }
+ }
+
+ [MonoTODO]
+ public bool HasSharedData
+ {
+ get {
+ return hasSharedData;
+ }
+ }
+
+ [MonoTODO]
+ public bool HasUserData
+ {
+ get {
+ return hasUserData;
+ }
+ }
+
+ [MonoTODO("why override?")]
+ public override Unit Height
+ {
+ get {
+ return base.Height;
+ }
+ set {
+ base.Height = value;
+ }
+ }
+
+ [MonoTODO]
+ public virtual WebPartHelpMode HelpMode
+ {
+ get {
+ return helpMode;
+ }
+ set {
+ helpMode = value;
+ }
+ }
+
+ [MonoTODO]
+ public virtual string HelpUrl
+ {
+ get {
+ return helpUrl;
+ }
+ set {
+ helpUrl = value;
+ }
+ }
+
+ [MonoTODO]
+ public virtual bool Hidden
+ {
+ get {
+ return hidden;
+ }
+ set {
+ hidden = value;
+ }
+ }
+
+ public virtual string ImportErrorMessage
+ {
+ get {
+ return ViewState.GetString("ImportErrorMessage", "Cannot import this Web Part.");
+ }
+ set {
+ ViewState ["ImportErrorMessage"] = value;
+ }
+ }
+
+ [MonoTODO]
+ public bool IsClosed
+ {
+ get {
+ return isClosed;
+ }
+ }
+
+ [MonoTODO("not virtual and no setter..")]
+ public bool IsShared
+ {
+ get {
+ return false;
+ }
+ }
+
+ [MonoTODO("not virtual and no setter..")]
+ public bool IsStandalone
+ {
+ get {
+ return true;
+ }
+ }
+
+ [MonoTODO]
+ public bool IsStatic
+ {
+ get {
+ return isStatic;
+ }
+ }
+
+ [MonoTODO]
+ public virtual string Subtitle
+ {
+ get {
+ return string.Empty;
+ }
+ }
+
+ [MonoTODO ("why override?")]
+ public override string Title
+ {
+ get {
+ return base.Title;
+ }
+ set {
+ base.Title = value;
+ }
+ }
+
+ [MonoTODO]
+ public virtual string TitleIconImageUrl
+ {
+ get {
+ return titleIconImageUrl;
+ }
+ set {
+ titleIconImageUrl = value;
+ }
+ }
+
+ [MonoTODO]
+ public virtual string TitleUrl
+ {
+ get {
+ return titleUrl;
+ }
+ set {
+ titleUrl = value;
+ }
+ }
+
+ public virtual WebPartVerbCollection Verbs
+ {
+ get {
+ return verbs;
+ }
+ }
+
+#if IWebEditableInterface
+ [MonoTODO]
+ public virtual object WebBrowsableObject
+ {
+ get {
+ throw new NotImplementedException ();
+ }
+ }
+#endif
+
+#if notyet
+ [MonoTODO]
+ protected WebPartManager WebPartManager
+ {
+ get {
+ throw new NotImplementedException ();
+ }
+ }
+#endif
+
+ [MonoTODO ("why override?")]
+ public override Unit Width
+ {
+ get {
+ return base.Width;
+ }
+ set {
+ base.Width = value;
+ }
+ }
+
+#if notyet
+ [MonoTODO]
+ public WebPartZoneBase Zone
+ {
+ get {
+ throw new NotImplementedException ();
+ }
+ }
+#endif
+
+ [MonoTODO]
+ public int ZoneIndex
+ {
+ get {
+ return zoneIndex;
+ }
+ }
+ }
+
+}
+
#endif