using MECF.Framework.Common.CommonData; using System; namespace MECF.Framework.UI.Core.TrayCoating { [Serializable] public class TrayCoatingThickness : ICloneable { #region Constructors public TrayCoatingThickness() { Tray = new CoatingData(); TrayInner = new CoatingData(); RingInner = new CoatingData(); RingOuter = new CoatingData(); } public TrayCoatingThickness(bool isPM)//把PM当成特殊的Tray来处理,PM1+PM2为一个Tray数据源 { TrayID = "PM";//PM的默认数据库ID为MP Tray = new CoatingData("PM1 Minor Cycle","PM"); TrayInner = new CoatingData("PM1 Major cycle","PM"); RingInner = new CoatingData("PM2 Minor Cycle","PM"); RingOuter = new CoatingData("PM2 Major cycle", "PM"); } public TrayCoatingThickness(string trayId) { TrayID= trayId;//Tary的默认数据库ID为自身编号1~8 Tray = new CoatingData($"Tray {trayId}", trayId); TrayInner = new CoatingData($"Tray Inner{trayId}", trayId); RingInner = new CoatingData($"Ring Inner{trayId}", trayId); RingOuter = new CoatingData($"Ring Outer{trayId}", trayId); } //public TrayCoatingThickness(int slot) : this(slot.ToString()) //{ //} #endregion #region Properties public string TrayID { get; set; } /// /// Tray厚度对象 /// public CoatingData Tray { get; set; } /// /// Tray内环厚度对象 /// public CoatingData TrayInner { get; set; } /// /// Ring内环厚度对象 /// public CoatingData RingInner { get; set; } /// /// Ring外环厚度对象 /// public CoatingData RingOuter { get; set; } #endregion #region Methods public void Update(TrayCoatingThickness newData) { Tray.Update(newData.Tray); TrayInner.Update(newData.TrayInner); RingInner.Update(newData.RingInner); RingOuter.Update(newData.RingOuter); } public object Clone() { var newObj = new TrayCoatingThickness(TrayID); newObj.Tray = (CoatingData)Tray.Clone(); newObj.TrayInner = (CoatingData)TrayInner.Clone(); newObj.RingInner = (CoatingData)RingInner.Clone(); newObj.RingOuter = (CoatingData)RingOuter.Clone(); return newObj; } #endregion } }