670 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			670 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 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<CodeTableItem> codeTableItems = new List<CodeTableItem>();
 | ||
| 
 | ||
| 		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<CodeTableItem> 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;
 | ||
| 		}
 | ||
| 	}
 | ||
| }
 |