FoupListControlPro.xaml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <UserControl x:Class="Aitex.Sorter.UI.Controls.FoupListControlPro"
  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:Common="clr-namespace:Aitex.Sorter.Common;assembly=Aitex.Sorter.Common"
  7. xmlns:ctrlCommon="clr-namespace:Aitex.Sorter.UI.Controls.Common"
  8. xmlns:ctrl="clr-namespace:Aitex.Sorter.UI.Controls"
  9. mc:Ignorable="d"
  10. d:DesignHeight="800" d:DesignWidth="900">
  11. <UserControl.Resources>
  12. <DataTemplate x:Key="opencassette">
  13. <ctrl:HeaderPanel VerticalAlignment="Top" HorizontalAlignment="Left" Height="116" Width="188" Visibility="{Binding DataContext.ShowAction, ElementName=root,Converter={StaticResource boolVisibilityConverter},ConverterParameter={StaticResource True}}">
  14. <ctrl:HeaderPanel.Header >
  15. <StackPanel Orientation="Horizontal">
  16. <Label Style="{StaticResource Rfid16Digits}" Height="40" Content="{Binding FoupID}" />
  17. </StackPanel>
  18. </ctrl:HeaderPanel.Header>
  19. <Grid>
  20. <Grid.RowDefinitions>
  21. <RowDefinition Height="45" />
  22. <RowDefinition Height="30" />
  23. </Grid.RowDefinitions>
  24. <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">
  25. <TextBox.InputBindings>
  26. <KeyBinding Command="{Binding DataContext.LoadPortCommand, ElementName=root}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TextBox}}}" Key="Return" />
  27. </TextBox.InputBindings>
  28. </TextBox>
  29. <StackPanel Grid.Row="1" Orientation="Horizontal">
  30. <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}" />
  31. <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}" />
  32. <!--<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}" />-->
  33. </StackPanel>
  34. </Grid>
  35. </ctrl:HeaderPanel>
  36. </DataTemplate>
  37. <DataTemplate x:Key="opencassettenoreadid">
  38. <ctrl:HeaderPanel VerticalAlignment="Top" HorizontalAlignment="Left" Height="116" Width="188" Visibility="{Binding DataContext.ShowAction, ElementName=root,Converter={StaticResource boolVisibilityConverter},ConverterParameter={StaticResource True}}">
  39. <ctrl:HeaderPanel.Header >
  40. <StackPanel Orientation="Horizontal">
  41. <Label Height="40" Content="{Binding FoupID}" />
  42. </StackPanel>
  43. </ctrl:HeaderPanel.Header>
  44. <Grid>
  45. <Grid.RowDefinitions>
  46. <RowDefinition Height="45" />
  47. <RowDefinition Height="30" />
  48. </Grid.RowDefinitions>
  49. <TextBox Height="40" Width="180" Margin="3,3,0,0" Text="" IsEnabled="False"/>
  50. <StackPanel Grid.Row="1" Orientation="Horizontal">
  51. <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}" />
  52. <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}" />
  53. <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}" />
  54. </StackPanel>
  55. </Grid>
  56. </ctrl:HeaderPanel>
  57. </DataTemplate>
  58. <DataTemplate x:Key="opencassetteonlymap">
  59. <ctrl:HeaderPanel VerticalAlignment="Top" HorizontalAlignment="Left" Height="116" Width="188" Visibility="{Binding DataContext.ShowAction, ElementName=root,Converter={StaticResource boolVisibilityConverter},ConverterParameter={StaticResource True}}">
  60. <ctrl:HeaderPanel.Header >
  61. <StackPanel Orientation="Horizontal">
  62. <Label Height="40" Content="{Binding FoupID}" />
  63. </StackPanel>
  64. </ctrl:HeaderPanel.Header>
  65. <Grid>
  66. <Grid.RowDefinitions>
  67. <RowDefinition Height="45" />
  68. <RowDefinition Height="30" />
  69. </Grid.RowDefinitions>
  70. <TextBox Height="40" Width="180" Margin="3,3,0,0" Text="" IsEnabled="False"/>
  71. <StackPanel Grid.Row="1" HorizontalAlignment="Center">
  72. <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}" />
  73. </StackPanel>
  74. </Grid>
  75. </ctrl:HeaderPanel>
  76. </DataTemplate>
  77. <DataTemplate x:Key="loadport">
  78. <ctrl:HeaderPanel Header="{Binding FoupID}" VerticalAlignment="Top" HorizontalAlignment="Left" Height="116" Width="188" Visibility="{Binding DataContext.ShowAction, ElementName=root,Converter={StaticResource boolVisibilityConverter},ConverterParameter={StaticResource True}}">
  79. <Grid>
  80. <Grid.RowDefinitions>
  81. <RowDefinition Height="45" />
  82. <RowDefinition Height="30" />
  83. </Grid.RowDefinitions>
  84. <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">
  85. <TextBox.InputBindings>
  86. <KeyBinding Command="{Binding DataContext.LoadPortCommand, ElementName=root}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TextBox}}}" Key="Return" />
  87. </TextBox.InputBindings>
  88. </TextBox>
  89. <StackPanel Grid.Row="1" Orientation="Horizontal">
  90. <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}" />
  91. <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}" />
  92. <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}" />
  93. </StackPanel>
  94. </Grid>
  95. </ctrl:HeaderPanel>
  96. </DataTemplate>
  97. <DataTemplate x:Key="SMIF">
  98. <ctrl:HeaderPanel Header="{Binding FoupID}" VerticalAlignment="Top" HorizontalAlignment="Left" Height="116" Width="188" Visibility="{Binding DataContext.ShowAction, ElementName=root,Converter={StaticResource boolVisibilityConverter},ConverterParameter={StaticResource True}}">
  99. <Grid>
  100. <Grid.RowDefinitions>
  101. <RowDefinition Height="45" />
  102. <RowDefinition Height="30" />
  103. </Grid.RowDefinitions>
  104. <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">
  105. <TextBox.InputBindings>
  106. <KeyBinding Command="{Binding DataContext.LoadPortCommand, ElementName=root}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TextBox}}}" Key="Return" />
  107. </TextBox.InputBindings>
  108. </TextBox>
  109. <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
  110. <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}" />
  111. <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}" />
  112. <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}" />
  113. <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}" />
  114. </StackPanel>
  115. </Grid>
  116. </ctrl:HeaderPanel>
  117. </DataTemplate>
  118. <DataTemplate x:Key="LoadportMapButtonControl">
  119. <ctrl:HeaderPanel Header="{Binding FoupID}" VerticalAlignment="Top" HorizontalAlignment="Left" Height="116" Width="188" Visibility="{Binding DataContext.ShowAction, ElementName=root,Converter={StaticResource boolVisibilityConverter},ConverterParameter={StaticResource True}}">
  120. <Grid>
  121. <Grid.RowDefinitions>
  122. <RowDefinition Height="45" />
  123. <RowDefinition Height="30" />
  124. </Grid.RowDefinitions>
  125. <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">
  126. <TextBox.InputBindings>
  127. <KeyBinding Command="{Binding DataContext.LoadPortCommand, ElementName=root}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TextBox}}}" Key="Return" />
  128. </TextBox.InputBindings>
  129. </TextBox>
  130. <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
  131. <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}" />
  132. <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}" />
  133. <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}" />
  134. <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}" />
  135. </StackPanel>
  136. </Grid>
  137. </ctrl:HeaderPanel>
  138. </DataTemplate>
  139. <DataTemplate x:Key="SMIFNOMAP">
  140. <ctrl:HeaderPanel Header="{Binding FoupID}" VerticalAlignment="Top" HorizontalAlignment="Left" Height="116" Width="188" Visibility="{Binding DataContext.ShowAction, ElementName=root,Converter={StaticResource boolVisibilityConverter},ConverterParameter={StaticResource True}}">
  141. <Grid>
  142. <Grid.RowDefinitions>
  143. <RowDefinition Height="45" />
  144. <RowDefinition Height="30" />
  145. </Grid.RowDefinitions>
  146. <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">
  147. <TextBox.InputBindings>
  148. <KeyBinding Command="{Binding DataContext.LoadPortCommand, ElementName=root}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TextBox}}}" Key="Return" />
  149. </TextBox.InputBindings>
  150. </TextBox>
  151. <StackPanel Grid.Row="1" Orientation="Horizontal">
  152. <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}" />
  153. <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}" />
  154. <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}" />
  155. </StackPanel>
  156. </Grid>
  157. </ctrl:HeaderPanel>
  158. </DataTemplate>
  159. <DataTemplate x:Key="NoButton">
  160. </DataTemplate>
  161. </UserControl.Resources>
  162. <Grid x:Name="root">
  163. <ItemsControl ItemsSource="{Binding FoupList}" >
  164. <ItemsControl.ItemsPanel>
  165. <ItemsPanelTemplate>
  166. <WrapPanel Orientation="Horizontal" MinWidth="400" Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ActualWidth}"/>
  167. </ItemsPanelTemplate>
  168. </ItemsControl.ItemsPanel>
  169. <ItemsControl.ItemTemplate>
  170. <DataTemplate>
  171. <Grid Width="188" Margin="4">
  172. <Grid.RowDefinitions>
  173. <RowDefinition Height="276" />
  174. <RowDefinition Height="auto" />
  175. </Grid.RowDefinitions>
  176. <ctrl:FoupItemPro Title="{Binding CarrierName}" FoupCount="{Binding DataContext.FoupCount, ElementName=root}" SlotCount="{Binding SlotCount}" Slots="{Binding WaferInfos}" Station="{Binding Station}" CarrierMode="{Binding CarrierMode}" WaferTransferOptionCommand="{Binding DataContext.WaferTransferOptionCommand, ElementName=root}" WaferTransferCommand="{Binding DataContext.WaferTransferCommand, ElementName=root}" ShowControl="{Binding DataContext.ShowControl, ElementName=root}"></ctrl:FoupItemPro>
  177. <ContentControl Content="{Binding}" Grid.Column="1" Grid.Row="1">
  178. <ContentControl.Style>
  179. <Style TargetType="ContentControl">
  180. <Style.Triggers>
  181. <DataTrigger Binding="{Binding FoupType}" Value="SMIF">
  182. <Setter Property="ContentTemplate" Value="{StaticResource SMIF}" />
  183. </DataTrigger>
  184. <DataTrigger Binding="{Binding FoupType}" Value="LoadportMapButtonControl">
  185. <Setter Property="ContentTemplate" Value="{StaticResource LoadportMapButtonControl}" />
  186. </DataTrigger>
  187. <DataTrigger Binding="{Binding FoupType}" Value="SMIFNOMAP">
  188. <Setter Property="ContentTemplate" Value="{StaticResource SMIFNOMAP}" />
  189. </DataTrigger>
  190. <DataTrigger Binding="{Binding FoupType}" Value="Loadport">
  191. <Setter Property="ContentTemplate" Value="{StaticResource loadport}" />
  192. </DataTrigger>
  193. <DataTrigger Binding="{Binding FoupType}" Value="OpenCassette">
  194. <Setter Property="ContentTemplate" Value="{StaticResource opencassette}" />
  195. </DataTrigger>
  196. <DataTrigger Binding="{Binding FoupType}" Value="OpenCassetteOnlyMap">
  197. <Setter Property="ContentTemplate" Value="{StaticResource opencassetteonlymap}" />
  198. </DataTrigger>
  199. <DataTrigger Binding="{Binding FoupType}" Value="OpenCassetteNoReadID">
  200. <Setter Property="ContentTemplate" Value="{StaticResource opencassettenoreadid}" />
  201. </DataTrigger>
  202. <DataTrigger Binding="{Binding FoupType}" Value="NoButton">
  203. <Setter Property="ContentTemplate" Value="{StaticResource NoButton}" />
  204. </DataTrigger>
  205. </Style.Triggers>
  206. </Style>
  207. </ContentControl.Style>
  208. </ContentControl>
  209. </Grid>
  210. </DataTemplate>
  211. </ItemsControl.ItemTemplate>
  212. </ItemsControl>
  213. </Grid>
  214. </UserControl>