| 
					
				 | 
			
			
				@@ -31,6 +31,22 @@ namespace PunkHPX8_MainPages.ViewModels 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private RecipeNode _currentNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private bool _enable = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private bool _isEdit = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// Wafer尺寸集合 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private List<int> _waferSizeLst = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// Vacuum Prewet step选择索引 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private int _selectedVacuumPrewetIndex = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// Extend Clean step选择索引 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private int _selectedExtendCleanIndex = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// Vent Prewet step选择索引 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private int _selectedVentPrewetIndex = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         #region 属性 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -70,7 +86,38 @@ namespace PunkHPX8_MainPages.ViewModels 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             get { return _recipe; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             set { SetProperty(ref _recipe, value); } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// Wafer 尺寸集合 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public List<int> WaferSizeLst 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            get { return _waferSizeLst; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            set { SetProperty(ref _waferSizeLst, value); } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// Vacuum Prewet step选择索引 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public int SelectedVacuumPrewetIndex 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            get { return _selectedVacuumPrewetIndex; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            set { SetProperty(ref _selectedVacuumPrewetIndex, value); } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// SelectedExtendCleanIndex选择索引 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public int SelectedExtendCleanIndex 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            get { return _selectedExtendCleanIndex; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            set { SetProperty(ref _selectedExtendCleanIndex, value); } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// SelectedVentPrewetIndex选择索引 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public int SelectedVentPrewetIndex 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            get { return _selectedVentPrewetIndex; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            set { SetProperty(ref _selectedVentPrewetIndex, value); } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         #region 指令 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public ICommand OperationCommand 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -85,6 +132,8 @@ namespace PunkHPX8_MainPages.ViewModels 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public ICommand SaveRecipeCommand { get; private set; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [IgnorePropertyChange] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public ICommand SaveAsRecipeCommand { get; private set; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [IgnorePropertyChange] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public ICommand IsSprayBarRetractFalseCommand { get; private set; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public VpwRecipeViewModel() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -94,9 +143,27 @@ namespace PunkHPX8_MainPages.ViewModels 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             EditCommand = new DelegateCommand<object>(EditAction); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             SaveRecipeCommand = new DelegateCommand<object>(SaveAction); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             SaveAsRecipeCommand = new DelegateCommand<object>(SaveAsAction); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            IsSprayBarRetractFalseCommand = new DelegateCommand<object>(IsSprayBarRetractFalseAction); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //Wafer尺寸集合 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            WaferSizeLst = new List<int>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            WaferSizeLst.Add(100); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            WaferSizeLst.Add(150); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            WaferSizeLst.Add(200); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            WaferSizeLst.Add(300); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            InitializeProprtyValidResultDictionary(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void InitializeProprtyValidResultDictionary() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //需要检验的参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            PropertyValidResultDic["VacuumTarget"] = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            PropertyValidResultDic["DryHoldTime"] = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            PropertyValidResultDic["DiwLoopDoSet"] = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            PropertyValidResultDic["SpinSpeed"] = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            PropertyValidResultDic["SpinTime"] = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public void LoadRecipeData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -282,5 +349,275 @@ namespace PunkHPX8_MainPages.ViewModels 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void IsSprayBarRetractFalseAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Recipe.IsSprayBarRetract = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        #region Vacuum prewet按钮 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 增加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void AddBelowAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Recipe != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                VpwRinseStep currentRinseSteps = new VpwRinseStep(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Recipe.VacuumRinseStep.Insert(SelectedVacuumPrewetIndex + 1, currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SelectedVacuumPrewetIndex++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 增加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void AddAboveAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Recipe != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                VpwRinseStep currentRinseSteps = new VpwRinseStep(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (SelectedVacuumPrewetIndex == -1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.VacuumRinseStep.Add(currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SelectedVacuumPrewetIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.VacuumRinseStep.Insert(SelectedVacuumPrewetIndex, currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SelectedVacuumPrewetIndex--; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 上移 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void MoveUpAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Recipe != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (SelectedVacuumPrewetIndex > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    int currentIndex = SelectedVacuumPrewetIndex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    VpwRinseStep currentRinseSteps = Recipe.VacuumRinseStep[SelectedVacuumPrewetIndex]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.VacuumRinseStep.RemoveAt(SelectedVacuumPrewetIndex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.VacuumRinseStep.Insert(currentIndex - 1, currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SelectedVacuumPrewetIndex = currentIndex - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 下移 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void MoveDownAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Recipe != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (SelectedVacuumPrewetIndex >= 0 && SelectedVacuumPrewetIndex < Recipe.VacuumRinseStep.Count - 1 && Recipe.VacuumRinseStep.Count > 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    int currentIndex = SelectedVacuumPrewetIndex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    VpwRinseStep currentRinseSteps = Recipe.VacuumRinseStep[SelectedVacuumPrewetIndex]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.VacuumRinseStep.RemoveAt(SelectedVacuumPrewetIndex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.VacuumRinseStep.Insert(currentIndex + 1, currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SelectedVacuumPrewetIndex = currentIndex + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void DeleteAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (SelectedVacuumPrewetIndex != -1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (Recipe != null && Recipe.VacuumRinseStep.Count > SelectedVacuumPrewetIndex) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.VacuumRinseStep.RemoveAt(SelectedVacuumPrewetIndex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        #region Vent prewet按钮 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 增加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void VentPrewetAddBelowAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Recipe != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                VpwRinseStep currentRinseSteps = new VpwRinseStep(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Recipe.VentRinseStep.Insert(SelectedVentPrewetIndex + 1, currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SelectedVentPrewetIndex++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 增加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void VentPrewetAddAboveAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Recipe != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                VpwRinseStep currentRinseSteps = new VpwRinseStep(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (SelectedVentPrewetIndex == -1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.VentRinseStep.Add(currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SelectedVentPrewetIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.VentRinseStep.Insert(SelectedVentPrewetIndex, currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SelectedVentPrewetIndex--; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 上移 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void VentPrewetMoveUpAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Recipe != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (SelectedVentPrewetIndex > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    int currentIndex = SelectedVentPrewetIndex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    VpwRinseStep currentRinseSteps = Recipe.VentRinseStep[SelectedVentPrewetIndex]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.VentRinseStep.RemoveAt(SelectedVentPrewetIndex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.VentRinseStep.Insert(currentIndex - 1, currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SelectedVentPrewetIndex = currentIndex - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 下移 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void VentPrewetMoveDownAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Recipe != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (SelectedVentPrewetIndex >= 0 && SelectedVentPrewetIndex < Recipe.VentRinseStep.Count - 1 && Recipe.VentRinseStep.Count > 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    int currentIndex = SelectedVentPrewetIndex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    VpwRinseStep currentRinseSteps = Recipe.VentRinseStep[SelectedVentPrewetIndex]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.VentRinseStep.RemoveAt(SelectedVentPrewetIndex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.VentRinseStep.Insert(currentIndex + 1, currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SelectedVentPrewetIndex = currentIndex + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void VentPrewetDeleteAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (SelectedVentPrewetIndex != -1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (Recipe != null && Recipe.VentRinseStep.Count > SelectedVentPrewetIndex) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.VentRinseStep.RemoveAt(SelectedVentPrewetIndex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        #region Extend Clean按钮 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 增加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void ExtendCleanAddBelowAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Recipe != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                VpwRinseStep currentRinseSteps = new VpwRinseStep(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Recipe.ExtendCleanRinseStep.Insert(SelectedExtendCleanIndex + 1, currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                SelectedExtendCleanIndex++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 增加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void ExtendCleanAddAboveAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Recipe != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                VpwRinseStep currentRinseSteps = new VpwRinseStep(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (SelectedExtendCleanIndex == -1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.ExtendCleanRinseStep.Add(currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SelectedExtendCleanIndex = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.ExtendCleanRinseStep.Insert(SelectedExtendCleanIndex, currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SelectedExtendCleanIndex--; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 上移 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void ExtendCleanMoveUpAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Recipe != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (SelectedExtendCleanIndex > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    int currentIndex = SelectedExtendCleanIndex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    VpwRinseStep currentRinseSteps = Recipe.ExtendCleanRinseStep[SelectedExtendCleanIndex]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.ExtendCleanRinseStep.RemoveAt(SelectedExtendCleanIndex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.ExtendCleanRinseStep.Insert(currentIndex - 1, currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SelectedExtendCleanIndex = currentIndex - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 下移 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void ExtendCleanMoveDownAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (Recipe != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (SelectedExtendCleanIndex >= 0 && SelectedExtendCleanIndex < Recipe.ExtendCleanRinseStep.Count - 1 && Recipe.ExtendCleanRinseStep.Count > 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    int currentIndex = SelectedExtendCleanIndex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    VpwRinseStep currentRinseSteps = Recipe.ExtendCleanRinseStep[SelectedExtendCleanIndex]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.ExtendCleanRinseStep.RemoveAt(SelectedExtendCleanIndex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.ExtendCleanRinseStep.Insert(currentIndex + 1, currentRinseSteps); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SelectedExtendCleanIndex = currentIndex + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="param"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private void ExtendCleanDeleteAction(object param) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (SelectedExtendCleanIndex != -1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (Recipe != null && Recipe.ExtendCleanRinseStep.Count > SelectedExtendCleanIndex) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Recipe.ExtendCleanRinseStep.RemoveAt(SelectedExtendCleanIndex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |