WaferMapSelectedViewModel.cs 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749
  1. using Aitex.Core.Common;
  2. using Aitex.Core.Util;
  3. using Caliburn.Micro;
  4. using Caliburn.Micro.Core;
  5. using FurnaceUI.Models;
  6. using MECF.Framework.Common.DataCenter;
  7. using MECF.Framework.Common.SubstrateTrackings;
  8. using OpenSEMI.ClientBase;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Text.RegularExpressions;
  12. using System.Windows;
  13. using System.Windows.Input;
  14. namespace FurnaceUI.Views.Jobs
  15. {
  16. public class WaferMapSelectedViewModel : FurnaceModuleUIViewModelBase
  17. {
  18. private string _carrierID;
  19. public string CarrierID
  20. {
  21. get => _carrierID;
  22. set
  23. {
  24. _carrierID = value;
  25. NotifyOfPropertyChange(nameof(CarrierID));
  26. }
  27. }
  28. private string _waferCount = "0";
  29. public string WaferCount
  30. {
  31. get => _waferCount;
  32. set
  33. {
  34. _waferCount = value;
  35. NotifyOfPropertyChange(nameof(WaferCount));
  36. }
  37. }
  38. private string _waferType;
  39. public string WaferType
  40. {
  41. get => _waferType;
  42. set
  43. {
  44. _waferType = value;
  45. NotifyOfPropertyChange(nameof(WaferType));
  46. }
  47. }
  48. private string _waferNo;
  49. public string WaferNo
  50. {
  51. get => _waferNo;
  52. set
  53. {
  54. _waferNo = value;
  55. NotifyOfPropertyChange(nameof(WaferNo));
  56. }
  57. }
  58. private bool _isExistChecked = true;
  59. public bool IsExistChecked
  60. {
  61. get => _isExistChecked;
  62. set
  63. {
  64. _isExistChecked = value;
  65. NotifyOfPropertyChange(nameof(IsExistChecked));
  66. }
  67. }
  68. private bool _isNoneChecked = true;
  69. public bool IsNoneChecked
  70. {
  71. get => _isNoneChecked;
  72. set
  73. {
  74. _isNoneChecked = value;
  75. NotifyOfPropertyChange(nameof(IsNoneChecked));
  76. }
  77. }
  78. private string _slotMap;
  79. public string SlotMap
  80. {
  81. get => _slotMap;
  82. set
  83. {
  84. _slotMap = value;
  85. NotifyOfPropertyChange(nameof(SlotMap));
  86. }
  87. }
  88. private bool _isSelectedSlot1 = false;
  89. public bool IsSelectedSlot1 { get => _isSelectedSlot1; set { _isSelectedSlot1 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot1)); } }
  90. private bool _isSelectedSlot2 = false;
  91. public bool IsSelectedSlot2 { get => _isSelectedSlot2; set { _isSelectedSlot2 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot2)); } }
  92. private bool _isSelectedSlot3 = false;
  93. public bool IsSelectedSlot3 { get => _isSelectedSlot3; set { _isSelectedSlot3 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot3)); } }
  94. private bool _isSelectedSlot4 = false;
  95. public bool IsSelectedSlot4 { get => _isSelectedSlot4; set { _isSelectedSlot4 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot4)); } }
  96. private bool _isSelectedSlot5 = false;
  97. public bool IsSelectedSlot5 { get => _isSelectedSlot5; set { _isSelectedSlot5 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot5)); } }
  98. private bool _isSelectedSlot6 = false;
  99. public bool IsSelectedSlot6 { get => _isSelectedSlot6; set { _isSelectedSlot6 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot6)); } }
  100. private bool _isSelectedSlot7 = false;
  101. public bool IsSelectedSlot7 { get => _isSelectedSlot7; set { _isSelectedSlot7 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot7)); } }
  102. private bool _isSelectedSlot8 = false;
  103. public bool IsSelectedSlot8 { get => _isSelectedSlot8; set { _isSelectedSlot8 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot8)); } }
  104. private bool _isSelectedSlot9 = false;
  105. public bool IsSelectedSlot9 { get => _isSelectedSlot9; set { _isSelectedSlot9 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot9)); } }
  106. private bool _isSelectedSlot10 = false;
  107. public bool IsSelectedSlot10 { get => _isSelectedSlot10; set { _isSelectedSlot10 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot10)); } }
  108. private bool _isSelectedSlot11 = false;
  109. public bool IsSelectedSlot11 { get => _isSelectedSlot11; set { _isSelectedSlot11 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot11)); } }
  110. private bool _isSelectedSlot12 = false;
  111. public bool IsSelectedSlot12 { get => _isSelectedSlot12; set { _isSelectedSlot12 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot12)); } }
  112. private bool _isSelectedSlot13 = false;
  113. public bool IsSelectedSlot13 { get => _isSelectedSlot13; set { _isSelectedSlot13 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot13)); } }
  114. private bool _isSelectedSlot14 = false;
  115. public bool IsSelectedSlot14 { get => _isSelectedSlot14; set { _isSelectedSlot14 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot14)); } }
  116. private bool _isSelectedSlot15 = false;
  117. public bool IsSelectedSlot15 { get => _isSelectedSlot15; set { _isSelectedSlot15 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot15)); } }
  118. private bool _isSelectedSlot16 = false;
  119. public bool IsSelectedSlot16 { get => _isSelectedSlot16; set { _isSelectedSlot16 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot16)); } }
  120. private bool _isSelectedSlot17 = false;
  121. public bool IsSelectedSlot17 { get => _isSelectedSlot17; set { _isSelectedSlot17 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot17)); } }
  122. private bool _isSelectedSlot18 = false;
  123. public bool IsSelectedSlot18 { get => _isSelectedSlot18; set { _isSelectedSlot18 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot18)); } }
  124. private bool _isSelectedSlot19 = false;
  125. public bool IsSelectedSlot19 { get => _isSelectedSlot19; set { _isSelectedSlot19 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot19)); } }
  126. private bool _isSelectedSlot20 = false;
  127. public bool IsSelectedSlot20 { get => _isSelectedSlot20; set { _isSelectedSlot20 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot20)); } }
  128. private bool _isSelectedSlot21 = false;
  129. public bool IsSelectedSlot21 { get => _isSelectedSlot21; set { _isSelectedSlot21 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot21)); } }
  130. private bool _isSelectedSlot22 = false;
  131. public bool IsSelectedSlot22 { get => _isSelectedSlot22; set { _isSelectedSlot22 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot22)); } }
  132. private bool _isSelectedSlot23 = false;
  133. public bool IsSelectedSlot23 { get => _isSelectedSlot23; set { _isSelectedSlot23 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot23)); } }
  134. private bool _isSelectedSlot24 = false;
  135. public bool IsSelectedSlot24 { get => _isSelectedSlot24; set { _isSelectedSlot24 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot24)); } }
  136. private bool _isSelectedSlot25 = false;
  137. public bool IsSelectedSlot25 { get => _isSelectedSlot25; set { _isSelectedSlot25 = value; NotifyOfPropertyChange(nameof(IsSelectedSlot25)); } }
  138. private bool _isEnabledSlot1 = false; public bool IsEnabledSlot1 { get => _isEnabledSlot1; set { _isEnabledSlot1 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot1)); } }
  139. private bool _isEnabledSlot2 = false; public bool IsEnabledSlot2 { get => _isEnabledSlot2; set { _isEnabledSlot2 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot2)); } }
  140. private bool _isEnabledSlot3 = false; public bool IsEnabledSlot3 { get => _isEnabledSlot3; set { _isEnabledSlot3 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot3)); } }
  141. private bool _isEnabledSlot4 = false; public bool IsEnabledSlot4 { get => _isEnabledSlot4; set { _isEnabledSlot4 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot4)); } }
  142. private bool _isEnabledSlot5 = false; public bool IsEnabledSlot5 { get => _isEnabledSlot5; set { _isEnabledSlot5 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot5)); } }
  143. private bool _isEnabledSlot6 = false; public bool IsEnabledSlot6 { get => _isEnabledSlot6; set { _isEnabledSlot6 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot6)); } }
  144. private bool _isEnabledSlot7 = false; public bool IsEnabledSlot7 { get => _isEnabledSlot7; set { _isEnabledSlot7 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot7)); } }
  145. private bool _isEnabledSlot8 = false; public bool IsEnabledSlot8 { get => _isEnabledSlot8; set { _isEnabledSlot8 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot8)); } }
  146. private bool _isEnabledSlot9 = false; public bool IsEnabledSlot9 { get => _isEnabledSlot9; set { _isEnabledSlot9 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot9)); } }
  147. private bool _isEnabledSlot10 = false; public bool IsEnabledSlot10 { get => _isEnabledSlot10; set { _isEnabledSlot10 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot10)); } }
  148. private bool _isEnabledSlot11 = false; public bool IsEnabledSlot11 { get => _isEnabledSlot11; set { _isEnabledSlot11 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot11)); } }
  149. private bool _isEnabledSlot12 = false; public bool IsEnabledSlot12 { get => _isEnabledSlot12; set { _isEnabledSlot12 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot12)); } }
  150. private bool _isEnabledSlot13 = false; public bool IsEnabledSlot13 { get => _isEnabledSlot13; set { _isEnabledSlot13 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot13)); } }
  151. private bool _isEnabledSlot14 = false; public bool IsEnabledSlot14 { get => _isEnabledSlot14; set { _isEnabledSlot14 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot14)); } }
  152. private bool _isEnabledSlot15 = false; public bool IsEnabledSlot15 { get => _isEnabledSlot15; set { _isEnabledSlot15 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot15)); } }
  153. private bool _isEnabledSlot16 = false; public bool IsEnabledSlot16 { get => _isEnabledSlot16; set { _isEnabledSlot16 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot16)); } }
  154. private bool _isEnabledSlot17 = false; public bool IsEnabledSlot17 { get => _isEnabledSlot17; set { _isEnabledSlot17 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot17)); } }
  155. private bool _isEnabledSlot18 = false; public bool IsEnabledSlot18 { get => _isEnabledSlot18; set { _isEnabledSlot18 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot18)); } }
  156. private bool _isEnabledSlot19 = false; public bool IsEnabledSlot19 { get => _isEnabledSlot19; set { _isEnabledSlot19 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot19)); } }
  157. private bool _isEnabledSlot20 = false; public bool IsEnabledSlot20 { get => _isEnabledSlot20; set { _isEnabledSlot20 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot20)); } }
  158. private bool _isEnabledSlot21 = false; public bool IsEnabledSlot21 { get => _isEnabledSlot21; set { _isEnabledSlot21 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot21)); } }
  159. private bool _isEnabledSlot22 = false; public bool IsEnabledSlot22 { get => _isEnabledSlot22; set { _isEnabledSlot22 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot22)); } }
  160. private bool _isEnabledSlot23 = false; public bool IsEnabledSlot23 { get => _isEnabledSlot23; set { _isEnabledSlot23 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot23)); } }
  161. private bool _isEnabledSlot24 = false; public bool IsEnabledSlot24 { get => _isEnabledSlot24; set { _isEnabledSlot24 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot24)); } }
  162. private bool _isEnabledSlot25 = false; public bool IsEnabledSlot25 { get => _isEnabledSlot25; set { _isEnabledSlot25 = value; NotifyOfPropertyChange(nameof(IsEnabledSlot25)); } }
  163. public Aitex.Core.Common.WaferInfo[] Wafers { get; set; }
  164. protected override void OnActivate()
  165. {
  166. base.OnActivate();
  167. for (int i = 0; i < (int)QueryDataClient.Instance.Service.GetConfig("System.CassetteSlotCount"); i++)
  168. {
  169. SlotMap += 0;
  170. }
  171. SetWaferIsEnabled();
  172. AnalysisStrSlots();
  173. }
  174. public string StrSlots { get; set; } = "";
  175. public void EditMap()
  176. {
  177. var windowManager = IoC.Get<IWindowManager>();
  178. SpecifiedMapViewModel specifiedMapViewModel = new SpecifiedMapViewModel();
  179. specifiedMapViewModel.WaferType = WaferType;
  180. if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(specifiedMapViewModel, null, "Slot Map Info"))
  181. {
  182. SlotMap = specifiedMapViewModel.SlotMap;
  183. WaferCount = Regex.Matches(SlotMap, "1").Count.ToString();
  184. if (SlotMap.Contains("1"))
  185. IsExistChecked = true;
  186. else
  187. IsNoneChecked = !IsExistChecked;
  188. }
  189. }
  190. private void SetWaferIsEnabled()
  191. {
  192. if (Wafers != null && Wafers.Length > 0)
  193. {
  194. foreach (var item in Wafers)
  195. {
  196. switch (item.WaferID)
  197. {
  198. case "1":
  199. if (item.Status == WaferStatus.Normal) IsEnabledSlot1 = true;
  200. break;
  201. case "2":
  202. if (item.Status == WaferStatus.Normal) IsEnabledSlot2 = true;
  203. break;
  204. case "3":
  205. if (item.Status == WaferStatus.Normal) IsEnabledSlot3 = true;
  206. break;
  207. case "4":
  208. if (item.Status == WaferStatus.Normal) IsEnabledSlot4 = true;
  209. break;
  210. case "5":
  211. if (item.Status == WaferStatus.Normal) IsEnabledSlot5 = true;
  212. break;
  213. case "6":
  214. if (item.Status == WaferStatus.Normal) IsEnabledSlot6 = true;
  215. break;
  216. case "7":
  217. if (item.Status == WaferStatus.Normal) IsEnabledSlot7 = true;
  218. break;
  219. case "8":
  220. if (item.Status == WaferStatus.Normal) IsEnabledSlot8 = true;
  221. break;
  222. case "9":
  223. if (item.Status == WaferStatus.Normal) IsEnabledSlot9 = true;
  224. break;
  225. case "10":
  226. if (item.Status == WaferStatus.Normal) IsEnabledSlot10 = true;
  227. break;
  228. case "11":
  229. if (item.Status == WaferStatus.Normal) IsEnabledSlot11 = true;
  230. break;
  231. case "12":
  232. if (item.Status == WaferStatus.Normal) IsEnabledSlot12 = true;
  233. break;
  234. case "13":
  235. if (item.Status == WaferStatus.Normal) IsEnabledSlot13 = true;
  236. break;
  237. case "14":
  238. if (item.Status == WaferStatus.Normal) IsEnabledSlot14 = true;
  239. break;
  240. case "15":
  241. if (item.Status == WaferStatus.Normal) IsEnabledSlot15 = true;
  242. break;
  243. case "16":
  244. if (item.Status == WaferStatus.Normal) IsEnabledSlot16 = true;
  245. break;
  246. case "17":
  247. if (item.Status == WaferStatus.Normal) IsEnabledSlot17 = true;
  248. break;
  249. case "18":
  250. if (item.Status == WaferStatus.Normal) IsEnabledSlot18 = true;
  251. break;
  252. case "19":
  253. if (item.Status == WaferStatus.Normal) IsEnabledSlot19 = true;
  254. break;
  255. case "20":
  256. if (item.Status == WaferStatus.Normal) IsEnabledSlot20 = true;
  257. break;
  258. case "21":
  259. if (item.Status == WaferStatus.Normal) IsEnabledSlot21 = true;
  260. break;
  261. case "22":
  262. if (item.Status == WaferStatus.Normal) IsEnabledSlot22 = true;
  263. break;
  264. case "23":
  265. if (item.Status == WaferStatus.Normal) IsEnabledSlot23 = true;
  266. break;
  267. case "24":
  268. if (item.Status == WaferStatus.Normal) IsEnabledSlot24 = true;
  269. break;
  270. case "25":
  271. if (item.Status == WaferStatus.Normal) IsEnabledSlot25 = true;
  272. break;
  273. default:
  274. break;
  275. }
  276. }
  277. }
  278. }
  279. private void AnalysisStrSlots()
  280. {
  281. if (!string.IsNullOrEmpty(StrSlots))
  282. {
  283. var listSlots = StrSlots.Split('/');
  284. AllClearCmd();
  285. foreach (var item in listSlots)
  286. {
  287. switch (item)
  288. {
  289. case "1":
  290. if (IsEnabledSlot1) IsSelectedSlot1 = true;
  291. break;
  292. case "2":
  293. if (IsEnabledSlot2) IsSelectedSlot2 = true;
  294. break;
  295. case "3":
  296. if (IsEnabledSlot3) IsSelectedSlot3 = true;
  297. break;
  298. case "4":
  299. if (IsEnabledSlot4) IsSelectedSlot4 = true;
  300. break;
  301. case "5":
  302. if (IsEnabledSlot5) IsSelectedSlot5 = true;
  303. break;
  304. case "6":
  305. if (IsEnabledSlot6) IsSelectedSlot6 = true;
  306. break;
  307. case "7":
  308. if (IsEnabledSlot7) IsSelectedSlot7 = true;
  309. break;
  310. case "8":
  311. if (IsEnabledSlot8) IsSelectedSlot8 = true;
  312. break;
  313. case "9":
  314. if (IsEnabledSlot9) IsSelectedSlot9 = true;
  315. break;
  316. case "10":
  317. if (IsEnabledSlot10) IsSelectedSlot10 = true;
  318. break;
  319. case "11":
  320. if (IsEnabledSlot11) IsSelectedSlot11 = true;
  321. break;
  322. case "12":
  323. if (IsEnabledSlot12) IsSelectedSlot12 = true;
  324. break;
  325. case "13":
  326. if (IsEnabledSlot13) IsSelectedSlot13 = true;
  327. break;
  328. case "14":
  329. if (IsEnabledSlot14) IsSelectedSlot14 = true;
  330. break;
  331. case "15":
  332. if (IsEnabledSlot15) IsSelectedSlot15 = true;
  333. break;
  334. case "16":
  335. if (IsEnabledSlot16) IsSelectedSlot16 = true;
  336. break;
  337. case "17":
  338. if (IsEnabledSlot17) IsSelectedSlot17 = true;
  339. break;
  340. case "18":
  341. if (IsEnabledSlot18) IsSelectedSlot18 = true;
  342. break;
  343. case "19":
  344. if (IsEnabledSlot19) IsSelectedSlot19 = true;
  345. break;
  346. case "20":
  347. if (IsEnabledSlot20) IsSelectedSlot20 = true;
  348. break;
  349. case "21":
  350. if (IsEnabledSlot21) IsSelectedSlot21 = true;
  351. break;
  352. case "22":
  353. if (IsEnabledSlot22) IsSelectedSlot22 = true;
  354. break;
  355. case "23":
  356. if (IsEnabledSlot23) IsSelectedSlot23 = true;
  357. break;
  358. case "24":
  359. if (IsEnabledSlot24) IsSelectedSlot24 = true;
  360. break;
  361. case "25":
  362. if (IsEnabledSlot25) IsSelectedSlot25 = true;
  363. break;
  364. default:
  365. break;
  366. }
  367. }
  368. }
  369. }
  370. public void WaferMapSelected(string value, object source)
  371. {
  372. switch (value)
  373. {
  374. case "1":
  375. IsSelectedSlot1 = !IsSelectedSlot1;
  376. break;
  377. case "2":
  378. IsSelectedSlot2 = !IsSelectedSlot2;
  379. break;
  380. case "3":
  381. IsSelectedSlot3 = !IsSelectedSlot3;
  382. break;
  383. case "4":
  384. IsSelectedSlot4 = !IsSelectedSlot4;
  385. break;
  386. case "5":
  387. IsSelectedSlot5 = !IsSelectedSlot5;
  388. break;
  389. case "6":
  390. IsSelectedSlot6 = !IsSelectedSlot6;
  391. break;
  392. case "7":
  393. IsSelectedSlot7 = !IsSelectedSlot7;
  394. break;
  395. case "8":
  396. IsSelectedSlot8 = !IsSelectedSlot8;
  397. break;
  398. case "9":
  399. IsSelectedSlot9 = !IsSelectedSlot9;
  400. break;
  401. case "10":
  402. IsSelectedSlot10 = !IsSelectedSlot10;
  403. break;
  404. case "11":
  405. IsSelectedSlot11 = !IsSelectedSlot11;
  406. break;
  407. case "12":
  408. IsSelectedSlot12 = !IsSelectedSlot12;
  409. break;
  410. case "13":
  411. IsSelectedSlot13 = !IsSelectedSlot13;
  412. break;
  413. case "14":
  414. IsSelectedSlot14 = !IsSelectedSlot14;
  415. break;
  416. case "15":
  417. IsSelectedSlot15 = !IsSelectedSlot15;
  418. break;
  419. case "16":
  420. IsSelectedSlot16 = !IsSelectedSlot16;
  421. break;
  422. case "17":
  423. IsSelectedSlot17 = !IsSelectedSlot17;
  424. break;
  425. case "18":
  426. IsSelectedSlot18 = !IsSelectedSlot18;
  427. break;
  428. case "19":
  429. IsSelectedSlot19 = !IsSelectedSlot19;
  430. break;
  431. case "20":
  432. IsSelectedSlot20 = !IsSelectedSlot20;
  433. break;
  434. case "21":
  435. IsSelectedSlot21 = !IsSelectedSlot21;
  436. break;
  437. case "22":
  438. IsSelectedSlot22 = !IsSelectedSlot22;
  439. break;
  440. case "23":
  441. IsSelectedSlot23 = !IsSelectedSlot23;
  442. break;
  443. case "24":
  444. IsSelectedSlot24 = !IsSelectedSlot24;
  445. break;
  446. case "25":
  447. IsSelectedSlot25 = !IsSelectedSlot25;
  448. break;
  449. default:
  450. break;
  451. }
  452. GetSelectedSlot();
  453. }
  454. private List<bool> SelectedSlots = new List<bool>();
  455. private void GetSelectedSlot()
  456. {
  457. SelectedSlots.Clear();
  458. if (IsSelectedSlot1) SelectedSlots.Add(IsSelectedSlot1);
  459. if (IsSelectedSlot2) SelectedSlots.Add(IsSelectedSlot2);
  460. if (IsSelectedSlot3) SelectedSlots.Add(IsSelectedSlot3);
  461. if (IsSelectedSlot4) SelectedSlots.Add(IsSelectedSlot4);
  462. if (IsSelectedSlot5) SelectedSlots.Add(IsSelectedSlot5);
  463. if (IsSelectedSlot6) SelectedSlots.Add(IsSelectedSlot6);
  464. if (IsSelectedSlot7) SelectedSlots.Add(IsSelectedSlot7);
  465. if (IsSelectedSlot8) SelectedSlots.Add(IsSelectedSlot8);
  466. if (IsSelectedSlot9) SelectedSlots.Add(IsSelectedSlot9);
  467. if (IsSelectedSlot10) SelectedSlots.Add(IsSelectedSlot10);
  468. if (IsSelectedSlot11) SelectedSlots.Add(IsSelectedSlot11);
  469. if (IsSelectedSlot12) SelectedSlots.Add(IsSelectedSlot12);
  470. if (IsSelectedSlot13) SelectedSlots.Add(IsSelectedSlot13);
  471. if (IsSelectedSlot14) SelectedSlots.Add(IsSelectedSlot14);
  472. if (IsSelectedSlot15) SelectedSlots.Add(IsSelectedSlot15);
  473. if (IsSelectedSlot16) SelectedSlots.Add(IsSelectedSlot16);
  474. if (IsSelectedSlot17) SelectedSlots.Add(IsSelectedSlot17);
  475. if (IsSelectedSlot18) SelectedSlots.Add(IsSelectedSlot18);
  476. if (IsSelectedSlot19) SelectedSlots.Add(IsSelectedSlot19);
  477. if (IsSelectedSlot20) SelectedSlots.Add(IsSelectedSlot20);
  478. if (IsSelectedSlot21) SelectedSlots.Add(IsSelectedSlot21);
  479. if (IsSelectedSlot22) SelectedSlots.Add(IsSelectedSlot22);
  480. if (IsSelectedSlot23) SelectedSlots.Add(IsSelectedSlot23);
  481. if (IsSelectedSlot24) SelectedSlots.Add(IsSelectedSlot24);
  482. if (IsSelectedSlot25) SelectedSlots.Add(IsSelectedSlot25);
  483. WaferCount = SelectedSlots.Count().ToString();
  484. }
  485. public void AllSetCmd()
  486. {
  487. if (IsEnabledSlot1) IsSelectedSlot1 = true;
  488. if (IsEnabledSlot2) IsSelectedSlot2 = true;
  489. if (IsEnabledSlot3) IsSelectedSlot3 = true;
  490. if (IsEnabledSlot4) IsSelectedSlot4 = true;
  491. if (IsEnabledSlot5) IsSelectedSlot5 = true;
  492. if (IsEnabledSlot6) IsSelectedSlot6 = true;
  493. if (IsEnabledSlot7) IsSelectedSlot7 = true;
  494. if (IsEnabledSlot8) IsSelectedSlot8 = true;
  495. if (IsEnabledSlot9) IsSelectedSlot9 = true;
  496. if (IsEnabledSlot10) IsSelectedSlot10 = true;
  497. if (IsEnabledSlot11) IsSelectedSlot11 = true;
  498. if (IsEnabledSlot12) IsSelectedSlot12 = true;
  499. if (IsEnabledSlot13) IsSelectedSlot13 = true;
  500. if (IsEnabledSlot14) IsSelectedSlot14 = true;
  501. if (IsEnabledSlot15) IsSelectedSlot15 = true;
  502. if (IsEnabledSlot16) IsSelectedSlot16 = true;
  503. if (IsEnabledSlot17) IsSelectedSlot17 = true;
  504. if (IsEnabledSlot18) IsSelectedSlot18 = true;
  505. if (IsEnabledSlot19) IsSelectedSlot19 = true;
  506. if (IsEnabledSlot20) IsSelectedSlot20 = true;
  507. if (IsEnabledSlot21) IsSelectedSlot21 = true;
  508. if (IsEnabledSlot22) IsSelectedSlot22 = true;
  509. if (IsEnabledSlot23) IsSelectedSlot23 = true;
  510. if (IsEnabledSlot24) IsSelectedSlot24 = true;
  511. if (IsEnabledSlot25) IsSelectedSlot25 = true;
  512. }
  513. public void AllClearCmd()
  514. {
  515. IsSelectedSlot1 = false;
  516. IsSelectedSlot2 = false;
  517. IsSelectedSlot3 = false;
  518. IsSelectedSlot4 = false;
  519. IsSelectedSlot5 = false;
  520. IsSelectedSlot6 = false;
  521. IsSelectedSlot7 = false;
  522. IsSelectedSlot8 = false;
  523. IsSelectedSlot9 = false;
  524. IsSelectedSlot10 = false;
  525. IsSelectedSlot11 = false;
  526. IsSelectedSlot12 = false;
  527. IsSelectedSlot13 = false;
  528. IsSelectedSlot14 = false;
  529. IsSelectedSlot15 = false;
  530. IsSelectedSlot16 = false;
  531. IsSelectedSlot17 = false;
  532. IsSelectedSlot18 = false;
  533. IsSelectedSlot19 = false;
  534. IsSelectedSlot20 = false;
  535. IsSelectedSlot21 = false;
  536. IsSelectedSlot22 = false;
  537. IsSelectedSlot23 = false;
  538. IsSelectedSlot24 = false;
  539. IsSelectedSlot25 = false;
  540. NotifyOfPropertyChange(nameof(IsSelectedSlot1));
  541. }
  542. private string GetStrSlotString()
  543. {
  544. List<string> slotStr = new List<string>();
  545. if (IsEnabledSlot1 && IsSelectedSlot1) slotStr.Add("1");
  546. if (IsEnabledSlot2 && IsSelectedSlot2) slotStr.Add("2");
  547. if (IsEnabledSlot3 && IsSelectedSlot3) slotStr.Add("3");
  548. if (IsEnabledSlot4 && IsSelectedSlot4) slotStr.Add("4");
  549. if (IsEnabledSlot5 && IsSelectedSlot5) slotStr.Add("5");
  550. if (IsEnabledSlot6 && IsSelectedSlot6) slotStr.Add("6");
  551. if (IsEnabledSlot7 && IsSelectedSlot7) slotStr.Add("7");
  552. if (IsEnabledSlot8 && IsSelectedSlot8) slotStr.Add("8");
  553. if (IsEnabledSlot9 && IsSelectedSlot9) slotStr.Add("9");
  554. if (IsEnabledSlot10 && IsSelectedSlot10) slotStr.Add("10");
  555. if (IsEnabledSlot11 && IsSelectedSlot11) slotStr.Add("11");
  556. if (IsEnabledSlot12 && IsSelectedSlot12) slotStr.Add("12");
  557. if (IsEnabledSlot13 && IsSelectedSlot13) slotStr.Add("13");
  558. if (IsEnabledSlot14 && IsSelectedSlot14) slotStr.Add("14");
  559. if (IsEnabledSlot15 && IsSelectedSlot15) slotStr.Add("15");
  560. if (IsEnabledSlot16 && IsSelectedSlot16) slotStr.Add("16");
  561. if (IsEnabledSlot17 && IsSelectedSlot17) slotStr.Add("17");
  562. if (IsEnabledSlot18 && IsSelectedSlot18) slotStr.Add("18");
  563. if (IsEnabledSlot19 && IsSelectedSlot19) slotStr.Add("19");
  564. if (IsEnabledSlot20 && IsSelectedSlot20) slotStr.Add("20");
  565. if (IsEnabledSlot21 && IsSelectedSlot21) slotStr.Add("21");
  566. if (IsEnabledSlot22 && IsSelectedSlot22) slotStr.Add("22");
  567. if (IsEnabledSlot23 && IsSelectedSlot23) slotStr.Add("23");
  568. if (IsEnabledSlot24 && IsSelectedSlot24) slotStr.Add("24");
  569. if (IsEnabledSlot25 && IsSelectedSlot25) slotStr.Add("25");
  570. if (slotStr.Count == 0)
  571. {
  572. WaferCount = "0";
  573. return "";
  574. }
  575. else
  576. {
  577. WaferCount = slotStr.Count().ToString();
  578. return string.Join("/", slotStr.ToArray());
  579. }
  580. }
  581. public void AllSetCmdMouseLeftButtonDown(object source, MouseButtonEventArgs e)
  582. {
  583. if (e.StylusDevice != null)
  584. {
  585. e.Handled = true;
  586. }
  587. else
  588. {
  589. AllSetCmd();
  590. e.Handled = true;
  591. }
  592. }
  593. public void AllSetCmdTouchUp(string value, object source, TouchEventArgs e)
  594. {
  595. AllSetCmd();
  596. e.Handled = true;
  597. }
  598. public void AllClearCmdMouseLeftButtonDown(object source, MouseButtonEventArgs e)
  599. {
  600. if (e.StylusDevice != null)
  601. {
  602. e.Handled = true;
  603. }
  604. else
  605. {
  606. AllClearCmd();
  607. e.Handled = true;
  608. }
  609. }
  610. public void AllClearCmdTouchUp(string value, object source, TouchEventArgs e)
  611. {
  612. AllClearCmd();
  613. e.Handled = true;
  614. }
  615. public void WaferMapSelectedMouseLeftButtonDown(string value, object source, MouseButtonEventArgs e)
  616. {
  617. if (e.StylusDevice != null)
  618. {
  619. e.Handled = true;
  620. }
  621. else
  622. {
  623. WaferMapSelected(value, source);
  624. e.Handled = true;
  625. }
  626. }
  627. public void WaferMapSelectedTouchUp(string value, object source, TouchEventArgs e)
  628. {
  629. WaferMapSelected(value, source);
  630. e.Handled = true;
  631. }
  632. public void ClosedCmdMouseLeftButtonDown(object source, MouseButtonEventArgs e)
  633. {
  634. if (e.StylusDevice != null)
  635. {
  636. e.Handled = true;
  637. }
  638. else
  639. {
  640. e.Handled = true;
  641. ClosedCmd();
  642. }
  643. }
  644. public void ClosedCmdTouchUp(object source, TouchEventArgs e)
  645. {
  646. e.Handled = true;
  647. ClosedCmd();
  648. }
  649. public void AcceptCmdMouseLeftButtonDown(object source, MouseButtonEventArgs e)
  650. {
  651. if (e.StylusDevice != null)
  652. {
  653. e.Handled = true;
  654. }
  655. else
  656. {
  657. e.Handled = true;
  658. AcceptCmd();
  659. }
  660. }
  661. public void AcceptCmdTouchUp(object source, TouchEventArgs e)
  662. {
  663. e.Handled = true;
  664. AcceptCmd();
  665. }
  666. public void AcceptCmd()
  667. {
  668. if (string.IsNullOrEmpty(SlotMap))
  669. {
  670. DialogBox.ShowWarning("Specified Map is empty");
  671. return;
  672. }
  673. StrSlots = GetStrSlotString();
  674. ((Window)GetView()).DialogResult = true;
  675. }
  676. public void ClosedCmd()
  677. {
  678. ((Window)GetView()).DialogResult = false;
  679. }
  680. }
  681. }