123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908 |
- using Caliburn.Micro;
- using MECF.Framework.Common.CommonData;
- using MECF.Framework.Common.DataCenter;
- using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;
- using MECF.Framework.UI.Client.ClientBase;
- using OpenSEMI.ClientBase;
- using System;
- using System.Collections.Generic;
- using System.Windows;
- using System.Windows.Media;
- using FurnaceUI.Models;
- using FurnaceUI.Views.Editors;
- using System.Linq;
- using System.Windows.Controls;
- using System.Collections.ObjectModel;
- namespace FurnaceUI.Views.Recipes
- {
- public class RecipeLayoutBoatMapViewModel : FurnaceUIViewModelBase
- {
- #region properties
- private int waferNumberP;
- public int WaferNumberP { get { return waferNumberP; } set { waferNumberP = value; NotifyOfPropertyChange(nameof(WaferNumberP)); } }
- private int waferNumberSD;
- public int WaferNumberSD { get { return waferNumberSD; } set { waferNumberSD = value; NotifyOfPropertyChange(nameof(WaferNumberSD)); } }
- private int waferNumberED;
- public int WaferNumberED { get { return waferNumberED; } set { waferNumberED = value; NotifyOfPropertyChange(nameof(WaferNumberED)); } }
- private int waferNumberM;
- public int WaferNumberM { get { return waferNumberM; } set { waferNumberM = value; NotifyOfPropertyChange(nameof(WaferNumberM)); } }
- private int waferNumberAll;
- public int WaferNumberAll { get { return waferNumberAll; } set { waferNumberAll = value; NotifyOfPropertyChange(nameof(WaferNumberAll)); } }
- private int currentItemIndex;
- private bool productPositionAuto;
- public bool ProductPositionAuto { get { return productPositionAuto; } set { productPositionAuto = value; NotifyOfPropertyChange(nameof(ProductPositionAuto)); } }
- private bool productPositionSlot;
- public bool ProductPositionSlot { get { return productPositionSlot; } set { productPositionSlot = value; NotifyOfPropertyChange(nameof(ProductPositionSlot)); } }
- private bool monitorPositionAuto;
- public bool MonitorPositionAuto { get { return monitorPositionAuto; } set { monitorPositionAuto = value; NotifyOfPropertyChange(nameof(MonitorPositionAuto)); } }
- private bool monitorPositionSlot;
- public bool MonitorPositionSlot { get { return monitorPositionSlot; } set { monitorPositionSlot = value; NotifyOfPropertyChange(nameof(MonitorPositionSlot)); } }
- private bool spaceSlotEnabled;
- public bool SpaceSlotEnabled { get { return spaceSlotEnabled; } set { spaceSlotEnabled = value; NotifyOfPropertyChange(nameof(SpaceSlotEnabled)); } }
- public int CurrentItemIndex
- {
- get { return currentItemIndex; }
- set { currentItemIndex = value; SelecteSlot(); this.NotifyOfPropertyChange(nameof(CurrentItemIndex)); }
- }
- private RecipeProvider _recipeProvider = new RecipeProvider();
- private SolidColorBrush _SDBk = new SolidColorBrush(Color.FromArgb(255, 251, 147, 85));
- private SolidColorBrush _FDBk = new SolidColorBrush(Color.FromArgb(255, 170, 147, 255));
- private SolidColorBrush _PBk = new SolidColorBrush(Color.FromArgb(255, 2, 255, 255));
- private SolidColorBrush _M1Bk = new SolidColorBrush(Color.FromArgb(255, 3, 149, 255));
- private SolidColorBrush _M2Bk = new SolidColorBrush(Color.FromArgb(255, 255, 111, 171));
- private SolidColorBrush _DefaultdBk = new SolidColorBrush(Colors.White);
- #endregion
- public RecipeDataLayout CurrentRecipe { get; set; } = new RecipeDataLayout();
- public RecipeLayoutEntityNormal NormalEntity { get { return CurrentRecipe.NormalSteps[0]; } set { CurrentRecipe.NormalSteps[0] = value; this.NotifyOfPropertyChange(nameof(NormalEntity)); } }
- private List<BoatWaferItem> _boatWafers = new List<BoatWaferItem>();
- public List<BoatWaferItem> BoatWafers
- {
- get
- {
- _boatWafers.Clear();
- foreach (var item in CurrentRecipe.ExpertSteps[0].Items)
- {
- _boatWafers.Add(item);
- }
- _boatWafers.Reverse();
- return _boatWafers;
- }
- set
- {
- CurrentRecipe.ExpertSteps[0].Items = value;
- }
- }
- public bool IsEnable => CGlobal.RecipeLayoutEditViewEnable;//是否是View模式
- public SlotType SelectSlotType { get; set; } = SlotType.Space;
- private int _cassetteSlotCount;
- private int _productSlotCount = 0;
- public int ProductSlotCount
- {
- get => _productSlotCount;
- set
- {
- _productSlotCount = value;
- NotifyOfPropertyChange(nameof(ProductSlotCount));
- }
- }
- private int _monitor1SlotCount = 0;
- public int Monitor1SlotCount
- {
- get => _monitor1SlotCount;
- set
- {
- _monitor1SlotCount = value;
- NotifyOfPropertyChange(nameof(Monitor1SlotCount));
- }
- }
- private int _monitor2SlotCount = 0;
- public int Monitor2SlotCount
- {
- get => _monitor2SlotCount;
- set
- {
- _monitor2SlotCount = value;
- NotifyOfPropertyChange(nameof(Monitor2SlotCount));
- }
- }
- private int _sDDummySlotCount = 0;
- public int SDDummySlotCount
- {
- get => _sDDummySlotCount;
- set
- {
- _sDDummySlotCount = value;
- NotifyOfPropertyChange(nameof(SDDummySlotCount));
- }
- }
- private int _fDDummySlotCount = 0;
- public int FDDummySlotCount
- {
- get => _fDDummySlotCount;
- set
- {
- _fDDummySlotCount = value;
- NotifyOfPropertyChange(nameof(FDDummySlotCount));
- }
- }
- private int _noneSlotCount = 0;
- public int NoneSlotCount
- {
- get => _noneSlotCount;
- set
- {
- _noneSlotCount = value;
- NotifyOfPropertyChange(nameof(NoneSlotCount));
- }
- }
- private bool _isSelectOnePiece=true;
- public bool IsSelectOnePiece
- {
- get => _isSelectOnePiece;
- set
- {
- _isSelectOnePiece = value;
- NotifyOfPropertyChange(nameof(IsSelectOnePiece));
- }
- }
- public void SlotSelectTypeChecked(string cmd)
- {
- switch (cmd)
- {
- case "Zone":
- IsSelectOnePiece = false;
- break;
- case "1Piece":
- IsSelectOnePiece = true;
- break;
- default:
- break;
- }
- }
- public ObservableCollection<string> listBoatWafers { get; set; } = new ObservableCollection<string>();
- public RecipeFormatBuilder ColumnBuilder { get; set; }
- public RecipeLayoutBoatMapViewModel(string strPrefixPath, string strName, RecipeFormatBuilder columnBuilder, string permission = "")
- {
- WaferNumberAll = (int)QueryDataClient.Instance.Service.GetConfig("Boat.SlotCount");
- _cassetteSlotCount = (int)QueryDataClient.Instance.Service.GetConfig("System.CassetteSlotCount");
- ColumnBuilder = columnBuilder;
- LoadData(strPrefixPath, strName, permission);
- ProductPositionAuto = NormalEntity.ProductPosition == "Auto";
- ProductPositionSlot = NormalEntity.ProductPosition == "Slot";
- MonitorPositionAuto = NormalEntity.MonitorPosition == "Auto";
- MonitorPositionSlot = NormalEntity.MonitorPosition == "Slot";
- NormalEntity.ProductPosition = "Slot";
- NormalEntity.MonitorPosition = "Slot";
- NormalEntity.DummyLowerSlot = "0";
- NormalEntity.DummyUpperSlot = "0";
- NormalEntity.CenteringSlotPosition = "0";
- SpaceSlotEnabled = ProductPositionSlot || MonitorPositionSlot;
- }
- private void LoadData(string strPrefixPath, string strName, string permission)
- {
- CurrentRecipe.Clear();
- CurrentRecipe.PrefixPath = strPrefixPath;
- CurrentRecipe.Name = strName;
- CurrentRecipe.RecipePermission = permission;
- var recipeContent = _recipeProvider.LoadRecipe(strPrefixPath, strName);
- if (string.IsNullOrEmpty(recipeContent))
- {
- System.Windows.MessageBox.Show($"{CurrentRecipe.PrefixPath}\\{CurrentRecipe.Name} is empty, please confirm the file is valid.");
- return;
- }
- CurrentRecipe.RecipeChamberType = "OriginChamber";
- CurrentRecipe.InitData(CurrentRecipe.PrefixPath, CurrentRecipe.Name, recipeContent, ColumnBuilder.Configs, "PM1");
- if (CurrentRecipe.ExpertSteps.Count == 0 || CurrentRecipe.ExpertSteps[0].Items.Count != WaferNumberAll)
- {
- CurrentRecipe.ExpertSteps.Clear();
- RecipeLayoutEntityExpert expert = new RecipeLayoutEntityExpert();
- CurrentRecipe.ExpertSteps.Add(expert);
- for (int i = 0; i < WaferNumberAll; i++)
- {
- BoatWaferItem item = new BoatWaferItem() { Slot = i + 1, Description = $"" };
- CurrentRecipe.ExpertSteps[0].Items.Add(item);
- }
- }
- if (CurrentRecipe.NormalSteps.Count == 0 || CurrentRecipe.ExpertSteps[0].Items.Count <= 0)
- {
- RecipeLayoutEntityNormal normal = new RecipeLayoutEntityNormal();
- CurrentRecipe.NormalSteps.Add(normal);
- }
- }
- protected override void OnActivate()
- {
- base.OnActivate();
- RefreshBoatWafers();
- }
- private int oldCurrentItemIndex;
- private bool firstSelectCurrentItem = false;
- private SlotType oldSlotType = SlotType.Space;
- public void SelecteSlot()
- {
- if (IsSelectOnePiece)
- {
- SelecteOneSlot();
- }
- else
- {
- SelecteMoreSlot();
- }
- }
- private void SelecteOneSlot()
- {
- switch (SelectSlotType)
- {
- case SlotType.P:
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Add", NormalEntity.ProductSlotNo, currentItemIndex);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, currentItemIndex);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, currentItemIndex);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, currentItemIndex);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, currentItemIndex);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex-1].BkColor = _PBk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "PD";
- break;
- case SlotType.M1:
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Add", NormalEntity.Monitor1SlotNo, currentItemIndex);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, currentItemIndex);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, currentItemIndex);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, currentItemIndex);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, currentItemIndex);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _M1Bk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "M1";
- break;
- case SlotType.M2:
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Add", NormalEntity.Monitor2SlotNo, currentItemIndex);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, currentItemIndex);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, currentItemIndex);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, currentItemIndex);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, currentItemIndex);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _M2Bk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "M2";
- break;
- case SlotType.SD:
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Add", NormalEntity.SDDummySlotNo, currentItemIndex);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, currentItemIndex);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, currentItemIndex);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, currentItemIndex);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, currentItemIndex);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, currentItemIndex);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _SDBk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "SD";
- break;
- case SlotType.FD:
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Add", NormalEntity.FDDummySlotNo, currentItemIndex);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, currentItemIndex);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, currentItemIndex);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, currentItemIndex);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, currentItemIndex);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _FDBk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "FD";
- break;
- case SlotType.Space:
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, currentItemIndex);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, currentItemIndex);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, currentItemIndex);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, currentItemIndex);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, currentItemIndex);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _DefaultdBk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "----";
- break;
- }
- oldSlotType = SelectSlotType;
- oldCurrentItemIndex = currentItemIndex;
- this.RefreshBoatWafers();
- }
- private void SelecteMoreSlot()
- {
- List<string> listWafers = QueryDataClient.Instance.Service.GetLayoutRecipeContent(CurrentRecipe.GetXmlString(), WaferNumberAll.ToString(), _cassetteSlotCount.ToString());
- int fristValue = currentItemIndex < oldCurrentItemIndex ? currentItemIndex : oldCurrentItemIndex;
- int endValue = currentItemIndex < oldCurrentItemIndex ? oldCurrentItemIndex : currentItemIndex;
- List<string> tempWafers = new List<string>();
- if (currentItemIndex > oldCurrentItemIndex)
- {
- tempWafers = listWafers.TakeWhile((n, index) => index < endValue).SkipWhile((n, index) => index < fristValue).ToList();
- }
- else
- {
- tempWafers = listWafers.TakeWhile((n, index) => index < endValue - 1).SkipWhile((n, index) => index < fristValue - 1).ToList();
- }
- if (firstSelectCurrentItem == true && tempWafers.Count>1)//tempWafers.Where(x => !string.IsNullOrEmpty(x)).Count() == 0 && firstSelectCurrentItem == true
- {
- for (int i = fristValue; i < endValue; i++)
- {
- switch (SelectSlotType)
- {
- case SlotType.P:
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Add", NormalEntity.ProductSlotNo, i);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _PBk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "PD";
- break;
- case SlotType.M1:
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Add", NormalEntity.Monitor1SlotNo, i);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _M1Bk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "M1";
- break;
- case SlotType.M2:
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Add", NormalEntity.Monitor2SlotNo, i);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _M2Bk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "M2";
- break;
- case SlotType.SD:
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Add", NormalEntity.SDDummySlotNo, i);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _SDBk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "SD";
- break;
- case SlotType.FD:
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Add", NormalEntity.FDDummySlotNo, i);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _FDBk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "FD";
- break;
- case SlotType.Space:
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _DefaultdBk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "----";
- break;
- }
- }
- firstSelectCurrentItem = false;
- }
- else
- {
- switch (SelectSlotType)
- {
- case SlotType.P:
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Add", NormalEntity.ProductSlotNo, currentItemIndex);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, currentItemIndex);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, currentItemIndex);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, currentItemIndex);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, currentItemIndex);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _PBk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "PD";
- break;
- case SlotType.M1:
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Add", NormalEntity.Monitor1SlotNo, currentItemIndex);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, currentItemIndex);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, currentItemIndex);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, currentItemIndex);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, currentItemIndex);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _M1Bk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "M1";
- break;
- case SlotType.M2:
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, currentItemIndex);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Add", NormalEntity.Monitor2SlotNo, currentItemIndex);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, currentItemIndex);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, currentItemIndex);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, currentItemIndex);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _M2Bk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "M2";
- break;
- case SlotType.SD:
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Add", NormalEntity.SDDummySlotNo, currentItemIndex);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, currentItemIndex);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, currentItemIndex);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, currentItemIndex);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, currentItemIndex);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _SDBk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "SD";
- break;
- case SlotType.FD:
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Add", NormalEntity.FDDummySlotNo, currentItemIndex);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, currentItemIndex);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, currentItemIndex);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, currentItemIndex);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, currentItemIndex);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _FDBk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "FD";
- break;
- case SlotType.Space:
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, currentItemIndex);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, currentItemIndex);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, currentItemIndex);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, currentItemIndex);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, currentItemIndex);
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].BkColor = _DefaultdBk;
- CurrentRecipe.ExpertSteps[0].Items[currentItemIndex - 1].Description = "----";
- break;
- }
- firstSelectCurrentItem = true;
- }
- oldCurrentItemIndex = currentItemIndex;
- this.RefreshBoatWafers();
- }
- public void SetCommand(object obj)
- {
- WindowManager wm = new WindowManager();
- switch (obj.ToString())
- {
- case "AllClear":
- int index = 0;
- foreach (var item in BoatWafers)
- {
- CurrentRecipe.ExpertSteps[0].Items[index].BkColor = _DefaultdBk;
- CurrentRecipe.ExpertSteps[0].Items[index].Description = "----";
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, index + 1);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, index + 1);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, index + 1);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, index + 1);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, index + 1);
- index++;
- }
- oldSlotType = SlotType.Space;
- break;
- case "Wafer Charge Rule":
- RecipeWaferChargeRuleViewModel viewWaferChargeRule = new RecipeWaferChargeRuleViewModel();
- viewWaferChargeRule.NormalEntity = NormalEntity;
- wm.ShowDialogWithTitle(viewWaferChargeRule, null, obj.ToString());
- break;
- case "SetAll":
- for (int i = 0; i < BoatWafers.Count; i++)
- {
- switch (SelectSlotType)
- {
- case SlotType.P:
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Add", NormalEntity.ProductSlotNo, i + 1);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i + 1);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i + 1);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i + 1);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i + 1);
- CurrentRecipe.ExpertSteps[0].Items[i].Description = "PD";
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _PBk;
- break;
- case SlotType.M1:
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Add", NormalEntity.Monitor1SlotNo, i + 1);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i + 1);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i + 1);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i + 1);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i + 1);
- CurrentRecipe.ExpertSteps[0].Items[i].Description = "M1";
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _M1Bk;
- break;
- case SlotType.M2:
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i + 1);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Add", NormalEntity.Monitor2SlotNo, i + 1);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i + 1);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i + 1);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i + 1);
- CurrentRecipe.ExpertSteps[0].Items[i].Description = "M2";
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _M2Bk;
- break;
- case SlotType.SD:
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Add", NormalEntity.SDDummySlotNo, i + 1);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i + 1);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i + 1);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i + 1);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i + 1);
- CurrentRecipe.ExpertSteps[0].Items[i].Description = "SD";
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _SDBk;
- break;
- case SlotType.FD:
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Add", NormalEntity.FDDummySlotNo, i + 1);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i + 1);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i + 1);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i + 1);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i + 1);
- CurrentRecipe.ExpertSteps[0].Items[i].Description = "FD";
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _FDBk;
- break;
- case SlotType.Space:
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i + 1);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i + 1);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i + 1);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i + 1);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i + 1);
- CurrentRecipe.ExpertSteps[0].Items[i].Description = "----";
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _DefaultdBk;
- break;
- default:
- break;
- }
- }
- break;
- case "Set":
- if (fromIndex != 0 && toIndex != 0 && fromIndex <= toIndex)
- {
- for (int i = fromIndex - 1; i < toIndex; i++)
- {
- // BoatWafers[i].Description = SelectSlotType.ToString();
- switch (SelectSlotType)
- {
- case SlotType.P:
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Add", NormalEntity.ProductSlotNo, i);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i);
- CurrentRecipe.ExpertSteps[0].Items[i].Description = "PD";
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _PBk;
- break;
- case SlotType.M1:
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Add", NormalEntity.Monitor1SlotNo, i);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i);
- CurrentRecipe.ExpertSteps[0].Items[i].Description = "M1";
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _M1Bk;
- break;
- case SlotType.M2:
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Add", NormalEntity.Monitor2SlotNo, i);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i);
- CurrentRecipe.ExpertSteps[0].Items[i].Description = "M2";
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _M2Bk;
- break;
- case SlotType.SD:
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Add", NormalEntity.SDDummySlotNo, i);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i);
- CurrentRecipe.ExpertSteps[0].Items[i].Description = "SD";
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _SDBk;
- break;
- case SlotType.FD:
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Add", NormalEntity.FDDummySlotNo, i);
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i);
- CurrentRecipe.ExpertSteps[0].Items[i].Description = "FD";
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _FDBk;
- break;
- case SlotType.Space:
- NormalEntity.ProductSlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.ProductSlotNo, i);
- NormalEntity.Monitor1SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor1SlotNo, i);
- NormalEntity.Monitor2SlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.Monitor2SlotNo, i);
- NormalEntity.SDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.SDDummySlotNo, i);
- NormalEntity.FDDummySlotNo = ProccessSlotNoPositionString("Delete", NormalEntity.FDDummySlotNo, i);
- CurrentRecipe.ExpertSteps[0].Items[i].Description = "----";
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _DefaultdBk;
- break;
- default:
- break;
- }
- }
- }
- break;
- }
- this.RefreshBoatWafers();
- }
- private int fromIndex = 0;
- private int toIndex = 0;
- public void BoatWafersTextChanged(object sender)
- {
- //if (sender is TextBox)
- //{
- // var boatWaferTxt = sender as TextBox;
- // switch (boatWaferTxt.Name)
- // {
- // case "TxtFrom":
- // fromIndex = int.Parse(boatWaferTxt.Text);
- // break;
- // case "TxtTo":
- // toIndex = int.Parse(boatWaferTxt.Text);
- // break;
- // default:
- // break;
- // }
- //}
- }
- private string ProccessSlotNoPositionString(string strType, string str, int iCurrentItemIndex)
- {
- if (iCurrentItemIndex <= 0) return str;
- if (string.IsNullOrEmpty(str))
- {
- if (strType == "Add")
- { return iCurrentItemIndex.ToString(); }
- else if (strType == "Delete")
- {
- return str;
- }
- }
- List<string> selectIndexNoStr = new List<string>(str.Split(','));
- List<int> selectIndex = new List<int>();
- selectIndexNoStr.ForEach(x =>
- {
- if (selectIndex.Where(value => value == int.Parse(x)).Count() == 0)
- {
- selectIndex.Add(int.Parse(x));
- }
- }
- );
- if (strType == "Add")
- {
- if (selectIndex.Where(value => value == iCurrentItemIndex).Count() == 0)
- {
- selectIndex.Add(iCurrentItemIndex);
- }
- }
- else
- {
- if (selectIndex.Where(value => value == iCurrentItemIndex).Count() != 0)
- {
- selectIndex.Remove(iCurrentItemIndex);
- }
- }
- selectIndex.Sort();
- return string.Join(",", selectIndex);
- }
- public void RefreshBoatWafers()
- {
- List<string> listWafers = QueryDataClient.Instance.Service.GetLayoutRecipeContent(CurrentRecipe.GetXmlString(), WaferNumberAll.ToString(), _cassetteSlotCount.ToString());
- WaferNumberP = WaferNumberM = WaferNumberSD = WaferNumberED = 0;
- if (listWafers.Count <= 0 || (CurrentRecipe.ExpertSteps.Count <= 0 && CurrentRecipe.NormalSteps.Count <= 0)) return;
- CurrentRecipe.NormalSteps[0].ProductSlotNo = string.Empty;
- CurrentRecipe.NormalSteps[0].Monitor1SlotNo = string.Empty;
- for (int i = 0; i < listWafers.Count; i++)
- {
- CurrentRecipe.ExpertSteps[0].Items[i].Slot = i + 1;
- CurrentRecipe.ExpertSteps[0].Items[i].Description = listWafers[i].ToString() == "" ? "----" : listWafers[i].ToString();
- switch (listWafers[i].ToString())
- {
- case "PD":
- CurrentRecipe.NormalSteps[0].ProductSlotNo = ProccessSlotNoPositionString("Add", CurrentRecipe.NormalSteps[0].ProductSlotNo, i + 1);
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _PBk;
- WaferNumberP++;
- break;
- case "M1":
- CurrentRecipe.NormalSteps[0].Monitor1SlotNo = ProccessSlotNoPositionString("Add", CurrentRecipe.NormalSteps[0].Monitor1SlotNo, i + 1);
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _M1Bk;
- WaferNumberM++;
- break;
- case "M2":
- CurrentRecipe.NormalSteps[0].Monitor2SlotNo = ProccessSlotNoPositionString("Add", CurrentRecipe.NormalSteps[0].Monitor2SlotNo, i + 1);
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _M2Bk;
- WaferNumberM++;
- break;
- case "SD":
- CurrentRecipe.NormalSteps[0].SDDummySlotNo = ProccessSlotNoPositionString("Add", CurrentRecipe.NormalSteps[0].SDDummySlotNo, i + 1);
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _SDBk;
- WaferNumberSD++;
- break;
- case "FD":
- CurrentRecipe.NormalSteps[0].FDDummySlotNo = ProccessSlotNoPositionString("Add", CurrentRecipe.NormalSteps[0].FDDummySlotNo, i + 1);
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _FDBk;
- WaferNumberED++;
- break;
- default:
- CurrentRecipe.ExpertSteps[0].Items[i].BkColor = _DefaultdBk;
- break;
- }
- }
- SDDummySlotCount = listWafers.Where(x => x == "SD").Count();
- FDDummySlotCount = listWafers.Where(x => x == "FD").Count();
- ProductSlotCount = listWafers.Where(x => x == "PD").Count();
- Monitor1SlotCount = listWafers.Where(x => x == "M1").Count();
- Monitor2SlotCount = listWafers.Where(x => x == "M2").Count();
- NoneSlotCount = listWafers.Where(x => x == "----" || string.IsNullOrEmpty(x)).Count();
- listBoatWafers.Clear();
- listWafers.ForEach(x => listBoatWafers.Add(x)); ;
- }
- public void EndEdit()
- {
- //if (string.IsNullOrEmpty(CurrentRecipe.NormalSteps[0].DummyLowerSlot))
- //{
- // DialogBox.ShowWarning("DummyLowerSlot is empty,can not save!");
- // return;
- //}
- //if (string.IsNullOrEmpty(CurrentRecipe.NormalSteps[0].DummyUpperSlot))
- //{
- // DialogBox.ShowWarning("DummyUpperSlot is empty,can not save!");
- // return;
- //}
- //if (string.IsNullOrEmpty(CurrentRecipe.NormalSteps[0].CenteringSlotPosition))
- //{
- // DialogBox.ShowWarning("CenteringSlotPosition is empty,can not save!");
- // return;
- //}
- //if (string.IsNullOrEmpty(CurrentRecipe.NormalSteps[0].ProductPosition))
- //{
- // DialogBox.ShowWarning("ProductPosition is empty,can not save!");
- // return;
- //}
- //if (string.IsNullOrEmpty(CurrentRecipe.NormalSteps[0].MonitorPosition))
- //{
- // DialogBox.ShowWarning("MonitorPosition is empty,can not save!");
- // return;
- //}
- if (string.IsNullOrEmpty(CurrentRecipe.NormalSteps[0].WhenCassetteInBatchAreShort))
- {
- DialogBox.ShowWarning("WhenCassetteInBatchAreShort is empty,can not save!");
- return;
- }
- if (string.IsNullOrEmpty(CurrentRecipe.NormalSteps[0].WhenPWaferShort))
- {
- DialogBox.ShowWarning("WhenPWaferShort is empty,can not save!");
- return;
- }
- if (string.IsNullOrEmpty(CurrentRecipe.NormalSteps[0].WhenWaferInCassetteAreShort))
- {
- DialogBox.ShowWarning("WhenWaferInCassetteAreShort is empty,can not save!");
- return;
- }
- if (string.IsNullOrEmpty(CurrentRecipe.NormalSteps[0].WhenEDAreShort))
- {
- DialogBox.ShowWarning("WhenEDAreShort is empty,can not save!");
- return;
- }
- if (string.IsNullOrEmpty(CurrentRecipe.NormalSteps[0].SDRule))
- {
- DialogBox.ShowWarning("SDRule is empty,can not save!");
- return;
- }
- if (string.IsNullOrEmpty(CurrentRecipe.NormalSteps[0].RuleOfSpaceInBoat))
- {
- DialogBox.ShowWarning("RuleOfSpaceInBoat is empty,can not save!");
- return;
- }
- RecipePermissionSelectViewModel dialog = new RecipePermissionSelectViewModel("Save recipe and permission", CurrentRecipe.RecipePermission);
- WindowManager wm = new WindowManager();
- bool? dialogReturn = wm.ShowDialog(dialog);
- if (!dialogReturn.HasValue || !dialogReturn.Value)
- return;
- CurrentRecipe.IsSavedDesc = false;
- this.CurrentRecipe.Revisor = BaseApp.Instance.UserContext.LoginName;
- this.CurrentRecipe.ReviseTime = DateTime.Now;
- //this.CurrentRecipe.RecipeLevel = this.LevelDisplay;
- this.CurrentRecipe.RecipePermission = dialog.RecipePermission;
- this._recipeProvider.SaveRecipe(CurrentRecipe.PrefixPath, CurrentRecipe.Name, CurrentRecipe.GetXmlString());
- ((Window)GetView()).DialogResult = true;
- }
- public void CancelClick()
- {
- if (DialogBox.ShowDialog(DialogButton.Yes | DialogButton.No, DialogType.CONFIRM, " You confirm that you want to unsave the recipe and exit the interface?") == DialogButton.No)
- return;
- ((Window)GetView()).Close();
- }
- public void SaveClick()
- {
- EndEdit();
- }
- public void RdoChecked(string cmd)
- {
- SlotType slotType = SlotType.Space;
- Enum.TryParse(cmd, out slotType);
- SelectSlotType = slotType;
- }
- }
- public enum SlotType
- {
- SD,
- FD,
- P,
- M1,
- M2,
- Space
- }
- public class BoatWaferItem : NotifiableItem
- {
- private int _slot;
- public int Slot
- {
- get => _slot;
- set
- {
- _slot = value;
- InvokePropertyChanged("Slot");
- }
- }
- private string _description;
- public string Description
- {
- get => _description;
- set
- {
- _description = value;
- InvokePropertyChanged("Description");
- }
- }
- private bool _hasWafer;
- public bool HasWafer
- {
- get => _hasWafer;
- set
- {
- _hasWafer = value;
- InvokePropertyChanged("HasWafer");
- }
- }
- private bool _noWafer;
- public bool NoWafer
- {
- get => _noWafer;
- set
- {
- _noWafer = value;
- InvokePropertyChanged("NoWafer");
- }
- }
- private SolidColorBrush _bkColor;
- public SolidColorBrush BkColor
- {
- get => _bkColor;
- set
- {
- _bkColor = value;
- InvokePropertyChanged("BkColor");
- }
- }
- }
- }
|