JobOperationView.xaml 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584
  1. <UserControl x:Class="PunkHPX8_MainPages.Views.JobOperationView"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:PunkHPX8_MainPages.Views"
  7. mc:Ignorable="d"
  8. xmlns:controls="http://OpenSEMI.Ctrlib.com/presentation"
  9. xmlns:customControls="clr-namespace:PunkHPX8_Themes.CustomControls;assembly=PunkHPX8_Themes"
  10. xmlns:Attach="clr-namespace:PunkHPX8_UI.Themes.Attach;assembly=PunkHPX8_Themes"
  11. xmlns:converters="clr-namespace:PunkHPX8_Themes.Converters;assembly=PunkHPX8_Themes"
  12. xmlns:converters2="clr-namespace:PunkHPX8_MainPages.Converters"
  13. xmlns:userControls="clr-namespace:PunkHPX8_Themes.UserControls;assembly=PunkHPX8_Themes"
  14. xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
  15. xmlns:prism="http://prismlibrary.com/"
  16. prism:ViewModelLocator.AutoWireViewModel="True"
  17. xmlns:deviceControl="clr-namespace:Aitex.Core.UI.DeviceControl;assembly=MECF.Framework.UI.Core"
  18. xmlns:unity="clr-namespace:PunkHPX8_MainPages.Unity"
  19. xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:ctrl="http://OpenSEMI.Ctrlib.com/presentation"
  20. d:DesignHeight="1200" d:DesignWidth="1920" x:Name="jobOperationView">
  21. <UserControl.Resources>
  22. <converters:BoolToVisibility2 x:Key="BoolToVisibility2"/>
  23. <converters:BoolToVisibility x:Key="BoolToVisibility"/>
  24. <Style x:Key="LP1Style">
  25. <Style.Triggers>
  26. <DataTrigger Binding="{Binding RtDataValues[LP1.IsLoaded]}" Value="True">
  27. <DataTrigger.EnterActions>
  28. <BeginStoryboard>
  29. <Storyboard>
  30. <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].X" To="30" Duration="0:0:1"/>
  31. </Storyboard>
  32. </BeginStoryboard>
  33. </DataTrigger.EnterActions>
  34. <DataTrigger.ExitActions>
  35. <BeginStoryboard>
  36. <Storyboard>
  37. <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].X" To="0" Duration="0:0:1"/>
  38. </Storyboard>
  39. </BeginStoryboard>
  40. </DataTrigger.ExitActions>
  41. </DataTrigger>
  42. </Style.Triggers>
  43. </Style>
  44. <Style x:Key="LP2Style">
  45. <Style.Triggers>
  46. <DataTrigger Binding="{Binding RtDataValues[LP2.IsLoaded]}" Value="True">
  47. <DataTrigger.EnterActions>
  48. <BeginStoryboard>
  49. <Storyboard>
  50. <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].X" To="30" Duration="0:0:1"/>
  51. </Storyboard>
  52. </BeginStoryboard>
  53. </DataTrigger.EnterActions>
  54. <DataTrigger.ExitActions>
  55. <BeginStoryboard>
  56. <Storyboard>
  57. <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].X" To="0" Duration="0:0:1"/>
  58. </Storyboard>
  59. </BeginStoryboard>
  60. </DataTrigger.ExitActions>
  61. </DataTrigger>
  62. </Style.Triggers>
  63. </Style>
  64. <Style x:Key="LP3Style">
  65. <Style.Triggers>
  66. <DataTrigger Binding="{Binding RtDataValues[LP3.IsLoaded]}" Value="True">
  67. <DataTrigger.EnterActions>
  68. <BeginStoryboard>
  69. <Storyboard>
  70. <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].X" To="30" Duration="0:0:1"/>
  71. </Storyboard>
  72. </BeginStoryboard>
  73. </DataTrigger.EnterActions>
  74. <DataTrigger.ExitActions>
  75. <BeginStoryboard>
  76. <Storyboard>
  77. <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].X" To="0" Duration="0:0:1"/>
  78. </Storyboard>
  79. </BeginStoryboard>
  80. </DataTrigger.ExitActions>
  81. </DataTrigger>
  82. </Style.Triggers>
  83. </Style>
  84. <converters:MutiBoolToBool x:Key="mutiBoolToBool"/>
  85. </UserControl.Resources>
  86. <Canvas>
  87. <Grid Canvas.Left="116" Canvas.Top="104" Panel.ZIndex="2" Visibility="{Binding LP1Unable,Converter={StaticResource bool2VisibilityConverter}}">
  88. <Rectangle Width="70" Height="70" Fill="Silver" Opacity="0.8" RadiusX="0.1" RadiusY="0.1"
  89. />
  90. </Grid>
  91. <Grid Canvas.Left="116" Canvas.Top="247" Panel.ZIndex="2" Visibility="{Binding LP2Unable,Converter={StaticResource bool2VisibilityConverter}}">
  92. <Rectangle Width="70" Height="70" Fill="Silver" Opacity="0.8" RadiusX="0.1" RadiusY="0.1"
  93. />
  94. </Grid>
  95. <Canvas Canvas.Top="74" Height="1126" Width="1920" HorizontalAlignment="Center" VerticalAlignment="Top">
  96. <Canvas Height="306" Width="448" HorizontalAlignment="Left" Canvas.Left="42" VerticalAlignment="Center">
  97. <Grid Height="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Canvas}},Path=Height}" Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Canvas}},Path=Width}" Background="{DynamicResource Table_BG_Content}">
  98. <Grid.RowDefinitions>
  99. <RowDefinition/>
  100. <RowDefinition/>
  101. </Grid.RowDefinitions>
  102. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,1,1,0" Background="{DynamicResource Table_BG_Content}" Grid.Row="0" Padding="5,1,0,1">
  103. <Grid Margin="206,5,5,5" >
  104. <Grid.RowDefinitions>
  105. <RowDefinition/>
  106. <RowDefinition/>
  107. </Grid.RowDefinitions>
  108. <Grid.ColumnDefinitions>
  109. <ColumnDefinition/>
  110. <ColumnDefinition/>
  111. </Grid.ColumnDefinitions>
  112. <StackPanel Grid.ColumnSpan="2" HorizontalAlignment="Left" VerticalAlignment="Center" Orientation="Horizontal">
  113. <TextBlock Text="Wafer Count:" FontSize="15" FontFamily="Arial" Margin="15,0,20,0"/>
  114. <TextBlock Text="{Binding LP1WaferCount}" FontSize="15" FontFamily="Arial"/>
  115. </StackPanel>
  116. <customControls:PathButton Grid.Row="1" IsEnabled="{Binding IsLP1Unable}" Content="Map" Width="90" Height="33" Command="{Binding LPMapCommand}" CommandParameter="LP1"/>
  117. </Grid>
  118. </Border>
  119. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,1,1,0" Background="{DynamicResource Table_BG_Content}" Grid.Row="1" Padding="5,1,0,1">
  120. <Grid Grid.Row="1" Margin="206,0,0,0">
  121. <Grid.RowDefinitions>
  122. <RowDefinition/>
  123. <RowDefinition/>
  124. </Grid.RowDefinitions>
  125. <Grid.ColumnDefinitions>
  126. <ColumnDefinition/>
  127. <ColumnDefinition/>
  128. </Grid.ColumnDefinitions>
  129. <StackPanel Grid.ColumnSpan="2" HorizontalAlignment="Left" VerticalAlignment="Center" Orientation="Horizontal">
  130. <TextBlock Text="Wafer Count:" FontSize="15" FontFamily="Arial" Margin="15,0,20,0"/>
  131. <TextBlock Text="{Binding LP2WaferCount}" FontSize="15" FontFamily="Arial"/>
  132. </StackPanel>
  133. <customControls:PathButton Grid.Row="1" IsEnabled="{Binding IsLP2Unable}" Content="Map" Width="90" Height="33" Command="{Binding LPMapCommand}" CommandParameter="LP2"/>
  134. </Grid>
  135. </Border>
  136. </Grid>
  137. <Viewbox Stretch="Fill" Height="330" Width="330" Canvas.Left="158" Canvas.Top="10" HorizontalAlignment="Left" VerticalAlignment="Top">
  138. <Canvas Width="1000" Height="1000">
  139. <userControls:Loadport Canvas.Top="20" Width="300" Height="300" RotateTransformValue="90" HorizontalAlignment="Left" VerticalAlignment="Top"/>
  140. <userControls:Foup Width="230" Height="450" Canvas.Left="-35" Canvas.Top="53" Visibility="{Binding RtDataValues[LP1.CassettePlaced],Converter={StaticResource BoolToVisibility2}}" Style="{StaticResource LP1Style}" RotateTransformValue="90">
  141. <userControls:Foup.RenderTransform>
  142. <TransformGroup>
  143. <TranslateTransform/>
  144. </TransformGroup>
  145. </userControls:Foup.RenderTransform>
  146. </userControls:Foup>
  147. </Canvas>
  148. </Viewbox>
  149. <Viewbox Stretch="Fill" Height="330" Width="330" Canvas.Left="158" Canvas.Top="152" HorizontalAlignment="Left" VerticalAlignment="Center">
  150. <Canvas Width="1000" Height="1000">
  151. <userControls:Loadport Canvas.Top="20" Width="300" Height="300" RotateTransformValue="90" HorizontalAlignment="Left" VerticalAlignment="Top"/>
  152. <userControls:Foup Width="230" Height="450" Canvas.Left="-35" Canvas.Top="53" Visibility="{Binding RtDataValues[LP2.CassettePlaced],Converter={StaticResource BoolToVisibility2}}" Style="{StaticResource LP2Style}" RotateTransformValue="90">
  153. <userControls:Foup.RenderTransform>
  154. <TransformGroup>
  155. <TranslateTransform/>
  156. </TransformGroup>
  157. </userControls:Foup.RenderTransform>
  158. </userControls:Foup>
  159. </Canvas>
  160. </Viewbox>
  161. </Canvas>
  162. <Grid Height="AUTO" Width="1800" HorizontalAlignment="Center" VerticalAlignment="Top" Canvas.Left="60" Canvas.Top="-40" >
  163. <Grid.ColumnDefinitions>
  164. <ColumnDefinition Width="2.5*"/>
  165. <ColumnDefinition Width="2.5*"/>
  166. <ColumnDefinition Width="2.5*"/>
  167. <ColumnDefinition Width="2.5*"/>
  168. </Grid.ColumnDefinitions>
  169. <Grid Grid.Column="1" HorizontalAlignment="Center" unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="Black" Background="{DynamicResource Table_BG_Content}" Width="AUTO" >
  170. <Grid.RowDefinitions>
  171. <RowDefinition Height="AUTO"></RowDefinition>
  172. <RowDefinition Height="33"></RowDefinition>
  173. <RowDefinition Height="33"></RowDefinition>
  174. <RowDefinition Height="33"></RowDefinition>
  175. <RowDefinition Height="33"></RowDefinition>
  176. <RowDefinition Height="33"></RowDefinition>
  177. <RowDefinition Height="33"></RowDefinition>
  178. <RowDefinition Height="33"></RowDefinition>
  179. <RowDefinition Height="33"></RowDefinition>
  180. <RowDefinition Height="33"></RowDefinition>
  181. <RowDefinition Height ="1*"></RowDefinition>
  182. </Grid.RowDefinitions>
  183. <Label Content="LP1" Background="{DynamicResource Table_BG_Title}" BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,1,1,1" Grid.Row="0" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
  184. <StackPanel Grid.Row="1" Orientation="Horizontal">
  185. <TextBlock Margin="5,0,0,0" Text="Lot ID:" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="15" FontFamily="Arial" VerticalAlignment="Center" Width="80"></TextBlock>
  186. <TextBox Margin="5,3,0,3" FontSize="15" Text="{Binding LP1WaferAssociation.LotId}" Width="242" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" RenderTransformOrigin="0.319,0.594" IsEnabled="{Binding ButtonIsEnableLP1}"/>
  187. </StackPanel>
  188. <StackPanel Grid.Row="2" Orientation="Horizontal">
  189. <TextBlock Margin="5,0,10,0" Text="Sequence Type:" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="15" FontFamily="Arial" VerticalAlignment="Center" Width="111"></TextBlock>
  190. <CheckBox Margin="5" Content="Engineering" VerticalAlignment="Center" IsChecked="{Binding LP1RecipeMode,Converter={StaticResource BoolToBool}}" IsEnabled="{Binding ButtonIsEnableLP1}">
  191. <i:Interaction.Triggers>
  192. <i:EventTrigger EventName="Checked">
  193. <i:InvokeCommandAction Command="{Binding SeqTypeChangeCommand}" CommandParameter="{Binding LP1WaferAssociation}"/>
  194. </i:EventTrigger>
  195. <i:EventTrigger EventName="Unchecked">
  196. <i:InvokeCommandAction Command="{Binding SeqTypeChangeCommand}" CommandParameter="{Binding LP1WaferAssociation}"/>
  197. </i:EventTrigger>
  198. </i:Interaction.Triggers>
  199. </CheckBox>
  200. <CheckBox Margin="5" Content="Production" VerticalAlignment="Center" IsChecked="{Binding LP1RecipeMode}" IsEnabled="{Binding ButtonIsEnableLP1}">
  201. <i:Interaction.Triggers>
  202. <i:EventTrigger EventName="Checked">
  203. <i:InvokeCommandAction Command="{Binding SeqTypeChangeCommand}" CommandParameter="{Binding LP1WaferAssociation}"/>
  204. </i:EventTrigger>
  205. <i:EventTrigger EventName="Unchecked">
  206. <i:InvokeCommandAction Command="{Binding SeqTypeChangeCommand}" CommandParameter="{Binding LP1WaferAssociation}"/>
  207. </i:EventTrigger>
  208. </i:Interaction.Triggers>
  209. </CheckBox>
  210. </StackPanel>
  211. <StackPanel Grid.Row="3" Orientation="Horizontal">
  212. <TextBlock Margin="5,0,0,0" Text="Sequence:" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="15" FontFamily="Arial" VerticalAlignment="Center" Width="80"></TextBlock>
  213. <ComboBox Margin="5,3,0,3" Width="242" SelectedItem="{Binding LP1SequenceName}" ItemsSource="{Binding SequenceSelectedItemsSource1}" IsEnabled="{Binding ButtonIsEnableLP1}">
  214. <i:Interaction.Triggers>
  215. <i:EventTrigger EventName="SelectionChanged">
  216. <i:InvokeCommandAction Command="{Binding SelectionChangedCommand}" CommandParameter="{Binding LP1WaferAssociation.ModuleData.ModuleID}"/>
  217. </i:EventTrigger>
  218. </i:Interaction.Triggers>
  219. </ComboBox>
  220. </StackPanel>
  221. <Grid Grid.Row="4" >
  222. <Grid.ColumnDefinitions>
  223. <ColumnDefinition/>
  224. <ColumnDefinition/>
  225. </Grid.ColumnDefinitions>
  226. <StackPanel Orientation="Horizontal" >
  227. <TextBlock Text="Cycle Set:" Margin="5,0,0,0" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" VerticalAlignment="Center" Width="65"></TextBlock>
  228. <CheckBox Margin="5" x:Name="IsEnableCycleCheckBox1" Content="IsEnable" VerticalAlignment="Center" Padding="3 0 0 0" IsEnabled="{Binding ButtonIsEnableLP1}" IsChecked="{Binding LP1WaferAssociation.IsEnableCycle}"/>
  229. </StackPanel>
  230. <StackPanel Orientation="Horizontal" Grid.Column="1">
  231. <TextBlock Text="Cycle Num:" Margin="5,0,0,0" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" VerticalAlignment="Center" Width="80"></TextBlock>
  232. <TextBox x:Name="CycleNumTextbox1" Margin="5,0,0,0" Width="72" VerticalAlignment="Center" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Height="20" BorderThickness="1" Text="{Binding LP1WaferAssociation.CycleNumber}" >
  233. <TextBox.IsEnabled>
  234. <MultiBinding Converter="{StaticResource mutiBoolToBool}">
  235. <Binding Path="ButtonIsEnableLP1" />
  236. <Binding ElementName="IsEnableCycleCheckBox1" Path="IsChecked"/>
  237. </MultiBinding>
  238. </TextBox.IsEnabled>
  239. </TextBox>
  240. </StackPanel>
  241. </Grid>
  242. <StackPanel Grid.Row="5" Orientation="Horizontal">
  243. <TextBlock Text="Cycle Info:" Margin="5,0,0,0" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" VerticalAlignment="Center" Width="80"></TextBlock>
  244. <TextBlock FontSize="12" FontFamily="Arial" VerticalAlignment="Center">
  245. <TextBlock.Text>
  246. <MultiBinding StringFormat="{}{0}/{1} Wafer Count: {2}" >
  247. <Binding Path="RtDataValues[LP1.CycleSetPoint]"></Binding>
  248. <Binding Path="RtDataValues[LP1.CycledCount]"></Binding>
  249. <Binding Path="RtDataValues[LP1.CycledWafer]"></Binding>
  250. </MultiBinding>
  251. </TextBlock.Text>
  252. </TextBlock>
  253. </StackPanel>
  254. <StackPanel Grid.Row="6" Orientation="Horizontal" HorizontalAlignment="Center">
  255. <Button Content="Select All" Width="94" Height="28" Margin="10,2,10,2" Command="{Binding SelectAllCommand}" CommandParameter="{Binding LP1WaferAssociation}"/>
  256. <Button Content="DeSelect All" Width="94" Height="28" Margin="-5,2,10,2" Command="{Binding UnSelectAllCommand}" CommandParameter="{Binding LP1WaferAssociation}"/>
  257. </StackPanel>
  258. <Grid Grid.Row="7" >
  259. <Grid.ColumnDefinitions>
  260. <ColumnDefinition/>
  261. <ColumnDefinition/>
  262. </Grid.ColumnDefinitions>
  263. <StackPanel Grid.Column="0" Orientation="Horizontal">
  264. <TextBlock Margin="5,0,0,0" Text="Name:" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="15" FontFamily="Arial" VerticalAlignment="Center" Width="52"/>
  265. <TextBox Margin="0,3,0,3" FontSize="15" Text="{Binding LP1WaferAssociation.JobID}" Width="109" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" RenderTransformOrigin="0.319,0.594" IsEnabled="{Binding ButtonIsEnableLP1}"/>
  266. </StackPanel>
  267. <StackPanel Grid.Column="1" Orientation="Horizontal">
  268. <TextBlock Margin="5,0,0,0" Text="Status:" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="15" FontFamily="Arial" VerticalAlignment="Center" Width="52"/>
  269. <TextBox Margin="0,3,0,3" FontSize="15" Text="{Binding LP1WaferAssociation.JobStatus}" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" Width="115" RenderTransformOrigin="0.319,0.594" IsEnabled="False"/>
  270. </StackPanel>
  271. </Grid>
  272. <StackPanel Grid.Row="8" Orientation="Horizontal" HorizontalAlignment="Center">
  273. <Button IsEnabled="{Binding IsLP1CanCreatedJob}" Content="Create Job" Width="94" Height="28" Margin="10,2,10,2" Command="{Binding CreateJobCommand}" CommandParameter="{Binding LP1WaferAssociation}"/>
  274. </StackPanel>
  275. <StackPanel Grid.Row="9" Orientation="Horizontal" HorizontalAlignment="Center">
  276. <Button IsEnabled="{Binding IsLP1AutoStoped}" Content="Start" Width="64" Height="28" Margin="10,2,10,2" Command="{Binding StartCommand}" CommandParameter="{Binding LP1WaferAssociation}"/>
  277. <Button IsEnabled="{Binding IsLP1AutoStarted}" Content="Stop" Width="64" Height="28" Margin="10,2,10,2" Command="{Binding StopCommand}" CommandParameter="{Binding LP1WaferAssociation}"/>
  278. </StackPanel>
  279. <ListBox Grid.Row="10" ItemsSource="{Binding LP1WaferAssociation.ModuleData.WaferManager.Wafers}" Name="list1" IsEnabled="{Binding IsLP1Unable}">
  280. <ListBox.Resources>
  281. <Style TargetType="ListBoxItem" BasedOn="{StaticResource ResourceKey={x:Type ListBoxItem}}">
  282. <Setter Property="Rectangle.StrokeThickness" Value="1"/>
  283. </Style>
  284. </ListBox.Resources>
  285. <ListBox.ItemTemplate>
  286. <DataTemplate>
  287. <Grid Height="18" Background="#F5F7FA">
  288. <Grid.ColumnDefinitions>
  289. <ColumnDefinition Width="AUTO"></ColumnDefinition>
  290. <ColumnDefinition Width="AUTO"></ColumnDefinition>
  291. <ColumnDefinition Width="AUTO"></ColumnDefinition>
  292. </Grid.ColumnDefinitions>
  293. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0 0 1 1" Width="110" >
  294. <controls:Slot ViewType="Bottom" WaferStatus="{Binding WaferStatus}" SlotID="{Binding SlotID}" ModuleID="{Binding ModuleID}"
  295. SourceName="{Binding SourceName}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="8,1,8,1"
  296. SlotMouseButtonDown="Slot_SlotMouseButtonDown" WaferTransferStarted="Slot_WaferTransferStarted" FontFamily="Arial" FontSize="2">
  297. </controls:Slot>
  298. </Border>
  299. <Border Grid.Column="1" BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,1,1" Width="200" >
  300. <Border.Style>
  301. <Style>
  302. <Style.Triggers>
  303. <DataTrigger Binding="{Binding WaferStatus}" Value="0">
  304. <Setter Property="Border.Background" Value="AliceBlue"/>
  305. </DataTrigger>
  306. <DataTrigger Binding="{Binding WaferStatus}" Value="1">
  307. <Setter Property="Border.Background" Value="AliceBlue"/>
  308. </DataTrigger>
  309. </Style.Triggers>
  310. </Style>
  311. </Border.Style>
  312. <TextBlock Name="txtSeqName" Text="{Binding SequenceName}" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
  313. </Border>
  314. <Border Grid.Column="2" BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,0,1" Width="110" Padding="5,1" >
  315. <Button Width="60" Height="14" Command="{Binding Path=DataContext.SetSequenceCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListBox}}" CommandParameter="{Binding}" IsEnabled="{Binding ButtonIsEnableLP1}">
  316. <Button.Style>
  317. <Style TargetType="{x:Type Button}" BasedOn="{StaticResource ResourceKey={x:Type Button}}">
  318. <Setter Property="Button.Content" Value="Remove"/>
  319. <Setter Property="FontSize" Value="10" />
  320. <Style.Triggers>
  321. <DataTrigger Binding="{Binding ElementName=txtSeqName, Path=Text}" Value="{x:Static sys:String.Empty}">
  322. <Setter Property="Button.Content" Value="Set"/>
  323. </DataTrigger>
  324. <DataTrigger Binding="{Binding WaferStatus}" Value="0">
  325. <Setter Property="Button.IsEnabled" Value="False"/>
  326. </DataTrigger>
  327. </Style.Triggers>
  328. </Style>
  329. </Button.Style>
  330. </Button>
  331. </Border>
  332. </Grid>
  333. </DataTemplate>
  334. </ListBox.ItemTemplate>
  335. </ListBox>
  336. </Grid>
  337. <Grid Grid.Column="2" HorizontalAlignment="Center" unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="Black" Background="{DynamicResource Table_BG_Content}" Width="AUTO" >
  338. <Grid.RowDefinitions>
  339. <RowDefinition Height="AUTO"></RowDefinition>
  340. <RowDefinition Height="33"></RowDefinition>
  341. <RowDefinition Height="33"></RowDefinition>
  342. <RowDefinition Height="33"></RowDefinition>
  343. <RowDefinition Height="33"></RowDefinition>
  344. <RowDefinition Height="33"></RowDefinition>
  345. <RowDefinition Height="33"></RowDefinition>
  346. <RowDefinition Height="33"></RowDefinition>
  347. <RowDefinition Height="33"></RowDefinition>
  348. <RowDefinition Height="33"></RowDefinition>
  349. <RowDefinition Height ="1*"></RowDefinition>
  350. </Grid.RowDefinitions>
  351. <Label Content="LP2" Background="{DynamicResource Table_BG_Title}" BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,1,1,1" Grid.Row="0" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
  352. <StackPanel Grid.Row="1" Orientation="Horizontal">
  353. <TextBlock Margin="5,0,0,0" Text="Lot ID:" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="15" FontFamily="Arial" VerticalAlignment="Center" Width="80"></TextBlock>
  354. <TextBox Margin="5,3,0,3" FontSize="15" Text="{Binding LP2WaferAssociation.LotId}" Width="242" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" RenderTransformOrigin="0.319,0.594" IsEnabled="{Binding ButtonIsEnableLP2}" />
  355. </StackPanel>
  356. <StackPanel Grid.Row="2" Orientation="Horizontal">
  357. <TextBlock Margin="5,0,10,0" Text="Sequence Type:" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="15" FontFamily="Arial" VerticalAlignment="Center" Width="111"></TextBlock>
  358. <CheckBox Margin="5" Content="Engineering" VerticalAlignment="Center" IsChecked="{Binding LP2RecipeMode,Converter={StaticResource BoolToBool}}" IsEnabled="{Binding ButtonIsEnableLP2}">
  359. <i:Interaction.Triggers>
  360. <i:EventTrigger EventName="Checked">
  361. <i:InvokeCommandAction Command="{Binding SeqTypeChangeCommand}" CommandParameter="{Binding LP2WaferAssociation}"/>
  362. </i:EventTrigger>
  363. <i:EventTrigger EventName="Unchecked">
  364. <i:InvokeCommandAction Command="{Binding SeqTypeChangeCommand}" CommandParameter="{Binding LP2WaferAssociation}"/>
  365. </i:EventTrigger>
  366. </i:Interaction.Triggers>
  367. </CheckBox>
  368. <CheckBox Margin="5" Content="Production" VerticalAlignment="Center" IsChecked="{Binding LP2RecipeMode}" IsEnabled="{Binding ButtonIsEnableLP2}">
  369. <i:Interaction.Triggers>
  370. <i:EventTrigger EventName="Checked">
  371. <i:InvokeCommandAction Command="{Binding SeqTypeChangeCommand}" CommandParameter="{Binding LP2WaferAssociation}"/>
  372. </i:EventTrigger>
  373. <i:EventTrigger EventName="Unchecked">
  374. <i:InvokeCommandAction Command="{Binding SeqTypeChangeCommand}" CommandParameter="{Binding LP2WaferAssociation}"/>
  375. </i:EventTrigger>
  376. </i:Interaction.Triggers>
  377. </CheckBox>
  378. </StackPanel>
  379. <StackPanel Grid.Row="3" Orientation="Horizontal">
  380. <TextBlock Margin="5,0,0,0" Text="Sequence:" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="15" FontFamily="Arial" VerticalAlignment="Center" Width="80"></TextBlock>
  381. <ComboBox Margin="5,3,0,3" Width="242" SelectedItem="{Binding LP2SequenceName}" ItemsSource="{Binding SequenceSelectedItemsSource2}" IsEnabled="{Binding ButtonIsEnableLP2}">
  382. <i:Interaction.Triggers>
  383. <i:EventTrigger EventName="SelectionChanged">
  384. <i:InvokeCommandAction Command="{Binding SelectionChangedCommand}" CommandParameter="{Binding LP2WaferAssociation.ModuleData.ModuleID}"/>
  385. </i:EventTrigger>
  386. </i:Interaction.Triggers>
  387. </ComboBox>
  388. </StackPanel>
  389. <Grid Grid.Row="4" >
  390. <Grid.ColumnDefinitions>
  391. <ColumnDefinition/>
  392. <ColumnDefinition/>
  393. </Grid.ColumnDefinitions>
  394. <StackPanel Orientation="Horizontal" >
  395. <TextBlock Text="Cycle Set:" Margin="5,0,0,0" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" VerticalAlignment="Center" Width="65"></TextBlock>
  396. <CheckBox Margin="5" x:Name="IsEnableCycleCheckBox2" Content="IsEnable" IsChecked="{Binding LP2WaferAssociation.IsEnableCycle}" IsEnabled="{Binding ButtonIsEnableLP2}" VerticalAlignment="Center" Padding="3 0 0 0"/>
  397. </StackPanel>
  398. <StackPanel Orientation="Horizontal" Grid.Column="1">
  399. <TextBlock Text="Cycle Num:" Margin="5,0,0,0" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" VerticalAlignment="Center" Width="80"></TextBlock>
  400. <TextBox x:Name="CycleNumTextbox2" Margin="5,0,0,0" Width="72" VerticalAlignment="Center" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Height="20" BorderThickness="1" Text="{Binding LP2WaferAssociation.CycleNumber}">
  401. <TextBox.IsEnabled>
  402. <MultiBinding Converter="{StaticResource mutiBoolToBool}">
  403. <Binding Path="ButtonIsEnableLP2" />
  404. <Binding ElementName="IsEnableCycleCheckBox2" Path="IsChecked"/>
  405. </MultiBinding>
  406. </TextBox.IsEnabled>
  407. </TextBox>
  408. </StackPanel>
  409. </Grid>
  410. <StackPanel Grid.Row="5" Orientation="Horizontal">
  411. <TextBlock Text="Cycle Info:" Margin="5,0,0,0" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" VerticalAlignment="Center" Width="80"></TextBlock>
  412. <TextBlock FontSize="12" FontFamily="Arial" VerticalAlignment="Center">
  413. <TextBlock.Text>
  414. <MultiBinding StringFormat="{}{0}/{1} Wafer Count: {2}" >
  415. <Binding Path="RtDataValues[LP2.CycleSetPoint]"></Binding>
  416. <Binding Path="RtDataValues[LP2.CycledCount]"></Binding>
  417. <Binding Path="RtDataValues[LP2.CycledWafer]"></Binding>
  418. </MultiBinding>
  419. </TextBlock.Text>
  420. </TextBlock>
  421. </StackPanel>
  422. <StackPanel Grid.Row="6" Orientation="Horizontal" HorizontalAlignment="Center">
  423. <Button Content="Select All" Width="94" Height="28" Margin="10,2,10,2" Command="{Binding SelectAllCommand}" CommandParameter="{Binding LP2WaferAssociation}"/>
  424. <Button Content="DeSelect All" Width="94" Height="28" Margin="-5,2,10,2" Command="{Binding UnSelectAllCommand}" CommandParameter="{Binding LP2WaferAssociation}"/>
  425. </StackPanel>
  426. <Grid Grid.Row="7" >
  427. <Grid.ColumnDefinitions>
  428. <ColumnDefinition/>
  429. <ColumnDefinition/>
  430. </Grid.ColumnDefinitions>
  431. <StackPanel Orientation="Horizontal" >
  432. <TextBlock Margin="5,0,0,0" Text="Name:" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="15" FontFamily="Arial" VerticalAlignment="Center" Width="52"></TextBlock>
  433. <TextBox Margin="0,3,0,3" FontSize="15" Text="{Binding LP2WaferAssociation.JobID}" Width="101" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" RenderTransformOrigin="0.319,0.594" IsEnabled="{Binding ButtonIsEnableLP2}"/>
  434. </StackPanel>
  435. <StackPanel Orientation="Horizontal" Grid.Column="1">
  436. <TextBlock Margin="5,0,0,0" Text="Status:" TextWrapping="Wrap" Foreground="{DynamicResource FG_Black}" FontSize="15" FontFamily="Arial" VerticalAlignment="Center" Width="52"></TextBlock>
  437. <TextBox Margin="0,3,0,3" FontSize="15" IsEnabled="False" Text="{Binding LP2WaferAssociation.JobStatus}" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" Width="115" RenderTransformOrigin="0.319,0.594"/>
  438. </StackPanel>
  439. </Grid>
  440. <StackPanel Grid.Row="8" Orientation="Horizontal" HorizontalAlignment="Center">
  441. <Button IsEnabled="{Binding IsLP2CanCreatedJob}" Content="Create Job" Width="94" Height="28" Margin="10,2,10,2" Command="{Binding CreateJobCommand}" CommandParameter="{Binding LP2WaferAssociation}"/>
  442. </StackPanel>
  443. <StackPanel Grid.Row="9" Orientation="Horizontal" HorizontalAlignment="Center">
  444. <Button IsEnabled="{Binding IsLP2AutoStoped}" Content="Start" Width="64" Height="28" Margin="10,2,10,2" Command="{Binding StartCommand}" CommandParameter="{Binding LP2WaferAssociation}"/>
  445. <Button IsEnabled="{Binding IsLP2AutoStarted}" Content="Stop" Width="64" Height="28" Margin="10,2,10,2" Command="{Binding StopCommand}" CommandParameter="{Binding LP2WaferAssociation}"/>
  446. </StackPanel>
  447. <ListBox Grid.Row="10" ItemsSource="{Binding LP2WaferAssociation.ModuleData.WaferManager.Wafers}" Name="list2" IsEnabled="{Binding IsLP2Unable}">
  448. <ListBox.Resources>
  449. <Style TargetType="ListBoxItem" BasedOn="{StaticResource ResourceKey={x:Type ListBoxItem}}">
  450. <Setter Property="Rectangle.StrokeThickness" Value="1"/>
  451. </Style>
  452. </ListBox.Resources>
  453. <ListBox.ItemTemplate>
  454. <DataTemplate>
  455. <Grid Height="18" Background="#F5F7FA">
  456. <Grid.ColumnDefinitions>
  457. <ColumnDefinition Width="AUTO"></ColumnDefinition>
  458. <ColumnDefinition Width="AUTO"></ColumnDefinition>
  459. <ColumnDefinition Width="AUTO"></ColumnDefinition>
  460. </Grid.ColumnDefinitions>
  461. <Border BorderBrush="{DynamicResource Table_BD}" BorderThickness="0 0 1 1" Width="110" >
  462. <controls:Slot ViewType="Bottom" WaferStatus="{Binding WaferStatus}" SlotID="{Binding SlotID}" ModuleID="{Binding ModuleID}"
  463. SourceName="{Binding SourceName}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="8,1,8,1"
  464. SlotMouseButtonDown="Slot_SlotMouseButtonDown" WaferTransferStarted="Slot_WaferTransferStarted" FontFamily="Arial" FontSize="2">
  465. </controls:Slot>
  466. </Border>
  467. <Border Grid.Column="1" BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,1,1" Width="200" >
  468. <Border.Style>
  469. <Style>
  470. <Style.Triggers>
  471. <DataTrigger Binding="{Binding WaferStatus}" Value="0">
  472. <Setter Property="Border.Background" Value="AliceBlue"/>
  473. </DataTrigger>
  474. <DataTrigger Binding="{Binding WaferStatus}" Value="1">
  475. <Setter Property="Border.Background" Value="AliceBlue"/>
  476. </DataTrigger>
  477. </Style.Triggers>
  478. </Style>
  479. </Border.Style>
  480. <TextBlock Name="txtSeqName" Text="{Binding SequenceName}" Foreground="{DynamicResource FG_Black}" FontSize="12" FontFamily="Arial" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
  481. </Border>
  482. <Border Grid.Column="2" BorderBrush="{DynamicResource Table_BD}" BorderThickness="0,0,0,1" Width="110" Padding="5,1" >
  483. <Button Width="60" Height="14" Command="{Binding Path=DataContext.SetSequenceCommand, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListBox}}" CommandParameter="{Binding}" IsEnabled="{Binding ButtonIsEnableLP1}">
  484. <Button.Style>
  485. <Style TargetType="{x:Type Button}" BasedOn="{StaticResource ResourceKey={x:Type Button}}">
  486. <Setter Property="Button.Content" Value="Remove"/>
  487. <Setter Property="FontSize" Value="10" />
  488. <Style.Triggers>
  489. <DataTrigger Binding="{Binding ElementName=txtSeqName, Path=Text}" Value="{x:Static sys:String.Empty}">
  490. <Setter Property="Button.Content" Value="Set"/>
  491. </DataTrigger>
  492. <DataTrigger Binding="{Binding WaferStatus}" Value="0">
  493. <Setter Property="Button.IsEnabled" Value="False"/>
  494. </DataTrigger>
  495. </Style.Triggers>
  496. </Style>
  497. </Button.Style>
  498. </Button>
  499. </Border>
  500. </Grid>
  501. </DataTemplate>
  502. </ListBox.ItemTemplate>
  503. </ListBox>
  504. </Grid>
  505. </Grid>
  506. </Canvas>
  507. <TextBox IsReadOnly="True" BorderThickness="0" Text="LP1" FontSize="20" Width="40" Height="28" Background="Transparent" HorizontalContentAlignment="Center" HorizontalAlignment="Left" Canvas.Left="50" Canvas.Top="130" VerticalAlignment="Top"/>
  508. <TextBox IsReadOnly="True" BorderThickness="0" Text="LP2" FontSize="20" Width="40" Height="28" Background="Transparent" HorizontalContentAlignment="Center" Canvas.Left="50" Canvas.Top="266" HorizontalAlignment="Center" VerticalAlignment="Top"/>
  509. <TextBlock Canvas.Top="150" Canvas.Left="50" Text="{Binding RtDataValues[LP1.WaferSize], StringFormat=({0})}" Visibility="{Binding RtDataValues[LP1.CassettePlaced], Converter={StaticResource BoolToVisibility2}}"
  510. HorizontalAlignment="Center" Margin="0,5,0,0" FontSize="16">
  511. </TextBlock>
  512. <TextBlock Canvas.Top="300" Canvas.Left="50" Text="{Binding RtDataValues[LP2.WaferSize], StringFormat=({0})}" Visibility="{Binding RtDataValues[LP2.CassettePlaced], Converter={StaticResource BoolToVisibility2}}"
  513. HorizontalAlignment="Center" Margin="0,5,0,0" FontSize="16">
  514. </TextBlock>
  515. <TextBlock Canvas.Top="420" Canvas.Left="50" Text="{Binding RtDataValues[LP3.WaferSize], StringFormat=({0})}" Visibility="{Binding RtDataValues[LP3.CassettePlaced], Converter={StaticResource BoolToVisibility2}}"
  516. HorizontalAlignment="Center" Margin="0,5,0,0" FontSize="16">
  517. </TextBlock>
  518. </Canvas>
  519. </UserControl>