| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484 | using Aitex.Core.RT.SCCore;using Caliburn.Micro;using Caliburn.Micro.Core;using MECF.Framework.Common.DataCenter;using MECF.Framework.Common.RecipeCenter;using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;using System;using System.Collections.Generic;using System.Collections.ObjectModel;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using FurnaceUI.Models;using FurnaceUI.Views.Parameter;using FurnaceUI.Views.Recipes;namespace FurnaceUI.Views.Editors{    public class RecipeLayoutSetTotalWaferNumberViewModel : FurnaceUIViewModelBase    {        Dictionary<string, string> wapexPlain = new Dictionary<string, string>();        public TotalWaferNumberMode DialogResultTotalWaferNumberMode { get; set; }        private string _returnValue = "";        public string ReturnValue        {            get => _returnValue;            set            {                _returnValue = value;                SplitCharacter(value);                NotifyOfPropertyChange(nameof(ReturnValue));            }        }        private void SplitCharacter(string value)        {            if (string.IsNullOrEmpty(value) || !value.Contains("|")) return;            string[] listStr = value.Split('|');            if (listStr.Length != 4) return;            NeedNum =int.Parse(listStr[0]);            AdditionalNum = int.Parse(listStr[1]);            ProductCarrierNum = int.Parse(listStr[2]);            LowerSD = int.Parse(listStr[3]);        }        public bool IsSave { get; set; }        public RecipeLayoutSetTotalWaferNumberViewModel()        {        }        private int _needNum = 0;        public int NeedNum        {            get => _needNum;            set            {                _needNum = value;                NotifyOfPropertyChange(nameof(NeedNum));            }        }        private int _additionalNum = 0;        public int AdditionalNum        {            get => _additionalNum;            set            {                _additionalNum = value;                NotifyOfPropertyChange(nameof(AdditionalNum));            }        }        private int _productCarrierNum = 0;        public int ProductCarrierNum        {            get => _productCarrierNum;            set            {                _productCarrierNum = value;                NotifyOfPropertyChange(nameof(ProductCarrierNum));            }        }        private int _lowerSD = 0;        public int LowerSD        {            get => _lowerSD;            set            {                _lowerSD = value;                NotifyOfPropertyChange(nameof(LowerSD));            }        }        private TotalWaferNumberMode _totalWaferNumber = TotalWaferNumberMode.Total;        public TotalWaferNumberMode TotalWaferNumber        {            get => _totalWaferNumber;            set            {                _totalWaferNumber = value;                NotifyOfPropertyChange(nameof(TotalWaferNumber));            }        }        public bool IsEnable => CGlobal.RecipeProcessEditViewEnable;//是否是View模式        public string RecipeType { get; set; }        protected override void OnViewLoaded(object view)        {            base.OnViewLoaded(view);            LoadData();            LoadSetDefaultOption(view);        }        private string _titleText;        public string TitleText        {            get => _titleText;            set            {                _titleText = value;                NotifyOfPropertyChange(nameof(TitleText));            }        }        private void LoadData()        {            wapexPlain.Clear();            wapexPlain.Add("Total", "Set the number of Product wafers .(include Fill Dummy wafers)");            wapexPlain.Add("Carrier", "Set the number of Product carriers. The number oftransferring Product wafers to the boat is the carriernumber times the carrier slot number .");            wapexPlain.Add("Carrierx", "The number of transferring Product wafers to the boat isthe entered-batch carrier number times the carrier slot number.");            wapexPlain.Add("Minimum", "Set the minimum wafer number in process and additionalwafer number in case of going beyond the minimum.");            wapexPlain.Add("Fixed", "Set the lowest slot No. of Lower Side-Dummy. The area ofProduct and FillDummy wafers is decided according tothe area of Side Dummy.");            wapexPlain.Add("Upper", "Product wafers are arranged the upper area on the boatFill Dummy isn't transferred regardless of Product wafer number.");            wapexPlain.Add("Lower", "Product wafers are arranged the lower area on the boat. Fill Dummy isn’t transferred regardless of Product wafer number .");            TitleText = wapexPlain["Total"];            DialogResultTotalWaferNumberMode = TotalWaferNumberMode.Total;        }        private void LoadSetDefaultOption(object view)        {            var totalWaferNumberView = (RecipeLayoutSetTotalWaferNumberView)view;            switch (_totalWaferNumber)            {                case TotalWaferNumberMode.Total:                    totalWaferNumberView.RdoTotal.IsChecked = true;                    break;                case TotalWaferNumberMode.Carrier:                    totalWaferNumberView.RdoCarrier.IsChecked = true;                    break;                case TotalWaferNumberMode.Carrierx:                    totalWaferNumberView.RdoCarrierx.IsChecked = true;                    break;                case TotalWaferNumberMode.Minimum:                    totalWaferNumberView.RdoMinimum.IsChecked = true;                    break;                case TotalWaferNumberMode.Fixed:                    totalWaferNumberView.RdoFixed.IsChecked = true;                    break;                case TotalWaferNumberMode.Upper:                    totalWaferNumberView.RdoUpper.IsChecked = true;                    break;                case TotalWaferNumberMode.Lower:                    totalWaferNumberView.RdoLower.IsChecked = true;                    break;                default:                    break;            }        }        public void EditModeSelectClick(string cmd)        {            switch (cmd)            {                case "Before":                    SetBeforeEdit();                    break;                case "After":                    SetAfterEdit();                    break;                default:                    break;            }        }        private void SetBeforeEdit()        { }        private void SetAfterEdit()        { }        public void WapLogicSelectClick(string cmd)        {            if (wapexPlain.ContainsKey(cmd))            {                TitleText = wapexPlain[cmd];            }            switch (cmd)            {                case "Total":                    SetWapLogicSelectTotal();                    break;                case "Carrier":                    SetWapLogicSelectCarrier();                    break;                case "Carrierx":                    SetWapLogicSelectCarrierx();                    break;                case "Minimum":                    SetWapLogicSelectMinimum();                    break;                case "Fixed":                    SetWapLogicSelectFixed();                    break;                case "Upper":                    SetWapLogicSelectUpper();                    break;                case "Lower":                    SetWapLogicSelectLower();                    break;                default:                    break;            }        }        private bool _totalWaferIsEnabled = true;        public bool TotalWaferIsEnabled        {            get => _totalWaferIsEnabled;            set            {                _totalWaferIsEnabled = value;                NotifyOfPropertyChange(nameof(TotalWaferIsEnabled));            }        }        private Visibility _totalVisibility = Visibility.Visible;        public Visibility TotalVisibility        {            get => _totalVisibility;            set            {                _totalVisibility = value;                NotifyOfPropertyChange(nameof(TotalVisibility));            }        }        private Visibility _carrierVisibility = Visibility.Hidden;        public Visibility CarrierVisibility        {            get => _carrierVisibility;            set            {                _carrierVisibility = value;                NotifyOfPropertyChange(nameof(CarrierVisibility));            }        }        private Visibility _carrierXVisibility = Visibility.Hidden;        public Visibility CarrierXVisibility        {            get => _carrierXVisibility;            set            {                _carrierXVisibility = value;                NotifyOfPropertyChange(nameof(CarrierXVisibility));            }        }        private Visibility _minimumVisibility = Visibility.Hidden;        public Visibility MinimumVisibility        {            get => _minimumVisibility;            set            {                _minimumVisibility = value;                NotifyOfPropertyChange(nameof(MinimumVisibility));            }        }        private Visibility _fixedVisibility = Visibility.Hidden;        public Visibility FixedVisibility        {            get => _fixedVisibility;            set            {                _fixedVisibility = value;                NotifyOfPropertyChange(nameof(FixedVisibility));            }        }        private Visibility _allWaferVisibility = Visibility.Visible;        public Visibility AllWaferVisibility        {            get => _allWaferVisibility;            set            {                _allWaferVisibility = value;                NotifyOfPropertyChange(nameof(AllWaferVisibility));            }        }        private Visibility _upperAreaVisibility = Visibility.Hidden;        public Visibility UpperAreaVisibility        {            get => _upperAreaVisibility;            set            {                _upperAreaVisibility = value;                NotifyOfPropertyChange(nameof(UpperAreaVisibility));            }        }        private Visibility _lowerAreaVisibility = Visibility.Hidden;        public Visibility LowerAreaVisibility        {            get => _lowerAreaVisibility;            set            {                _lowerAreaVisibility = value;                NotifyOfPropertyChange(nameof(LowerAreaVisibility));            }        }        private Visibility _foupVisibilityVisibility = Visibility.Visible;        public Visibility FoupVisibilityVisibility        {            get => _foupVisibilityVisibility;            set            {                _foupVisibilityVisibility = value;                NotifyOfPropertyChange(nameof(_foupVisibilityVisibility));            }        }        private void SetWapLogicSelectTotal()        {            TotalWaferIsEnabled = true;            AllWaferVisibility = Visibility.Visible;            TotalVisibility = Visibility.Visible;            CarrierVisibility = Visibility.Hidden;            CarrierXVisibility = Visibility.Hidden;            MinimumVisibility = Visibility.Hidden;            FixedVisibility = Visibility.Hidden;            UpperAreaVisibility = Visibility.Hidden;            LowerAreaVisibility = Visibility.Hidden;            FoupVisibilityVisibility = Visibility.Visible;            DialogResultTotalWaferNumberMode = TotalWaferNumberMode.Total;        }        private void SetWapLogicSelectCarrier()        {            TotalWaferIsEnabled = false;            AllWaferVisibility = Visibility.Visible;            TotalVisibility = Visibility.Visible;            CarrierVisibility = Visibility.Visible;            CarrierXVisibility = Visibility.Hidden;            MinimumVisibility = Visibility.Hidden;            FixedVisibility = Visibility.Hidden;            UpperAreaVisibility = Visibility.Hidden;            LowerAreaVisibility = Visibility.Hidden;            FoupVisibilityVisibility = Visibility.Visible;            DialogResultTotalWaferNumberMode = TotalWaferNumberMode.Carrier;        }        private void SetWapLogicSelectCarrierx()        {            AllWaferVisibility = Visibility.Visible;            TotalVisibility = Visibility.Hidden;            CarrierVisibility = Visibility.Hidden;            CarrierXVisibility = Visibility.Visible;            MinimumVisibility = Visibility.Hidden;            FixedVisibility = Visibility.Hidden;            UpperAreaVisibility = Visibility.Hidden;            LowerAreaVisibility = Visibility.Hidden;            FoupVisibilityVisibility = Visibility.Hidden;            DialogResultTotalWaferNumberMode = TotalWaferNumberMode.Carrierx;        }        private void SetWapLogicSelectMinimum()        {            AllWaferVisibility = Visibility.Visible;            TotalVisibility = Visibility.Hidden;            CarrierVisibility = Visibility.Hidden;            CarrierXVisibility = Visibility.Hidden;            MinimumVisibility = Visibility.Visible;            FixedVisibility = Visibility.Hidden;            UpperAreaVisibility = Visibility.Hidden;            LowerAreaVisibility = Visibility.Hidden;            FoupVisibilityVisibility = Visibility.Hidden;            DialogResultTotalWaferNumberMode = TotalWaferNumberMode.Minimum;        }        private void SetWapLogicSelectFixed()        {            AllWaferVisibility = Visibility.Visible;            TotalVisibility = Visibility.Hidden;            CarrierVisibility = Visibility.Hidden;            CarrierXVisibility = Visibility.Hidden;            MinimumVisibility = Visibility.Hidden;            FixedVisibility = Visibility.Visible;            UpperAreaVisibility = Visibility.Hidden;            LowerAreaVisibility = Visibility.Hidden;            FoupVisibilityVisibility = Visibility.Visible;            DialogResultTotalWaferNumberMode = TotalWaferNumberMode.Fixed;        }        private void SetWapLogicSelectUpper()        {            AllWaferVisibility = Visibility.Hidden;            UpperAreaVisibility = Visibility.Visible;            LowerAreaVisibility = Visibility.Hidden;            DialogResultTotalWaferNumberMode = TotalWaferNumberMode.Upper;        }        private void SetWapLogicSelectLower()        {            AllWaferVisibility = Visibility.Hidden;            UpperAreaVisibility = Visibility.Hidden;            LowerAreaVisibility = Visibility.Visible;            DialogResultTotalWaferNumberMode = TotalWaferNumberMode.Lower;        }        public void TempSetSave()        {            IsSave = true;            GetValueToReturnValue();            ((Window)GetView()).DialogResult = true;        }        private void GetValueToReturnValue()        {            ReturnValue = $"{NeedNum}|{AdditionalNum}|{ProductCarrierNum}|{LowerSD}";        }        public void TempSetCancel()        {            IsSave = false;            ((Window)GetView()).DialogResult = false;        }    }    public enum TotalWaferNumberMode    {        Total,        Carrier,        Carrierx,        Minimum,        Fixed,        Upper,        Lower    }}
 |