FoupListControl.xaml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. <UserControl x:Class="EfemUI.Controls.FoupListControl"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. xmlns:Common="clr-namespace:Aitex.Sorter.Common;assembly=Aitex.Sorter.Common"
  7. xmlns:ctrlCommon="clr-namespace:Aitex.Sorter.UI.Controls.Common;assembly=Aitex.Sorter.UI"
  8. xmlns:common="clr-namespace:Aitex.Sorter.UI.Controls.Common;assembly=Aitex.Sorter.UI"
  9. xmlns:ctrl1="clr-namespace:Aitex.Sorter.UI.Controls;assembly=Aitex.Sorter.UI"
  10. xmlns:local="clr-namespace:EfemUI.Controls"
  11. mc:Ignorable="d"
  12. d:DesignHeight="800" d:DesignWidth="900">
  13. <UserControl.Resources>
  14. <DataTemplate x:Key="opencassette">
  15. <ctrl1:HeaderPanel VerticalAlignment="Top" HorizontalAlignment="Left" Height="125" Width="168" Visibility="{Binding DataContext.ShowAction, ElementName=root,Converter={StaticResource boolVisibilityConverter},ConverterParameter={StaticResource True}}">
  16. <ctrl1:HeaderPanel.Header>
  17. <StackPanel Orientation="Horizontal">
  18. <Label Style="{StaticResource Rfid16Digits}" Height="40" Content="{Binding FoupID}" />
  19. </StackPanel>
  20. </ctrl1:HeaderPanel.Header>
  21. <Grid>
  22. <Grid.RowDefinitions>
  23. <RowDefinition Height="45" />
  24. <RowDefinition Height="30" />
  25. </Grid.RowDefinitions>
  26. <TextBox Height="40" Width="180" Margin="3,3,0,0" Text="{Binding FoupIDSetPoint}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.SetManualScanCode}" ctrlCommon:CommandHelper.Target="{Binding Station}" ctrlCommon:CommandHelper.Parameter1="{Binding Text, RelativeSource={RelativeSource Self}}" ctrlCommon:TextBoxBehavior.SelectAllTextOnFocus="True">
  27. <TextBox.InputBindings>
  28. <KeyBinding Command="{Binding DataContext.LoadPortCommand, ElementName=root}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TextBox}}}" Key="Return" />
  29. </TextBox.InputBindings>
  30. </TextBox>
  31. <StackPanel Grid.Row="1" Orientation="Horizontal">
  32. <Button Margin="8,0,0,0" Height="30" Width="80" Content="ReadID" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.Scan}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  33. <Button Margin="8,0,0,0" Height="30" Width="80" Content="Map" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.MapWafer}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  34. <!--<Button Height="30" Width="80" Grid.Row="1" Grid.ColumnSpan="2" Content="Offline" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.Offline}" ctrlCommon:CommandHelper.Target="{Binding Station}" />-->
  35. </StackPanel>
  36. </Grid>
  37. </ctrl1:HeaderPanel>
  38. </DataTemplate>
  39. <DataTemplate x:Key="opencassettenoreadid">
  40. <ctrl1:HeaderPanel VerticalAlignment="Top" HorizontalAlignment="Left" Height="116" Width="168" Visibility="{Binding DataContext.ShowAction, ElementName=root,Converter={StaticResource boolVisibilityConverter},ConverterParameter={StaticResource True}}">
  41. <ctrl1:HeaderPanel.Header>
  42. <StackPanel Orientation="Horizontal">
  43. <Label Height="40" Content="{Binding FoupID}" />
  44. </StackPanel>
  45. </ctrl1:HeaderPanel.Header>
  46. <Grid>
  47. <Grid.RowDefinitions>
  48. <RowDefinition Height="45" />
  49. <RowDefinition Height="30" />
  50. </Grid.RowDefinitions>
  51. <TextBox Height="40" Width="180" Margin="3,3,0,0" Text="" IsEnabled="False" />
  52. <StackPanel Grid.Row="1" Orientation="Horizontal">
  53. <Button Margin="0" Height="30" Width="60" Content="Map" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.MapWafer}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  54. <Button Margin="2,0" Height="30" Width="60" Content="Open" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.OpenDoor}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  55. <Button Margin="0" Height="30" Width="60" Content="Close" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.CloseDoor}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  56. </StackPanel>
  57. </Grid>
  58. </ctrl1:HeaderPanel>
  59. </DataTemplate>
  60. <DataTemplate x:Key="opencassetteonlymap">
  61. <ctrl1:HeaderPanel VerticalAlignment="Top" HorizontalAlignment="Left" Height="116" Width="168" Visibility="{Binding DataContext.ShowAction, ElementName=root,Converter={StaticResource boolVisibilityConverter},ConverterParameter={StaticResource True}}">
  62. <ctrl1:HeaderPanel.Header>
  63. <StackPanel Orientation="Horizontal">
  64. <Label Height="40" Content="{Binding FoupID}" />
  65. </StackPanel>
  66. </ctrl1:HeaderPanel.Header>
  67. <Grid>
  68. <Grid.RowDefinitions>
  69. <RowDefinition Height="45" />
  70. <RowDefinition Height="30" />
  71. </Grid.RowDefinitions>
  72. <TextBox Height="40" Width="180" Margin="3,3,0,0" Text="" IsEnabled="False" />
  73. <StackPanel Grid.Row="1" HorizontalAlignment="Center">
  74. <Button Margin="0" Height="30" Width="60" Content="Map" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.MapWafer}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  75. </StackPanel>
  76. </Grid>
  77. </ctrl1:HeaderPanel>
  78. </DataTemplate>
  79. <DataTemplate x:Key="loadport">
  80. <ctrl1:HeaderPanel Header="{Binding FoupID}" VerticalAlignment="Top" HorizontalAlignment="Left" Height="116" Width="168" Visibility="{Binding DataContext.ShowAction, ElementName=root,Converter={StaticResource boolVisibilityConverter},ConverterParameter={StaticResource True}}">
  81. <Grid>
  82. <Grid.RowDefinitions>
  83. <RowDefinition Height="45" />
  84. <RowDefinition Height="30" />
  85. </Grid.RowDefinitions>
  86. <TextBox Height="40" Width="160" Margin="0" Text="{Binding FoupIDSetPoint}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.SetManualScanCode}" ctrlCommon:CommandHelper.Target="{Binding Station}" ctrlCommon:CommandHelper.Parameter1="{Binding Text, RelativeSource={RelativeSource Self}}" ctrlCommon:TextBoxBehavior.SelectAllTextOnFocus="True">
  87. <TextBox.InputBindings>
  88. <KeyBinding Command="{Binding DataContext.LoadPortCommand, ElementName=root}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TextBox}}}" Key="Return" />
  89. </TextBox.InputBindings>
  90. </TextBox>
  91. <StackPanel Grid.Row="1" Orientation="Horizontal">
  92. <Button Template="{StaticResource realism_button}" Margin="2,0" Height="30" Width="52" Content="ReadID" FontSize="13" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.Scan}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  93. <Button Template="{StaticResource realism_button}" Margin="1,0" Height="30" Width="52" Content="Load" FontSize="13" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.LoadFoup}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  94. <Button Template="{StaticResource realism_button}" Margin="1,0" Height="30" Width="52" Content="Unload" FontSize="13" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.UnloadFoup}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  95. </StackPanel>
  96. </Grid>
  97. </ctrl1:HeaderPanel>
  98. </DataTemplate>
  99. <DataTemplate x:Key="mapbuffer">
  100. <Grid>
  101. <Grid.RowDefinitions>
  102. <RowDefinition Height="45" />
  103. </Grid.RowDefinitions>
  104. <StackPanel Grid.Row="0" Orientation="Horizontal" IsEnabled="{Binding DataContext.ShowMap, ElementName=root}">
  105. <Button Margin="0" Height="40" Width="188" Content="Map" FontSize="12"
  106. Command="{Binding DataContext.MapCommand, ElementName=root}"
  107. common:CommandHelper.CommandName="{x:Static Common:OperationName.MapWafer}"
  108. common:CommandHelper.Target="{Binding Station}" />
  109. </StackPanel>
  110. </Grid>
  111. </DataTemplate>
  112. <DataTemplate x:Key="SMIF">
  113. <ctrl1:HeaderPanel Header="{Binding FoupID}" VerticalAlignment="Top" HorizontalAlignment="Left" Height="116" Width="188" Visibility="{Binding DataContext.ShowAction, ElementName=root,Converter={StaticResource boolVisibilityConverter},ConverterParameter={StaticResource True}}">
  114. <Grid>
  115. <Grid.RowDefinitions>
  116. <RowDefinition Height="45" />
  117. <RowDefinition Height="30" />
  118. </Grid.RowDefinitions>
  119. <TextBox Height="40" Width="180" Margin="0" Text="{Binding FoupIDSetPoint}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.SetManualScanCode}" ctrlCommon:CommandHelper.Target="{Binding Station}" ctrlCommon:CommandHelper.Parameter1="{Binding Text, RelativeSource={RelativeSource Self}}" ctrlCommon:TextBoxBehavior.SelectAllTextOnFocus="True">
  120. <TextBox.InputBindings>
  121. <KeyBinding Command="{Binding DataContext.LoadPortCommand, ElementName=root}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TextBox}}}" Key="Return" />
  122. </TextBox.InputBindings>
  123. </TextBox>
  124. <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
  125. <Button Margin="0" Height="30" Width="45" Content="ReadID" FontSize="12" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.Scan}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  126. <Button Margin="0" Height="30" Width="45" Content="Load" FontSize="12" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.LoadFoup}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  127. <Button Margin="0" Height="30" Width="45" Content="Map" FontSize="12" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.MapWafer}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  128. <Button Margin="0" Height="30" Width="45" Content="Unload" FontSize="12" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.UnloadFoup}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  129. </StackPanel>
  130. </Grid>
  131. </ctrl1:HeaderPanel>
  132. </DataTemplate>
  133. <DataTemplate x:Key="LoadportMapButtonControl">
  134. <ctrl1:HeaderPanel Header="{Binding FoupID}" VerticalAlignment="Top" HorizontalAlignment="Left" Height="116" Width="188" Visibility="{Binding DataContext.ShowAction, ElementName=root,Converter={StaticResource boolVisibilityConverter},ConverterParameter={StaticResource True}}">
  135. <Grid>
  136. <Grid.RowDefinitions>
  137. <RowDefinition Height="45" />
  138. <RowDefinition Height="30" />
  139. </Grid.RowDefinitions>
  140. <TextBox Height="40" Width="180" Margin="0" Text="{Binding FoupIDSetPoint}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.SetManualScanCode}" ctrlCommon:CommandHelper.Target="{Binding Station}" ctrlCommon:CommandHelper.Parameter1="{Binding Text, RelativeSource={RelativeSource Self}}" ctrlCommon:TextBoxBehavior.SelectAllTextOnFocus="True">
  141. <TextBox.InputBindings>
  142. <KeyBinding Command="{Binding DataContext.LoadPortCommand, ElementName=root}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TextBox}}}" Key="Return" />
  143. </TextBox.InputBindings>
  144. </TextBox>
  145. <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
  146. <Button Margin="0" Height="30" Width="45" Content="ReadID" FontSize="12" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.Scan}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  147. <Button Margin="0" Height="30" Width="45" Content="Load" FontSize="12" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.LoadFoup}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  148. <Button Margin="0" Height="30" Width="45" Content="Map" FontSize="12" Command="{Binding DataContext.MapCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.MapWafer}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  149. <Button Margin="0" Height="30" Width="45" Content="Unload" FontSize="12" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.UnloadFoup}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  150. </StackPanel>
  151. </Grid>
  152. </ctrl1:HeaderPanel>
  153. </DataTemplate>
  154. <DataTemplate x:Key="SMIFNOMAP">
  155. <ctrl1:HeaderPanel Header="{Binding FoupID}" VerticalAlignment="Top" HorizontalAlignment="Left" Height="116" Width="188" Visibility="{Binding DataContext.ShowAction, ElementName=root,Converter={StaticResource boolVisibilityConverter},ConverterParameter={StaticResource True}}">
  156. <Grid>
  157. <Grid.RowDefinitions>
  158. <RowDefinition Height="45" />
  159. <RowDefinition Height="30" />
  160. </Grid.RowDefinitions>
  161. <TextBox Height="40" Width="180" Margin="0" Text="{Binding FoupIDSetPoint}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.SetManualScanCode}" ctrlCommon:CommandHelper.Target="{Binding Station}" ctrlCommon:CommandHelper.Parameter1="{Binding Text, RelativeSource={RelativeSource Self}}" ctrlCommon:TextBoxBehavior.SelectAllTextOnFocus="True">
  162. <TextBox.InputBindings>
  163. <KeyBinding Command="{Binding DataContext.LoadPortCommand, ElementName=root}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TextBox}}}" Key="Return" />
  164. </TextBox.InputBindings>
  165. </TextBox>
  166. <StackPanel Grid.Row="1" Orientation="Horizontal">
  167. <Button Margin="0" Height="30" Width="60" Content="ReadID" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.Scan}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  168. <Button Margin="2,0" Height="30" Width="60" Content="Load" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.LoadFoup}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  169. <Button Margin="0" Height="30" Width="60" Content="Unload" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.UnloadFoup}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  170. </StackPanel>
  171. </Grid>
  172. </ctrl1:HeaderPanel>
  173. </DataTemplate>
  174. <DataTemplate x:Key="NoButton">
  175. </DataTemplate>
  176. </UserControl.Resources>
  177. <Grid x:Name="root">
  178. <ItemsControl ItemsSource="{Binding FoupList}">
  179. <ItemsControl.ItemsPanel>
  180. <ItemsPanelTemplate>
  181. <WrapPanel Orientation="Horizontal" MinWidth="400" Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ActualWidth}" />
  182. </ItemsPanelTemplate>
  183. </ItemsControl.ItemsPanel>
  184. <ItemsControl.ItemTemplate>
  185. <DataTemplate>
  186. <Grid Width="168" Margin="4">
  187. <Grid.RowDefinitions>
  188. <RowDefinition Height="auto" />
  189. <RowDefinition Height="auto" />
  190. </Grid.RowDefinitions>
  191. <local:FoupItem IsEnableTextMenu="{Binding DataContext.IsEnableTextMenu, ElementName=root}" Title="{Binding CarrierName}"
  192. FoupCount="{Binding DataContext.FoupCount, ElementName=root}" SlotCount="{Binding SlotCount}"
  193. Slots="{Binding WaferInfos}" Station="{Binding Station}" IsSlotShowOpposite="{Binding DataContext.IsSlotShowOpposite, ElementName=root}"
  194. CarrierMode="{Binding CarrierMode}" WaferTransferOptionCommand="{Binding DataContext.WaferTransferOptionCommand, ElementName=root}"
  195. WaferTransferCommand="{Binding DataContext.WaferTransferCommand, ElementName=root}" ShowControl="{Binding DataContext.ShowControl, ElementName=root}" />
  196. <ContentControl Content="{Binding}" Grid.Column="1" Grid.Row="1">
  197. <ContentControl.Style>
  198. <Style TargetType="ContentControl">
  199. <Style.Triggers>
  200. <DataTrigger Binding="{Binding FoupType}" Value="SMIF">
  201. <Setter Property="ContentTemplate" Value="{StaticResource SMIF}" />
  202. </DataTrigger>
  203. <DataTrigger Binding="{Binding FoupType}" Value="LoadportMapButtonControl">
  204. <Setter Property="ContentTemplate" Value="{StaticResource LoadportMapButtonControl}" />
  205. </DataTrigger>
  206. <DataTrigger Binding="{Binding FoupType}" Value="SMIFNOMAP">
  207. <Setter Property="ContentTemplate" Value="{StaticResource SMIFNOMAP}" />
  208. </DataTrigger>
  209. <DataTrigger Binding="{Binding FoupType}" Value="Loadport">
  210. <Setter Property="ContentTemplate" Value="{StaticResource loadport}" />
  211. </DataTrigger>
  212. <DataTrigger Binding="{Binding FoupType}" Value="OpenCassette">
  213. <Setter Property="ContentTemplate" Value="{StaticResource opencassette}" />
  214. </DataTrigger>
  215. <DataTrigger Binding="{Binding FoupType}" Value="OpenCassetteOnlyMap">
  216. <Setter Property="ContentTemplate" Value="{StaticResource opencassetteonlymap}" />
  217. </DataTrigger>
  218. <DataTrigger Binding="{Binding FoupType}" Value="OpenCassetteNoReadID">
  219. <Setter Property="ContentTemplate" Value="{StaticResource opencassettenoreadid}" />
  220. </DataTrigger>
  221. <DataTrigger Binding="{Binding FoupType}" Value="NoButton">
  222. <Setter Property="ContentTemplate" Value="{StaticResource NoButton}" />
  223. </DataTrigger>
  224. <DataTrigger Binding="{Binding FoupType}" Value="Mapbuffer">
  225. <Setter Property="ContentTemplate" Value="{StaticResource mapbuffer}" />
  226. </DataTrigger>
  227. </Style.Triggers>
  228. </Style>
  229. </ContentControl.Style>
  230. </ContentControl>
  231. </Grid>
  232. </DataTemplate>
  233. </ItemsControl.ItemTemplate>
  234. </ItemsControl>
  235. </Grid>
  236. </UserControl>