CEL_Payroll/Ease.UICreator/SingleFormControl.cs

480 lines
14 KiB
C#
Raw Normal View History

2024-09-17 14:30:13 +06:00
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.Drawing;
namespace Ease.UICreator
{
#region Enum
public enum BESFControlEnum
{
Lebel = 1,
Text = 2,
Combo = 3,
Check = 4,
DTPicker = 5,
NumText = 6,
IntNumText = 7
}
#endregion
#region Class
public class SingleFormControl
{
#region Variables
private string _propertyName;
private string _caption;
private string _name;
private int _maxLength;
private int _height;
private int _width;
private int _positionX;
private int _positionY;
private bool _isReadOnly;
private bool _isTabStop;
private bool _isMustEntry;
private bool _isFocused;
private BESFControlEnum _controlType;
private SingleFormComboBox _SingleFormComboBox;
private int _verticalSeparation;
#endregion
#region Constructor
public SingleFormControl()
{
_verticalSeparation = 27;
_propertyName = "";
_caption = "";
_name = "";
_height = 20;
_width = 100;
_positionX = 0;
_positionY = 0;
_maxLength = 50;
_isReadOnly = false;
_isMustEntry = false;
_SingleFormComboBox = new SingleFormComboBox();
_maxLength = 0;
_isCodeAutoGenerated = false;
}
#endregion
#region Properties
#region Source
public string PropertyName
{
get { return _propertyName; }
set { _propertyName = value; }
}
#endregion
#region Caption
public string Caption
{
get { return _caption; }
set { _caption = value; }
}
#endregion
#region Name
public string Name
{
get { return _name; }
set { _name = value; }
}
#endregion
#region Control Type
public BESFControlEnum ControlType
{
get { return _controlType; }
set { _controlType = value; }
}
#endregion
#region Height
public int Height
{
get { return _height; }
set { _height = value; }
}
#endregion
#region Width
public int Width
{
get { return _width; }
set { _width = value; }
}
#endregion
#region PositionX
public int PositionX
{
get { return _positionX; }
set { _positionX = value; }
}
#endregion
#region PositionY
public int PositionY
{
get { return _positionY; }
set { _positionY = value; }
}
#endregion
#region Max Length
public int MaxLength
{
get { return _maxLength; }
set { _maxLength = value; }
}
#endregion
#region IsReadOnly
public bool IsReadOnly
{
get { return _isReadOnly; }
set { _isReadOnly = value; }
}
#endregion
//#region BackColor
//public Color BackColor
//{
// get { return _backColor; }
// set { _backColor = value; }
//}
//#endregion
private bool _isCodeAutoGenerated;
public bool IsCodeAutoGenerated
{
get { return _isCodeAutoGenerated; }
set { _isCodeAutoGenerated = value; }
}
#region IsTabStop
public bool IsTabStop
{
get { return _isTabStop; }
set { _isTabStop = value; }
}
#endregion
#region IsMustEntry
public bool IsMustEntry
{
get { return _isMustEntry; }
set { _isMustEntry = value; }
}
#endregion
#region Is Focus
public bool IsFocused
{
get { return _isFocused; }
set { _isFocused = value; }
}
#endregion
#region SingleFormComboBox
public SingleFormComboBox CboBox
{
get { return _SingleFormComboBox; }
set { _SingleFormComboBox = value; }
}
#endregion
#region VerticalSeparation
public int VerticalSeparation
{
get { return _verticalSeparation; }
set { _verticalSeparation = value; }
}
#endregion
#endregion
}
#endregion
#region Collection
public class SingleFormControls : CollectionBase
{
#region Methods
#region Indexer
public SingleFormControl this[int index]
{
get
{
return ((SingleFormControl)List[index]);
}
set
{
List[index] = value;
}
}
public SingleFormControl this[string ControlName]
{
get
{
foreach (SingleFormControl item in this)
{
if (item.Name == ControlName)
{
return item;
}
}
return new SingleFormControl();
}
}
#endregion
#region Add
public int Add(SingleFormControl value)
{
return (List.Add(value));
}
#region PositionY
public SingleFormControl LastAddedControl
{
get { return this[this.Count - 1]; }
set { this[this.Count - 1] = value; }
}
#endregion
public int Add(BESFControlEnum controlType, string caption, string name, string propertyName, int height, int width, int posX, int posY)
{
SingleFormControl item = new SingleFormControl();
item.ControlType = controlType;
item.Caption = caption;
item.PropertyName = propertyName;
item.Name = name;
item.Height = height;
item.Width = width;
item.PositionX = posX;
item.PositionY = posY;
return (List.Add(item));
}
public int Add(BESFControlEnum controlType, string caption, string name, string propertyName, int height, int width, int posX, int posYofChosenControl, int nVerticalSeparation)
{
SingleFormControl item = new SingleFormControl();
item.ControlType = controlType;
item.Caption = caption;
item.PropertyName = propertyName;
item.Name = name;
item.Height = height;
item.Width = width;
item.PositionX = posX;
item.PositionY = posYofChosenControl + nVerticalSeparation;
return (List.Add(item));
}
public int Add(BESFControlEnum controlType, string caption, string name, string propertyName, int height, int width)
{
if (this.Count == 0)
{
SingleFormControl item = new SingleFormControl();
item.ControlType = controlType;
item.Caption = caption;
item.PropertyName = propertyName;
item.Name = name;
item.Height = height;
item.Width = width;
item.PositionX = 12;
item.PositionY = 9;
return (List.Add(item));
}
else if (this.Count == 1)
{
SingleFormControl item = new SingleFormControl();
item.ControlType = controlType;
item.Caption = caption;
item.PropertyName = propertyName;
item.Name = name;
item.Height = height;
item.Width = width;
item.PositionX = 118;
item.PositionY = 9;
return (List.Add(item));
}
else
{
if ((this.Count) % 2 == 0)
{
SingleFormControl item = new SingleFormControl();
item.ControlType = controlType;
item.Caption = caption;
item.PropertyName = propertyName;
item.Name = name;
item.Height = height;
item.Width = width;
item.PositionX = this[this.Count - 2].PositionX;
//item.PositionY = this[this.Count - 1].PositionY + item.VerticalSeparation + this[this.Count - 1].Height-20;
item.PositionY = this[this.Count - 1].PositionY + item.VerticalSeparation;
return (List.Add(item));
}
else
{
SingleFormControl item = new SingleFormControl();
item.ControlType = controlType;
item.Caption = caption;
item.PropertyName = propertyName;
item.Name = name;
item.Height = height;
item.Width = width;
item.PositionX = this[this.Count - 2].PositionX;
//item.PositionY = this[this.Count - 2].PositionY + item.VerticalSeparation+this[this.Count - 2].Height - 20;
item.PositionY = this[this.Count - 2].PositionY + item.VerticalSeparation;
return (List.Add(item));
}
}
}
public int Add(BESFControlEnum controlType, string caption, string name, string propertyName)
{
if (this.Count == 0)
{
SingleFormControl item = new SingleFormControl();
item.ControlType = controlType;
item.Caption = caption;
item.PropertyName = propertyName;
item.Name = name;
item.PositionX = 12;
item.PositionY = 9;
return (List.Add(item));
}
else if (this.Count == 1)
{
SingleFormControl item = new SingleFormControl();
item.ControlType = controlType;
item.Caption = caption;
item.PropertyName = propertyName;
item.Name = name;
item.PositionX = 118;
item.PositionY = 9;
return (List.Add(item));
}
else
{
if ((this.Count) % 2 == 0)
{
SingleFormControl item = new SingleFormControl();
item.ControlType = controlType;
item.Caption = caption;
item.PropertyName = propertyName;
item.Name = name;
item.PositionX = this[this.Count - 2].PositionX;
item.PositionY = this[this.Count - 2].PositionY + item.VerticalSeparation;
return (List.Add(item));
}
else
{
SingleFormControl item = new SingleFormControl();
item.ControlType = controlType;
item.Caption = caption;
item.PropertyName = propertyName;
item.Name = name;
item.PositionX = this[this.Count - 2].PositionX;
item.PositionY = this[this.Count - 2].PositionY + item.VerticalSeparation;
return (List.Add(item));
}
}
}
#endregion
#region IndexOf
public int IndexOf(SingleFormControl value)
{
return (List.IndexOf(value));
}
#endregion
#region Insert
public void Insert(int index, SingleFormControl value)
{
List.Insert(index, value);
}
#endregion
#region Remove
public void Remove(SingleFormControl value)
{
List.Remove(value);
}
#endregion
#region Contains
public bool Contains(SingleFormControl value)
{
// If value is not of type SingleFormControl, this will return false.
return (List.Contains(value));
}
#endregion
public void IsDuplicateCtlName()
{
int nIndex = -1;
foreach (SingleFormControl item in this)
{
nIndex = nIndex + 1;
for (int i = 0; i < this.Count; i++)
{
if (nIndex != i)
{
if ((this[nIndex].PropertyName == this[i].PropertyName) && (this[nIndex].PropertyName != ""))
{
throw new Exception("Duplicate Control Name Exist:" + this[nIndex].PropertyName);
}
}
}
}
}
public SingleFormControl GetControl(string propertyName)
{
foreach (SingleFormControl item in this)
{
if (item.PropertyName == propertyName)
{
return item;
}
}
return null;
}
#region Migth be needed
//protected override void OnInsert(int index, Object value)
//{
// // Insert additional code to be run only when inserting values.
//}
//protected override void OnRemove(int index, Object value)
//{
// // Insert additional code to be run only when removing values.
//}
//protected override void OnSet(int index, Object oldValue, Object newValue)
//{
// // Insert additional code to be run only when setting values.
//}
//protected override void OnValidate(Object value)
//{
// if (value.GetType() != typeof(MasterFormlvw))
// throw new ArgumentException("value must be of type List view column.", "value");
//}
#endregion
#endregion
}
#endregion
}