//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
//     Copyright (c) Telligent Systems Corporation.  All rights reserved.
// </copyright> 
//------------------------------------------------------------------------------

using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;

using CommunityServer.Components;


namespace CommunityServer.Controls
{
	/// <summary>
	/// ResourceButton is a localized version of <seealso cref="CSButton" />.
	/// To accomplish this, ResourceName and/or ResourceFile properties must be provided.
	/// </summary>
	/// <remarks>
	/// ResourceFile is not mandatory.
	/// </remarks>
	public class ResourceButton : CSButton
	{
        /// <summary>
        /// Gets or sets the name of the resource to dispaly.
        /// </summary>
        [
        Bindable(true),
        Category( "Appearance" ),
        Description( "Gets or sets the name of the resource to display." ),
        DefaultValue( "" ),
        ]
        public virtual String ResourceName 
        {
            get 
            {
                Object state = ViewState["ResourceName"];
                if ( state != null ) 
                {
                    return (String)state;
                }
                return "";
            }
            set 
            {
                ViewState["ResourceName"] = value;
            }
        }

        /// <summary>
        /// Gets or sets the name of the resource file to pull from
        /// </summary>
        [
        Bindable(true),
        Category( "Appearance" ),
        Description( "Gets or sets the name of the resource file." ),
        DefaultValue( null ),
        ]
        public virtual String ResourceFile 
        {
            get 
            {
                Object state = ViewState["ResourceFile"];
                if ( state != null ) 
                {
                    return (String)state;
                }
                return "";
            }
            set 
            {
                ViewState["ResourceFile"] = value;
            }
        }

        protected override void OnPreRender(EventArgs e)
        {            
            base.OnPreRender( e );
            
            if (!Globals.IsNullorEmpty( ResourceName ))
                 this.Text = ResourceManager.GetString( ResourceName, ResourceFile );
        }
	}
}
