FoupListControlPro1.xaml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. <UserControl x:Class="EfemUI.Controls.FoupListControlPro1"
  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;assembly=Aitex.Sorter.UI"
  8. xmlns:ctrl1="clr-namespace:Aitex.Sorter.UI.Controls;assembly=Aitex.Sorter.UI"
  9. xmlns:common="clr-namespace:Aitex.Sorter.UI.Controls.Common;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="188" 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="188" 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="188" 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="188" 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="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">
  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 Margin="2,0" Height="30" Width="58" Content="ReadID" FontSize="14" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.Scan}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  93. <Button Margin="2,0" Height="30" Width="58" Content="Load" FontSize="14" Command="{Binding DataContext.LoadPortCommand, ElementName=root}" ctrlCommon:CommandHelper.CommandName="{x:Static Common:OperationName.LoadFoup}" ctrlCommon:CommandHelper.Target="{Binding Station}" />
  94. <Button Margin="2,0" Height="30" Width="58" Content="Unload" FontSize="14" 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="188" Margin="4">
  187. <Grid.RowDefinitions>
  188. <RowDefinition Height="282" />
  189. <RowDefinition Height="auto" />
  190. </Grid.RowDefinitions>
  191. <local:FoupItemPro1 IsEnableTextMenu1="{Binding DataContext.IsEnableTextMenu1, ElementName=root}" 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}"></local:FoupItemPro1>
  192. <ContentControl Content="{Binding}" Grid.Column="1" Grid.Row="1">
  193. <ContentControl.Style>
  194. <Style TargetType="ContentControl">
  195. <Style.Triggers>
  196. <DataTrigger Binding="{Binding FoupType}" Value="SMIF">
  197. <Setter Property="ContentTemplate" Value="{StaticResource SMIF}" />
  198. </DataTrigger>
  199. <DataTrigger Binding="{Binding FoupType}" Value="LoadportMapButtonControl">
  200. <Setter Property="ContentTemplate" Value="{StaticResource LoadportMapButtonControl}" />
  201. </DataTrigger>
  202. <DataTrigger Binding="{Binding FoupType}" Value="SMIFNOMAP">
  203. <Setter Property="ContentTemplate" Value="{StaticResource SMIFNOMAP}" />
  204. </DataTrigger>
  205. <DataTrigger Binding="{Binding FoupType}" Value="Loadport">
  206. <Setter Property="ContentTemplate" Value="{StaticResource loadport}" />
  207. </DataTrigger>
  208. <DataTrigger Binding="{Binding FoupType}" Value="OpenCassette">
  209. <Setter Property="ContentTemplate" Value="{StaticResource opencassette}" />
  210. </DataTrigger>
  211. <DataTrigger Binding="{Binding FoupType}" Value="OpenCassetteOnlyMap">
  212. <Setter Property="ContentTemplate" Value="{StaticResource opencassetteonlymap}" />
  213. </DataTrigger>
  214. <DataTrigger Binding="{Binding FoupType}" Value="OpenCassetteNoReadID">
  215. <Setter Property="ContentTemplate" Value="{StaticResource opencassettenoreadid}" />
  216. </DataTrigger>
  217. <DataTrigger Binding="{Binding FoupType}" Value="NoButton">
  218. <Setter Property="ContentTemplate" Value="{StaticResource NoButton}" />
  219. </DataTrigger>
  220. <DataTrigger Binding="{Binding FoupType}" Value="Mapbuffer">
  221. <Setter Property="ContentTemplate" Value="{StaticResource mapbuffer}" />
  222. </DataTrigger>
  223. </Style.Triggers>
  224. </Style>
  225. </ContentControl.Style>
  226. </ContentControl>
  227. </Grid>
  228. </DataTemplate>
  229. </ItemsControl.ItemTemplate>
  230. </ItemsControl>
  231. </Grid>
  232. </UserControl>