DepRecipeView.xaml 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. <UserControl xmlns:Control="clr-namespace:MECF.Framework.UI.Core.Control;assembly=MECF.Framework.UI.Core"
  2. xmlns:UserControls="clr-namespace:CyberX8_Themes.UserControls;assembly=CyberX8_Themes"
  3. x:Class="CyberX8_MainPages.Views.DepRecipeView"
  4. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  5. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  6. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  7. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  8. xmlns:local="clr-namespace:CyberX8_MainPages.Views"
  9. xmlns:prism="http://prismlibrary.com/"
  10. xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
  11. xmlns:converters="clr-namespace:CyberX8_MainPages.Converters"
  12. xmlns:extendedControls="clr-namespace:MECF.Framework.UI.Core.ExtendedControls;assembly=MECF.Framework.UI.Core"
  13. prism:ViewModelLocator.AutoWireViewModel="True"
  14. mc:Ignorable="d"
  15. d:DesignHeight="800" d:DesignWidth="1800" Loaded="UserControl_Loaded">
  16. <UserControl.Resources>
  17. <converters:BoolReverseConverter x:Key="boolReverseConverter"/>
  18. <converters:BoolVisibilityConverter x:Key="boolVisibilityConverter"/>
  19. </UserControl.Resources>
  20. <Grid>
  21. <Grid.RowDefinitions>
  22. <RowDefinition Height="100"></RowDefinition>
  23. <RowDefinition Height="145"></RowDefinition>
  24. <RowDefinition/>
  25. </Grid.RowDefinitions>
  26. <Grid.ColumnDefinitions>
  27. <ColumnDefinition Width="50"></ColumnDefinition>
  28. <ColumnDefinition Width="400"></ColumnDefinition>
  29. <ColumnDefinition Width="700"></ColumnDefinition>
  30. <ColumnDefinition Width="700"></ColumnDefinition>
  31. <ColumnDefinition/>
  32. </Grid.ColumnDefinitions>
  33. <UserControls:RecipeFileLoadControl Grid.Row="1" Grid.RowSpan="2" Grid.Column="1" Title="Dep Recipe" RecipeNodes="{Binding RecipeNodes}" OperationCommand="{Binding OperationCommand}"
  34. RecipeLocation="{Binding CurrentNode.RecipeLocation}" EditEnable="{Binding EditEnable}" CreateEnable="{Binding CreateEnable}" RecipeFileName="{Binding CurrentNode.FileName}"
  35. CreateCommand="{Binding CreateCommand}" EditCommand="{Binding EditCommand}"/>
  36. <Grid Grid.Row="1" Grid.Column="2">
  37. <Grid.RowDefinitions>
  38. <RowDefinition Height="70"></RowDefinition>
  39. <RowDefinition Height="70"></RowDefinition>
  40. <RowDefinition/>
  41. </Grid.RowDefinitions>
  42. <GroupBox Header="PPID" Grid.Row="0">
  43. <TextBlock Text="{Binding Recipe.Ppid}" FontSize="20" VerticalAlignment="Center" TextAlignment="Center">
  44. </TextBlock>
  45. </GroupBox>
  46. <GroupBox Header="Description" Grid.Row="1">
  47. <TextBlock Text="{Binding Recipe.Description}" FontSize="18" VerticalAlignment="Center" TextAlignment="Center">
  48. </TextBlock>
  49. </GroupBox>
  50. </Grid>
  51. <Grid Grid.Row="1" Grid.Column="3">
  52. <Grid.RowDefinitions>
  53. <RowDefinition Height="70"></RowDefinition>
  54. <RowDefinition Height="70"></RowDefinition>
  55. <RowDefinition/>
  56. <RowDefinition Height="70"></RowDefinition>
  57. </Grid.RowDefinitions>
  58. <Grid Grid.Row="0" IsEnabled="{Binding Enable}">
  59. <Grid.ColumnDefinitions>
  60. <ColumnDefinition/>
  61. <ColumnDefinition/>
  62. <ColumnDefinition/>
  63. </Grid.ColumnDefinitions>
  64. <Button Grid.Column="0" Style="{StaticResource SysBtnStyle}" Content="Save" Height="35" Width="100" Command="{Binding SaveRecipeCommand}"></Button>
  65. <Button Grid.Column="1" Style="{StaticResource SysBtnStyle}" Content="SaveAs" Height="35" Width="100" Command="{Binding SaveAsRecipeCommand}"></Button>
  66. </Grid>
  67. <GroupBox Header="Total Time" Grid.Row="1" HorizontalAlignment="Left" Margin="40,0,0,0" Width="200">
  68. <Grid>
  69. <Label Content="{Binding Recipe.TotalTime}" Height="30" Width="120" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray"
  70. HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="17,0,0,0"></Label>
  71. <Label Content="sec" Height="30" Width="50" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="142,0,0,0" Grid.Column="1"></Label>
  72. </Grid>
  73. </GroupBox>
  74. </Grid>
  75. <Grid Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2">
  76. <Grid>
  77. <Grid Grid.Row="0">
  78. <Grid.ColumnDefinitions>
  79. <ColumnDefinition Width="300"></ColumnDefinition>
  80. <ColumnDefinition/>
  81. </Grid.ColumnDefinitions>
  82. <GroupBox Header="Scanning" Grid.Column="0">
  83. <Grid>
  84. <Grid.RowDefinitions>
  85. <RowDefinition Height="60"/>
  86. <RowDefinition Height="75"/>
  87. <RowDefinition Height="75"/>
  88. <RowDefinition Height="75"/>
  89. <RowDefinition Height="75"/>
  90. <RowDefinition Height="75"/>
  91. <RowDefinition Height="75"/>
  92. <RowDefinition/>
  93. </Grid.RowDefinitions>
  94. <GroupBox Header="Chemistry" IsEnabled="{Binding Enable}">
  95. <ComboBox Height="30" Margin="0,0,20,0" ItemsSource="{Binding ChemistryLst}" SelectedItem="{Binding Recipe.Chemistry,Mode=TwoWay}">
  96. </ComboBox>
  97. </GroupBox>
  98. <UserControls:GroupTextBoxControl Grid.Row="1" Title="Current Warning %" Unit="%" MinValue="3" MaxValue="100" IntValue="{Binding Recipe.CurrentWarningLevel,Mode=TwoWay}"
  99. ValidResult="{Binding PropertyValidResultDic[CurrentWarningLevel],Mode=TwoWay}" Width="290"/>
  100. <UserControls:GroupTextBoxControl Grid.Row="2" Title="Current Fault %" Unit="%" MinValue="3" MaxValue="100" IntValue="{Binding Recipe.FaultPercent,Mode=TwoWay}"
  101. ValidResult="{Binding PropertyValidResultDic[FaultPercent],Mode=TwoWay}" Width="290"/>
  102. <UserControls:GroupTextBoxControl Grid.Row="3" Title="Min Voltage Fault" Unit="V" MinValue="0" MaxValue="12" IntValue="{Binding Recipe.VolatageLimitMin,Mode=TwoWay}"
  103. ValidResult="{Binding PropertyValidResultDic[VolatageLimitMin],Mode=TwoWay}" Width="290"/>
  104. <UserControls:GroupTextBoxControl Grid.Row="4" Title="Max Voltage Fault" Unit="V" MinValue="0" MaxValue="12" IntValue="{Binding Recipe.VolatageLimitMax,Mode=TwoWay}"
  105. ValidResult="{Binding PropertyValidResultDic[VolatageLimitMax],Mode=TwoWay}" Width="290"/>
  106. <UserControls:GroupTextBoxControl Grid.Row="5" Title="Max Voltage Warning" Unit="V" MinValue="0" MaxValue="12" IntValue="{Binding Recipe.VoltageWarningLevel,Mode=TwoWay}"
  107. ValidResult="{Binding PropertyValidResultDic[VoltageWarningLevel],Mode=TwoWay}" Width="290"/>
  108. <UserControls:GroupTextBoxControl Grid.Row="6" Title="Plating Delay" Unit="sec" MinValue="5" MaxValue="240" IntValue="{Binding Recipe.PlatingDelaySeconds,Mode=TwoWay}"
  109. ValidResult="{Binding PropertyValidResultDic[PlatingDelaySeconds],Mode=TwoWay}" Width="290"/>
  110. </Grid>
  111. </GroupBox>
  112. <TabControl Grid.Column="1" Background="Transparent">
  113. <TabItem Header="RampSteps">
  114. <Grid>
  115. <Grid.RowDefinitions>
  116. <RowDefinition Height="100"></RowDefinition>
  117. <RowDefinition/>
  118. </Grid.RowDefinitions>
  119. <Grid.ColumnDefinitions>
  120. <ColumnDefinition Width="220"></ColumnDefinition>
  121. <ColumnDefinition/>
  122. </Grid.ColumnDefinitions>
  123. <Grid Grid.Row="0" Grid.Column="0">
  124. <GroupBox Header="Hot Plating" IsEnabled="{Binding Enable}" Margin="0,10,0,0">
  125. <Grid>
  126. <RadioButton Content="False" Height="35" Width="60" VerticalContentAlignment="Center" HorizontalAlignment="Right"
  127. IsChecked="{Binding Recipe.HotPlatingCurrentOn,Converter={StaticResource boolReverseConverter}}" Margin="0,15,40,16"></RadioButton>
  128. <RadioButton Content="True" Height="35" Width="60" VerticalContentAlignment="Center" HorizontalAlignment="Left"
  129. IsChecked="{Binding Recipe.HotPlatingCurrentOn}" Margin="40,15,0,16" ></RadioButton>
  130. </Grid>
  131. </GroupBox>
  132. </Grid>
  133. <Grid Grid.Row="0" Grid.Column="1">
  134. <GroupBox Header="Cycle Clamps" IsEnabled="{Binding Enable}" Margin="0,10,0,0">
  135. <Grid>
  136. <RadioButton Content="False" Height="35" Width="60" VerticalContentAlignment="Center" HorizontalAlignment="Left"
  137. IsChecked="{Binding Recipe.CycleClampsEnable,Converter={StaticResource boolReverseConverter}}" Margin="100,15,0,16"></RadioButton>
  138. <RadioButton Content="True" Height="35" Width="60" VerticalContentAlignment="Center" HorizontalAlignment="Left"
  139. IsChecked="{Binding Recipe.CycleClampsEnable}" Margin="40,15,0,16" ></RadioButton>
  140. <UserControls:GroupTextBoxControl Grid.Row="1" Title="Max Tries" Unit="" MinValue="1" MaxValue="3"
  141. IntValue="{Binding Recipe.CycleClampsMaxTries,Mode=TwoWay}"
  142. ValidResult="{Binding PropertyValidResultDic[CycleClampsMaxTries],Mode=TwoWay}" Width="290"/>
  143. </Grid>
  144. </GroupBox>
  145. </Grid>
  146. <GroupBox Header="Deposition Step" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
  147. <Grid>
  148. <Grid.RowDefinitions>
  149. <RowDefinition Height="75"></RowDefinition>
  150. <RowDefinition/>
  151. <RowDefinition Height="65"></RowDefinition>
  152. </Grid.RowDefinitions>
  153. <Grid Grid.Row="0">
  154. <Grid.ColumnDefinitions>
  155. <ColumnDefinition Width="180"></ColumnDefinition>
  156. <ColumnDefinition Width="180"></ColumnDefinition>
  157. <ColumnDefinition Width="180"></ColumnDefinition>
  158. <ColumnDefinition Width="180"></ColumnDefinition>
  159. <ColumnDefinition/>
  160. </Grid.ColumnDefinitions>
  161. <GroupBox Header="Plating Steps">
  162. <Label Content="{Binding Recipe.DepositionPlatingSteps}" Height="30" Width="151" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray"
  163. HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="6,0,0,0"></Label>
  164. </GroupBox>
  165. <GroupBox Header="Total Time" Grid.Column="1">
  166. <Label Content="{Binding Recipe.DepositionTotalTime}" Height="30" Width="151" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray"
  167. HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="6,0,0,0"></Label>
  168. </GroupBox>
  169. <GroupBox Header="Total Current" Grid.Column="2">
  170. <Label Height="30" Width="151" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" Background="Gray"
  171. HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.Column="1" Margin="6,0,0,0">
  172. <Label.Content>
  173. <TextBlock Text="{Binding Recipe.DepositionTotalCurrent,StringFormat=\{0:F3\} Amp Hours}"/>
  174. </Label.Content>
  175. </Label>
  176. </GroupBox>
  177. <GroupBox Header="Anode Type" IsEnabled="{Binding Enable}" Grid.Column="3">
  178. <ComboBox Height="30" Margin="0,0,20,0" SelectedIndex="{Binding Recipe.AnodeType}" SelectedItem="{Binding SelectedAnodeType}">
  179. <ComboBoxItem>Multi Zone</ComboBoxItem>
  180. <ComboBoxItem>Single Zone</ComboBoxItem>
  181. </ComboBox>
  182. </GroupBox>
  183. </Grid>
  184. <DataGrid x:Name="RampDataGrid" MinRowHeight="27" Grid.Row="1" AutoGenerateColumns="False" CanUserAddRows="False" FontFamily="Arial" FontSize="14" Margin="0,10,0,0"
  185. ItemsSource="{Binding Recipe.CurrentRampProfileSteps}" SelectionMode="Single" IsEnabled="{Binding Enable}" SelectedIndex="{Binding SelectedRampIndex,Mode=TwoWay}"
  186. >
  187. <DataGrid.Resources>
  188. <extendedControls:BindingProxy x:Key="DataShowProxy" Data="{Binding}" />
  189. </DataGrid.Resources>
  190. <DataGrid.Columns>
  191. <DataGridTextColumn Header="Time&#x0a;(Sec)" Width="70" Binding="{Binding CurrentRampDurartionSeconds,Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False"/>
  192. <DataGridCheckBoxColumn Header="Pulse" Binding="{Binding PulseEnabled,Mode=TwoWay}" Width="70" CanUserSort="False" CanUserReorder="False" CanUserResize="True"
  193. Visibility="{Binding Data.MultiZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}" >
  194. </DataGridCheckBoxColumn>
  195. <DataGridTextColumn Header="Forward&#x0a;Current" Width="100" Binding="{Binding ForwardAmps,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" >
  196. </DataGridTextColumn>
  197. <DataGridTextColumn Header="Forward&#x0a;Current2" Width="100" Binding="{Binding ForwardAmps2,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False"
  198. Visibility="{Binding Data.MultiZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}"/>
  199. <DataGridTextColumn Header="Forward&#x0a;Current3" Width="100" Binding="{Binding ForwardAmps3,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False"
  200. Visibility="{Binding Data.MultiZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}"/>
  201. <DataGridTextColumn Header="Forward&#x0a;Current4" Width="100" Binding="{Binding ForwardAmps4,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False"
  202. Visibility="{Binding Data.MultiZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}"/>
  203. <DataGridTextColumn Header="Forward&#x0a;Current5" Width="100" Binding="{Binding ForwardAmps5,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False"
  204. Visibility="{Binding Data.MultiZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}"/>
  205. <DataGridTextColumn Header="Forward&#x0a;Current6" Width="100" Binding="{Binding ForwardAmps6,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False"
  206. Visibility="{Binding Data.MultiZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}"/>
  207. <DataGridTextColumn Header="Reverse&#x0a;Current" Width="100" Binding="{Binding ReversedAmps,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False"
  208. Visibility="{Binding Data.SingleZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}"/>
  209. <DataGridTextColumn Header="Shear Plate&#x0a;Speed %" Width="100" Binding="{Binding ShearPlateSpeed,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False" />
  210. <DataGridTextColumn Header="Average&#x0a;Current" Width="100" Binding="{Binding ForwardAmps6,StringFormat=\{0:F3\},Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False"
  211. Visibility="{Binding Data.SingleZoneShow, Converter={StaticResource boolVisibilityConverter},Source={StaticResource DataShowProxy}}"/>
  212. </DataGrid.Columns>
  213. </DataGrid>
  214. <Grid Grid.Row="2" IsEnabled="{Binding Enable}">
  215. <Button Style="{StaticResource SysBtnStyle}" Content="Add Below" Height="35" Width="100" Command="{Binding AddBelowCommand}" HorizontalAlignment="Left" Margin="10,15,0,15"></Button>
  216. <Button Style="{StaticResource SysBtnStyle}" Content="Add Above" Height="35" Width="100" Command="{Binding AddAboveCommand}" HorizontalAlignment="Left" Margin="140,15,0,15"></Button>
  217. <Button Style="{StaticResource SysBtnStyle}" Content="Move Up" Height="35" Width="100" Command="{Binding MoveUpCommand}" HorizontalAlignment="Left" Margin="270,15,0,15"></Button>
  218. <Button Style="{StaticResource SysBtnStyle}" Content="Move Down" Height="35" Width="100" Command="{Binding MoveDownCommand}" HorizontalAlignment="Left" Margin="400,15,0,15"></Button>
  219. <Button Style="{StaticResource SysBtnStyle}" Content="Delete" Height="35" Width="100" Command="{Binding DeleteCommand}" HorizontalAlignment="Left" Margin="530,15,0,15"></Button>
  220. </Grid>
  221. </Grid>
  222. </GroupBox>
  223. </Grid>
  224. </TabItem>
  225. <TabItem Header="PulseSteps">
  226. <GroupBox Header="Pulse Setup" Width="400" HorizontalAlignment="Left" Margin="0,10,0,0">
  227. <Grid>
  228. <Grid.RowDefinitions>
  229. <RowDefinition Height="150"></RowDefinition>
  230. <RowDefinition Height="120"></RowDefinition>
  231. <RowDefinition Height="200"></RowDefinition>
  232. <RowDefinition/>
  233. </Grid.RowDefinitions>
  234. <DataGrid MinRowHeight="27" AutoGenerateColumns="False" CanUserAddRows="False" FontFamily="Arial" FontSize="14" Margin="0,10,0,0"
  235. ItemsSource="{Binding Recipe.PulsePowerSupplySteps}" SelectionMode="Single" IsEnabled="{Binding Enable}" SelectedIndex="{Binding SelectedPulseIndex,Mode=TwoWay}">
  236. <DataGrid.Resources>
  237. <extendedControls:BindingProxy x:Key="PulseTypeListProxy" Data="{Binding PulseTypeList}" />
  238. </DataGrid.Resources>
  239. <DataGrid.Columns>
  240. <DataGridComboBoxColumn Header="Type" Width="150" ItemsSource="{Binding Data,Source={StaticResource PulseTypeListProxy}}" SelectedItemBinding="{Binding Type,Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False">
  241. </DataGridComboBoxColumn>
  242. <DataGridTextColumn Header="Pulse (mSec)" Width="200" Binding="{Binding DurationHundredsMicroSeconds,Mode=TwoWay}" CanUserSort="false" CanUserReorder="False" CanUserResize="False"/>
  243. </DataGrid.Columns>
  244. </DataGrid>
  245. <Grid Grid.Row="1" IsEnabled="{Binding Enable}">
  246. <Button Style="{StaticResource SysBtnStyle}" Content="Add Below" Height="35" Width="100" Command="{Binding AddBelowPulseCommand}" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,15,0,0"></Button>
  247. <Button Style="{StaticResource SysBtnStyle}" Content="Add Above" Height="35" Width="100" Command="{Binding AddAbovePulseCommand}" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="140,15,0,0"></Button>
  248. <Button Style="{StaticResource SysBtnStyle}" Content="Move Up" Height="35" Width="100" Command="{Binding MoveUpPulseCommand}" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="270,15,0,0"></Button>
  249. <Button Style="{StaticResource SysBtnStyle}" Content="Move Down" Height="35" Width="100" Command="{Binding MoveDownPulseCommand}" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,65,0,0"></Button>
  250. <Button Style="{StaticResource SysBtnStyle}" Content="Delete" Height="35" Width="100" Command="{Binding DeletePulseCommand}" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="140,65,0,0"></Button>
  251. </Grid>
  252. </Grid>
  253. </GroupBox>
  254. </TabItem>
  255. </TabControl>
  256. </Grid>
  257. </Grid>
  258. </Grid>
  259. </Grid>
  260. </UserControl>