VenusRecipeSequenceSelectView.xaml.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. using Aitex.Core.Util;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Windows;
  8. using System.Windows.Controls;
  9. using System.Windows.Data;
  10. using System.Windows.Documents;
  11. using System.Windows.Input;
  12. using System.Windows.Media;
  13. using System.Windows.Media.Imaging;
  14. using System.Windows.Navigation;
  15. using System.Windows.Shapes;
  16. using Venus_MainPages.Sequence;
  17. using Venus_Unity;
  18. namespace Venus_MainPages.Views
  19. {
  20. /// <summary>
  21. /// VenusRecipeSequenceSelectView.xaml 的交互逻辑
  22. /// </summary>
  23. public partial class VenusRecipeSequenceSelectView : Window
  24. {
  25. private FileNode pre_currentFileNode;
  26. private FileNode process_currentFileNode;
  27. private FileNode wtw_currentFileNode;
  28. private FileNode post_currentFileNode;
  29. private FileNode clean_currentFileNode;
  30. SerializableDictionary<string, string> recipeDictionary = new SerializableDictionary<string, string>();
  31. public string FullPath { get; private set; }
  32. string value;
  33. public VenusRecipeSequenceSelectView(string path)
  34. {
  35. InitializeComponent();
  36. value = path;
  37. }
  38. private void buttonCancel_Click(object sender, RoutedEventArgs e)
  39. {
  40. this.DialogResult = false;
  41. }
  42. private void buttonOK_Click(object sender, RoutedEventArgs e)
  43. {
  44. this.DialogResult = true;
  45. if (pre_currentFileNode != null && pre_currentFileNode.Parent.Name == "Clean")
  46. {
  47. recipeDictionary.Add("PreLotClean", pre_currentFileNode.Name);
  48. }
  49. else
  50. {
  51. recipeDictionary.Add("PreLotClean", "");
  52. }
  53. if (process_currentFileNode != null && process_currentFileNode.Parent.Name == "Process")
  54. {
  55. recipeDictionary.Add("Process", process_currentFileNode.Name);
  56. }
  57. else
  58. {
  59. recipeDictionary.Add("Process", "");
  60. }
  61. if (wtw_currentFileNode != null && wtw_currentFileNode.Parent.Name == "Clean")
  62. {
  63. recipeDictionary.Add("WTWClean", wtw_currentFileNode.Name);
  64. }
  65. else
  66. {
  67. recipeDictionary.Add("WTWClean", "");
  68. }
  69. if (post_currentFileNode != null && post_currentFileNode.Parent.Name == "Clean")
  70. {
  71. recipeDictionary.Add("PostLotClean", post_currentFileNode.Name);
  72. }
  73. else
  74. {
  75. recipeDictionary.Add("PostLotClean", "");
  76. }
  77. if (clean_currentFileNode != null && clean_currentFileNode.Parent.Name == "Clean")
  78. {
  79. recipeDictionary.Add("IdleClean", clean_currentFileNode.Name);
  80. recipeDictionary.Add("IdleTime", IdleTime.Text);
  81. }
  82. else
  83. {
  84. recipeDictionary.Add("IdleClean", "");
  85. recipeDictionary.Add("IdleTime", "");
  86. }
  87. this.FullPath = SerializeHelper.Instance.DictionaryToString(recipeDictionary);
  88. }
  89. private void PreClean_PART_TREE_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
  90. {
  91. pre_currentFileNode = (FileNode)(sender as TreeView).SelectedItem;
  92. if (pre_currentFileNode.Parent.Name == "Clean")
  93. {
  94. preLotSelectedRecipeTextBlock.Text = pre_currentFileNode.Name;
  95. }
  96. else
  97. {
  98. preLotSelectedRecipeTextBlock.Text = "";
  99. }
  100. }
  101. private void Process_PART_TREE_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
  102. {
  103. process_currentFileNode = (FileNode)(sender as TreeView).SelectedItem;
  104. if (process_currentFileNode.Parent.Name == "Process")
  105. {
  106. processSelectedRecipeTextBlock.Text = process_currentFileNode.Name;
  107. }
  108. else
  109. {
  110. processSelectedRecipeTextBlock.Text = "";
  111. }
  112. }
  113. private void WTWClean_PART_TREE_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
  114. {
  115. wtw_currentFileNode = (FileNode)(sender as TreeView).SelectedItem;
  116. if (wtw_currentFileNode.Parent.Name == "Clean")
  117. {
  118. wtwSelectedRecipeTextBlock.Text = wtw_currentFileNode.Name;
  119. }
  120. else
  121. {
  122. wtwSelectedRecipeTextBlock.Text = "";
  123. }
  124. }
  125. private void PostClean_PART_TREE_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
  126. {
  127. post_currentFileNode = (FileNode)(sender as TreeView).SelectedItem;
  128. if (post_currentFileNode.Parent.Name == "Clean")
  129. {
  130. postLotSelectedRecipeTextBlock.Text = post_currentFileNode.Name;
  131. }
  132. else
  133. {
  134. postLotSelectedRecipeTextBlock.Text = "";
  135. }
  136. }
  137. private void IdleClean_PART_TREE_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
  138. {
  139. clean_currentFileNode = (FileNode)(sender as TreeView).SelectedItem;
  140. if (clean_currentFileNode.Parent.Name == "Clean")
  141. {
  142. idleLotSelectedRecipeTextBlock.Text = clean_currentFileNode.Name;
  143. }
  144. else
  145. {
  146. idleLotSelectedRecipeTextBlock.Text = "";
  147. }
  148. }
  149. private void Window_Loaded(object sender, RoutedEventArgs e)
  150. {
  151. var dictionary = SerializeHelper.Instance.StringToDictionary(value);
  152. if (dictionary.Keys.Contains("PreLotClean"))
  153. {
  154. preLotSelectedRecipeTextBlock.Text = dictionary["PreLotClean"];
  155. foreach (var item in PreLotTreeView.Items)
  156. {
  157. var tvi = (TreeViewItem)PreLotTreeView.ItemContainerGenerator.ContainerFromItem(item);
  158. SetSelect(tvi, dictionary["PreLotClean"]);
  159. }
  160. }
  161. if (dictionary.Keys.Contains("Process"))
  162. {
  163. processSelectedRecipeTextBlock.Text = dictionary["Process"];
  164. foreach (var item in ProcessTreeView.Items)
  165. {
  166. var tvi = (TreeViewItem)ProcessTreeView.ItemContainerGenerator.ContainerFromItem(item);
  167. SetSelect(tvi, dictionary["Process"]);
  168. }
  169. }
  170. if (dictionary.Keys.Contains("WTWClean"))
  171. {
  172. wtwSelectedRecipeTextBlock.Text = dictionary["WTWClean"];
  173. foreach (var item in WTWTreeView.Items)
  174. {
  175. var tvi = (TreeViewItem)WTWTreeView.ItemContainerGenerator.ContainerFromItem(item);
  176. SetSelect(tvi, dictionary["WTWClean"]);
  177. }
  178. }
  179. if (dictionary.Keys.Contains("PostLotClean"))
  180. {
  181. postLotSelectedRecipeTextBlock.Text = dictionary["PostLotClean"];
  182. foreach (var item in PostLotTreeView.Items)
  183. {
  184. var tvi = (TreeViewItem)PostLotTreeView.ItemContainerGenerator.ContainerFromItem(item);
  185. SetSelect(tvi, dictionary["PostLotClean"]);
  186. }
  187. }
  188. if (dictionary.Keys.Contains("IdleClean"))
  189. {
  190. idleLotSelectedRecipeTextBlock.Text = dictionary["IdleClean"];
  191. foreach (var item in LongIdleCleanTreeView.Items)
  192. {
  193. var tvi = (TreeViewItem)LongIdleCleanTreeView.ItemContainerGenerator.ContainerFromItem(item);
  194. SetSelect(tvi, dictionary["IdleClean"]);
  195. }
  196. }
  197. if (dictionary.Keys.Contains("IdleTime"))
  198. {
  199. IdleTime.Text = dictionary["IdleTime"];
  200. }
  201. }
  202. void SetSelect(TreeViewItem tvi, string value)
  203. {
  204. if (tvi.Items.Count > 0)
  205. {
  206. foreach (var item in tvi.Items)
  207. {
  208. var tviChild = (TreeViewItem)tvi.ItemContainerGenerator.ContainerFromItem(item);
  209. var model = (FileNode)item;
  210. if (model.Name == value)
  211. {
  212. tviChild.IsSelected = true;
  213. break;
  214. }
  215. else
  216. {
  217. SetSelect(tviChild, value);
  218. }
  219. }
  220. }
  221. }
  222. private void PreLotBorder_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  223. {
  224. foreach (var item in PreLotTreeView.Items)
  225. {
  226. var tvi = (TreeViewItem)PreLotTreeView.ItemContainerGenerator.ContainerFromItem(item);
  227. SetSelect(tvi, "");
  228. }
  229. }
  230. private void ProcessBorder_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  231. {
  232. foreach (var item in ProcessTreeView.Items)
  233. {
  234. var tvi = (TreeViewItem)ProcessTreeView.ItemContainerGenerator.ContainerFromItem(item);
  235. SetSelect(tvi, "");
  236. }
  237. }
  238. private void WTWBorder_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  239. {
  240. foreach (var item in WTWTreeView.Items)
  241. {
  242. var tvi = (TreeViewItem)WTWTreeView.ItemContainerGenerator.ContainerFromItem(item);
  243. SetSelect(tvi, "");
  244. }
  245. }
  246. private void PostLotBorder_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  247. {
  248. foreach (var item in PostLotTreeView.Items)
  249. {
  250. var tvi = (TreeViewItem)PostLotTreeView.ItemContainerGenerator.ContainerFromItem(item);
  251. SetSelect(tvi, "");
  252. }
  253. }
  254. private void IdleBorder_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  255. {
  256. foreach (var item in LongIdleCleanTreeView.Items)
  257. {
  258. var tvi = (TreeViewItem)LongIdleCleanTreeView.ItemContainerGenerator.ContainerFromItem(item);
  259. SetSelect(tvi, "");
  260. }
  261. }
  262. }
  263. }