D:/Projects/Anthem/Anthem/Panel.cs

00001 using System;
00002 using System.ComponentModel;
00003 using System.Drawing;
00004 using System.Web.UI;
00005 using ASP = System.Web.UI.WebControls;
00006 
00007 namespace Anthem
00008 {
00021     [ToolboxBitmap(typeof(ASP.Panel))]
00022     public class Panel : ASP.Panel, IUpdatableControl, ICallBackContainerControl
00023     {
00024         #region Unique Anthem control code
00025 
00026         private const string parentTagName = "div";
00031         protected override void Render(HtmlTextWriter writer)
00032         {
00033 #if !V2
00034             bool DesignMode = this.Context == null;
00035 #endif
00036             if (EnableCallBack && AddCallBacks && Visible)
00037                 Anthem.Manager.AddCallBacks(this,
00038                     EnabledDuringCallBack,
00039                     TextDuringCallBack,
00040                     PreCallBackFunction,
00041                     PostCallBackFunction,
00042                     CallBackCancelledFunction);
00043 
00044             if (!DesignMode)
00045             {
00046                 Anthem.Manager.WriteBeginControlMarker(writer, parentTagName, this);
00047             }
00048             if (Visible)
00049             {
00050                 base.Render(writer);
00051             }
00052             if (!DesignMode)
00053             {
00054                 Anthem.Manager.WriteEndControlMarker(writer, parentTagName, this);
00055             }
00056         }
00057 
00058         #endregion
00059 
00060         #region ICallBackControl implementation
00061 
00066         [Category("Anthem")]
00067         [DefaultValue("")]
00068         [Description("The javascript function to call on the client if the callback is cancelled.")]
00069         public virtual string CallBackCancelledFunction
00070         {
00071             get
00072             {
00073                 string text = (string)ViewState["CallBackCancelledFunction"];
00074                 if (text == null)
00075                     return string.Empty;
00076                 else
00077                     return text;
00078             }
00079             set
00080             {
00081                 ViewState["CallBackCancelledFunction"] = value;
00082             }
00083         }
00084 
00092         [Category("Anthem")]
00093         [DefaultValue(true)]
00094         [Description("True if this control uses callbacks instead of postbacks to post data to the server.")]
00095         public virtual bool EnableCallBack
00096         {
00097             get
00098             {
00099                 object obj = this.ViewState["EnableCallBack"];
00100                 if (obj == null)
00101                     return true;
00102                 else
00103                     return (bool)obj;
00104             }
00105             set
00106             {
00107                 ViewState["EnableCallBack"] = value;
00108             }
00109         }
00110 
00119         [Category("Anthem")]
00120         [DefaultValue(true)]
00121         [Description("True if this control is enabled on the client during callbacks.")]
00122         public virtual bool EnabledDuringCallBack
00123         {
00124             get
00125             {
00126                 object obj = this.ViewState["EnabledDuringCallBack"];
00127                 if (obj == null)
00128                     return true;
00129                 else
00130                     return (bool)obj;
00131             }
00132             set
00133             {
00134                 ViewState["EnabledDuringCallBack"] = value;
00135             }
00136         }
00137 
00138 
00156         [Category("Anthem")]
00157         [DefaultValue("")]
00158         [Description("The javascript function to call on the client after the callback response is received.")]
00159         public virtual string PostCallBackFunction
00160         {
00161             get
00162             {
00163                 string text = (string)this.ViewState["PostCallBackFunction"];
00164                 if (text == null)
00165                 {
00166                     return string.Empty;
00167                 }
00168                 return text;
00169             }
00170             set
00171             {
00172                 ViewState["PostCallBackFunction"] = value;
00173             }
00174         }
00175 
00181         [Category("Anthem")]
00182         [DefaultValue("")]
00183         [Description("The javascript function to call on the client before the callback is made.")]
00184         public virtual string PreCallBackFunction
00185         {
00186             get
00187             {
00188                 string text = (string)this.ViewState["PreCallBackFunction"];
00189                 if (text == null)
00190                 {
00191                     return string.Empty;
00192                 }
00193                 return text;
00194             }
00195             set
00196             {
00197                 ViewState["PreCallBackFunction"] = value;
00198             }
00199         }
00200 
00209         [Category("Anthem")]
00210         [DefaultValue("")]
00211         [Description("The text to display during the callback.")]
00212         public virtual string TextDuringCallBack
00213         {
00214             get
00215             {
00216                 string text = (string)this.ViewState["TextDuringCallBack"];
00217                 if (text == null)
00218                 {
00219                     return string.Empty;
00220                 }
00221                 return text;
00222             }
00223             set
00224             {
00225                 ViewState["TextDuringCallBack"] = value;
00226             }
00227         }
00228 
00229         #endregion
00230 
00231         #region ICallBackContainerControl implementation
00232 
00244         [Category("Anthem")]
00245         [DefaultValue(true)]
00246         [Description("True if this control should convert child control postbacks into callbacks.")]
00247         public virtual bool AddCallBacks
00248         {
00249             get
00250             {
00251                 object obj = this.ViewState["AddCallBacks"];
00252                 if (obj == null)
00253                     return true;
00254                 else
00255                     return (bool)obj;
00256             }
00257             set
00258             {
00259                 ViewState["AddCallBacks"] = value;
00260             }
00261         }
00262 
00263         #endregion
00264 
00265         #region IUpdatableControl implementation
00266 
00280         [Category("Anthem")]
00281         [DefaultValue(false)]
00282         [Description("True if this control should be updated after each callback.")]
00283         public virtual bool AutoUpdateAfterCallBack
00284         {
00285             get
00286             {
00287                 object obj = this.ViewState["AutoUpdateAfterCallBack"];
00288                 if (obj == null)
00289                     return false;
00290                 else
00291                     return (bool)obj;
00292             }
00293             set
00294             {
00295                 if (value) UpdateAfterCallBack = true;
00296                 ViewState["AutoUpdateAfterCallBack"] = value;
00297             }
00298         }
00299 
00300         private bool _updateAfterCallBack = false;
00301 
00316         [Browsable(false)]
00317         [DefaultValue(false)]
00318         public virtual bool UpdateAfterCallBack
00319         {
00320             get { return _updateAfterCallBack; }
00321             set { _updateAfterCallBack = value; }
00322         }
00323 
00324         #endregion
00325 
00326         #region Common Anthem control code
00327 
00333         protected override void OnLoad(EventArgs e)
00334         {
00335             base.OnLoad(e);
00336             Anthem.Manager.Register(this);
00337         }
00338 
00339 #if V2
00343         public override void RenderControl(HtmlTextWriter writer)
00344         {
00345             base.Visible = true;
00346             base.RenderControl(writer);
00347         }
00348 #endif
00349 
00357         public override bool Visible
00358         {
00359             get
00360             {
00361 #if !V2
00362                 bool DesignMode = this.Context == null;
00363 #endif
00364                 return Anthem.Manager.GetControlVisible(this, ViewState, DesignMode); 
00365             }
00366             set { Anthem.Manager.SetControlVisible(ViewState, value); }
00367         }
00368 
00369         #endregion
00370     }
00371 }

Generated on Wed Mar 14 23:50:39 2007 for Anthem by  doxygen 1.5.1-p1