using DrawGraph; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Configuration; using System.Diagnostics; using System.Linq; using System.Runtime.CompilerServices; namespace DrawGraph { [JsonObject(MemberSerialization.OptOut)] [Serializable] public class PackObjBase { public delegate void ChangedEventHandler(PackObjBase pob); [NonSerialized] protected PackObjManager poManager = null; [JsonIgnore] [NonSerialized] protected ZedGraphControl baseZed = null; [NonSerialized] private PackObjBase setParent = null; private string parentName = ""; public string ClassName = ""; private string packName = ""; private string packTag = ""; private string dataSourceName = ""; private string packTypeTag = ""; private string packText = ""; private string packValue = ""; private string defaultValue = ""; private string defaultSelectValue = ""; protected int index = 0; private bool isSelect = false; private int myOrder = 1; private string descript = ""; private float x = 0f; private float y = 0f; private float endX = 0f; private float endY = 0f; protected float width = 0f; protected float height = 0f; private bool isSelfFresh = true; private int zjpyl = 0; private int hzjpyl = 0; private int dfHzjpyl = 0; private int tabIndex = 0; private EIsBool isRequired = EIsBool.False; private EIsBool isCascadeUnderpinning = EIsBool.True; private EConvertMode convertMode = 0; private List codeTableItems = new List(); public static string fontFamily = PackObjBase.GetFontFamily(); [method: CompilerGenerated] //[DebuggerBrowsable(DebuggerBrowsableState.Never), CompilerGenerated] public event PackObjBase.ChangedEventHandler Changed; [ClassAttributs(CName = "排序", Description = "优先级由高到低显示字体类型,线面类型,图表类型\r\n每个类型里组件以此属性确认画时的顺序")] public int MyOrder { get { return this.myOrder; } set { this.myOrder = value; } } [JsonIgnore] public PackObjBase SetParent { get { return this.setParent; } set { this.setParent = value; bool flag = value != null; if (flag) { this.parentName = value.PackName; } } } [ClassAttributs(CName = "父类的Name", Message = "readOnly", Description = "父类的PackName属性,用于保存后找回自己的父类")] public string ParentName { get { return this.parentName; } set { this.parentName = value; } } [ClassAttributs(Message = "readOnly", Description = "控件名称", CName = "控件名称")] public string PackName { get { return this.packName; } set { this.packName = value; } } [ClassAttributs(CName = "是否被选中", Description = "是否被选中"), JsonIgnore] public bool IsSelect { get { return this.isSelect; } set { this.isSelect = value; } } [ClassAttributs(CName = "显示文本", Description = "显示文本")] public string PackText { get { string descVal = this.packText; bool flag = this.ConvertMode == EConvertMode.CodeTableConvert; if (flag) { CodeTableItem codeTableItem = this.CodeTableItems.FirstOrDefault((CodeTableItem s) => s.SrcVal == this.packText); bool flag2 = codeTableItem != null; if (flag2) { descVal = codeTableItem.DescVal; } } return descVal; } set { bool flag = value.Trim() == ""; if (flag) { value = this.DefaultValue; } this.packText = value; } } [ClassAttributs(CName = "组件的值", Description = "组件的值")] public string PackValue { get { return this.packValue; } set { this.packValue = value; } } [ClassAttributs(CName = "组件描述", Description = "对象的描述,树节点的显示内容")] public string Descript { get { return this.descript; } set { this.descript = value; bool flag = this.Changed != null; if (flag) { this.Changed(this); } } } [ClassAttributs(CName = "标签名称", Description = "标签的名称\r\n标签的组件名 + _ + 标签的数据源名 组成")] public string PackTag { get { return this.packTag; } set { this.packTag = value; } } [ClassAttributs(CName = "开始Y")] public float Y { get { return this.y; } set { this.y = value; } } [ClassAttributs(CName = "开始X")] public float X { get { return this.x; } set { this.x = value; } } [ClassAttributs(CName = "结束Y", Description = "可编辑区域的结束Y点的值")] public float EndY { get { return this.endY; } set { this.endY = value; } } [ClassAttributs(CName = "结束X", Description = "可编辑区域的结束X点的值")] public float EndX { get { return this.endX; } set { this.endX = value; } } [NoCreatControlAttributs, JsonIgnore] public float RealEndY { get { return this.poManager.Y + this.EndY; } } [NoCreatControlAttributs, JsonIgnore] public float RealEndX { get { return this.poManager.X + this.EndX; } } [NoCreatControlAttributs, JsonIgnore] public float RealY { get { return this.poManager.Y + this.Y; } } [NoCreatControlAttributs, JsonIgnore] public float RealX { get { return this.poManager.X + this.X; } } [ClassAttributs(CName = "标签数据源名称", Message = "readOnly", Description = "标签的数据源名\r\n用于显示标签的数据源名称部分")] public string DataSourceName { get { return this.dataSourceName.Trim(); } set { this.dataSourceName = value; } } [ClassAttributs(CName = "类数据源名称", Message = "readOnly", Description = "类赋值上用的数据源名称\r\n用于为数据源属性赋值时提供属性名称的"), JsonIgnore] public string ClassDataSourceName { get { return this.dataSourceName.Replace("_", "."); } } [ClassAttributs(Message = "readOnly", Description = "标签的组件名\r\n由区域+组件类型+唯一索引组成"), NoCreatControlAttributs] public string PackTypeTag { get { return this.packTypeTag; } set { this.packTypeTag = value; } } [NoCreatControlAttributs] public bool IsSelfFresh { get { return this.isSelfFresh; } set { this.isSelfFresh = value; } } [NoCreatControlAttributs] public int Zjpyl { get { return this.zjpyl; } set { this.zjpyl = value; } } [ClassAttributs(CName = "是否必填", Message = "readOnly", Description = "是否必填项\r\n默认为FALSE,非必填项")] public EIsBool IsRequired { get { return this.isRequired; } set { this.isRequired = value; } } [ClassAttributs(CName = "默认值", Description = "默认值")] public string DefaultValue { get { return this.defaultValue; } set { this.defaultValue = value; } } [ClassAttributs(CName = "Tab值", Description = "Tab值")] public int TabIndex { get { return this.tabIndex; } set { this.tabIndex = value; } } [NoCreatControlAttributs] public int Hzjpyl { get { return this.hzjpyl; } set { this.hzjpyl = value; } } [NoCreatControlAttributs] public int DfHzjpyl { get { return this.dfHzjpyl; } set { this.dfHzjpyl = value; } } [ClassAttributs(CName = "默认选择值", Description = "默认选择的值,可以用于设置默认值")] public string DefaultSelectValue { get { return this.defaultSelectValue; } set { this.defaultSelectValue = value; } } [NoCreatControlAttributs, JsonIgnore] public float Width { get { float result = this.width; bool flag = this.X != this.EndX; if (flag) { result = this.EndX - this.X; } return result; } } [NoCreatControlAttributs, JsonIgnore] public float Height { get { float result = this.height; bool flag = this.Y != this.EndY; if (flag) { result = this.EndY - this.Y; } return result; } } [ClassAttributs(CName = "级联拖动", Description = "是否级联拖动"), JsonIgnore] public EIsBool IsCascadeUnderpinning { get { return this.isCascadeUnderpinning; } set { this.isCascadeUnderpinning = value; } } [ClassAttributs(Description = "值的转换类型,默认不转换", CName = "是否值转换")] public EConvertMode ConvertMode { get { return this.convertMode; } set { this.convertMode = value; } } [NoCreatControlAttributs] public List CodeTableItems { get { return this.codeTableItems; } set { this.codeTableItems = value; } } private static string GetFontFamily() { string result; try { string text = null;// ConfigurationManager.AppSettings["NurseFontFamily"]; bool flag = text == null; if (flag) { result = "宋体"; } else { result = text; } } catch (Exception) { result = "宋体"; } return result; } public void CreatePackTag() { this.packTag = (this.packTypeTag = string.Concat(new string[] { this.poManager.ClassName, "_", base.GetType().Name.ToString(), "_", this.index.ToString() })); bool flag = this.dataSourceName != ""; if (flag) { this.packTag = this.packTag + "_" + this.dataSourceName; } } public PackObjBase() { } public PackObjBase(ZedGraphControl zgc, PackObjManager _poManager) { bool flag = _poManager == null; if (!flag) { this.poManager = _poManager; this.ClassName = base.GetType().Name; this.baseZed = zgc; this.index = this.poManager.GetControlIndex(); this.packTag = (this.PackTypeTag = string.Concat(new string[] { this.poManager.ClassName, "_", base.GetType().Name.ToString(), "_", this.index.ToString() })); this.packName = base.GetType().Name.ToString() + this.index.ToString(); this.descript = base.GetType().Name.ToString() + this.index.ToString(); this.myOrder = this.index; this.tabIndex = this.index; this.PackText = "基础板的参数对象"; } } public virtual void Draw() { } protected void Refresh() { bool flag = this.isSelfFresh; if (flag) { this.baseZed.AxisChange(); this.baseZed.Refresh(); } } internal void SetZedControl(ZedGraphControl zedControl) { this.baseZed = zedControl; } public virtual void Clear() { bool flag = this.baseZed.MasterPane == null; if (!flag) { GraphObj graphObj = this.baseZed.MasterPane.GraphObjList[this.PackTag]; bool flag2 = graphObj != null; if (flag2) { this.baseZed.MasterPane.GraphObjList.Remove(graphObj); } this.Refresh(); } } public PackObjBase Clone() { return (PackObjBase)base.MemberwiseClone(); } public PackObjBase CloneParse() { PackObjBase packObjBase = (PackObjBase)base.MemberwiseClone(); packObjBase.index = this.poManager.GetControlIndex(); packObjBase.packTag = (packObjBase.PackTypeTag = string.Concat(new string[] { this.poManager.ClassName, "_", base.GetType().Name.ToString(), "_", this.index.ToString() })); packObjBase.packName = packObjBase.GetType().Name.ToString() + packObjBase.index.ToString(); packObjBase.descript = packObjBase.GetType().Name.ToString() + packObjBase.index.ToString(); packObjBase.PackText = "基础板的参数对象"; return packObjBase; } public bool InScope(float x, float y) { bool result = false; bool flag = x >= this.RealX && x <= this.RealX + this.Width && y >= this.RealY && y <= this.RealY + this.Height; if (flag) { result = true; } return result; } } }