using System;

using System.ComponentModel;

using System.Drawing;

using Utils.Data.Validation;

using Utils.Data;

 

 

namespace Utils.Data.Test

{

      /// <summary>

      /// Summary description for TestClass.

      /// </summary>

      public enum ProjectType

      {

            Desktop,

            Database,

            Web

      }

 

      public class AgeList : NumericListProvider

      {

            public AgeList() : base(1,100,1)

            {

            }

      }

 

      [EditControl("Azienda",StandardControls.TabPages)]

      public class Company

      {

            [EditControl("Dipendenti")]

            public Anag[] Employee;

            public Project Project;

      }

 

      [EditControl("Anagrafica")]

      public class Anag

      {

            [EditControl("Nome"),Validation(Min=3),XmlElement("name",IsAttribute=true)]

            public string Name="";

            [EditControl("Età",Width=100),Validation(Min=1,AllowEmpty=true),DataType(DataTypes.Integer),ValueList(typeof(AgeList),true)]

            public int Age;

            [EditControl("Attivo")]

            public bool Active;

            [EditControl("Scadenza")]

            public DateTime Expire;

            [EditControl("Livello",StandardControls.TrackBar,Properties="Minimum=0,Maximum=20,TrackBar.TickFrequency=5")]

            public byte Level;

 

            public override string ToString()

            {

                  return Name==null || Name==""?"<nome>":Name;

            }

      }

 

      [EditControl("Progetto")]

      public class Project

      {

            [EditControl("Creatori",StandardControls.CheckedListBox,Height=80),ValueList("../../Employee",DisplayMember="Name",ValueMember="Name")]

            public string[] Creators;

            [EditControl("Nome")]

            public string Name;

            [EditControl("Tipo progetto",StandardControls.RadioButton)]

            public ProjectType Type;

            [EditControl("Colore penna"),ReadOnly(true)]

            public Color PenColor;

      }

 

      public class Start

      {

            static void Main()

            {

                  Company c=new Company();

                  EditForm.ShowDialog(this,c,"Configura");

            }

      }

}