using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CustomControls
{
   [DefaultProperty("Text")]
   [ToolboxData("<{0}:CountedButton2 runat=server></{0}:CountedButton2>")]
   public class CountedButton2 : System.Web.UI.WebControls.Button
   {
      private string displayString;

      // Domylny konstruktor.
      public CountedButton2()
      {
         displayString = "klikni";
         InitValues();
      }

      // Przeciona, pobiera cig znakowy do wywietlenia (na przykad, 5) ksiek.
      public CountedButton2(string displayString)
      {
         this.displayString = displayString;
         InitValues();
      }

      // Wywoana przez konstruktora.
      private void InitValues()
      {
         if (ViewState["Count"] == null)
            ViewState["Count"] = 0;
         this.Text = "Kliknij przycisk";
      }

      // Count jako waciwo obsugiwana przez ViewState.
      public int Count
      {
         get
         {
            return (int) ViewState["Count"];
         }

         set
         {
            ViewState["Count"] = value;
         }
      }

      // Uniewaniamy zdarzenie OnClick, aby zwikszy Count o jednostk,
      // uaktualniamy tekst przycisku i wywoujemy metod podstawow.
      protected override void OnClick(EventArgs e)
      {
         ViewState["Count"] =  ((int)ViewState["Count"]) + 1;
         this.Text = ViewState["Count"] + " " + displayString;
         base.OnClick(e);
      }
   }
}
