    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;

    namespace ASPNET.StarterKit.Portal {

        public abstract class DesktopModuleTitle : System.Web.UI.UserControl {
            protected System.Web.UI.WebControls.Label ModuleTitle;
            protected System.Web.UI.WebControls.HyperLink EditButton;

            public String EditText = null;
            public String EditUrl  = null;
            public String EditTarget = null;

            private void Page_Load(object sender, System.EventArgs e) {

                // Obtain PortalSettings from Current Context
                PortalSettings portalSettings = (PortalSettings) HttpContext.Current.Items["PortalSettings"];

                // Obtain reference to parent portal module
                PortalModuleControl portalModule = (PortalModuleControl) this.Parent;

                // Display Modular Title Text and Edit Buttons
                ModuleTitle.Text = portalModule.ModuleConfiguration.ModuleTitle;

                // Display the Edit button if the parent portalmodule has configured the PortalModuleTitle User Control
                // to display it -- and the current client has edit access permissions
                if ((portalSettings.AlwaysShowEditButton == true) || (PortalSecurity.IsInRoles(portalModule.ModuleConfiguration.AuthorizedEditRoles)) && (EditText != null)) {

                    EditButton.Text = EditText;
                    EditButton.NavigateUrl = EditUrl + "?mid=" + portalModule.ModuleId.ToString();
                    EditButton.Target = EditTarget;
                }
            }

            public DesktopModuleTitle() {
                this.Init += new System.EventHandler(Page_Init);
            }

            private void Page_Init(object sender, EventArgs e) {
                //
                // CODEGEN: This call is required by the ASP.NET Web Form Designer.
                //
                InitializeComponent();
            }

            #region Web Form Designer generated code
            ///        Required method for Designer support - do not modify
            ///        the contents of this method with the code editor.
            ///
            private void InitializeComponent() {
                this.Load += new System.EventHandler(this.Page_Load);

            }
            #endregion
        }
    }