Files
WCS/Plugins/Wcs/Plugin.Cowain.Wcs/Views/6180/RgvManagement6180View.axaml
2026-03-02 09:13:29 +08:00

287 lines
12 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:semi="https://irihi.tech/semi"
xmlns:u="https://irihi.tech/ursa"
xmlns:vm="using:Plugin.Cowain.Wcs.ViewModels"
xmlns:helper="using:Cowain.Base.Helpers"
xmlns:i18n="clr-namespace:Ke.Bee.Localization.Extensions;assembly=Ke.Bee.Localization"
xmlns:conv="using:Cowain.Base.Converters"
xmlns:extensions="using:Cowain.Base.Extensions"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Plugin.Cowain.Wcs.Views.RgvManagement6180View">
<UserControl.Resources>
<conv:I18nLocalizeConverter x:Key="i18nConverter" />
<helper:BindingProxy x:Key="Proxy"
DataContext="{Binding}" />
</UserControl.Resources>
<Grid RowDefinitions="Auto * Auto">
<StackPanel Grid.Row="0" Orientation="Horizontal" Spacing="10" Margin="10 8">
<u:IconButton
ToolTip.Tip="{i18n:Localize RgvManagement.Tooltip.Add}"
IsEnabled="{extensions:MenuEnable RgvManagement6180View,add}"
Command="{Binding AddCommand}"
Theme="{DynamicResource BorderlessIconButton}">
<u:IconButton.Icon>
<PathIcon
Width="16"
Height="16"
Data="{StaticResource SemiIconPlusStroked}" />
</u:IconButton.Icon>
</u:IconButton>
<u:IconButton
ToolTip.Tip="{i18n:Localize RgvManagement.Tooltip.Refresh}"
Command="{Binding RefreshCommand}"
CommandParameter="{Binding #page.CurrentPage}"
Theme="{DynamicResource BorderlessIconButton}">
<u:IconButton.Icon>
<PathIcon
Width="16"
Height="16"
Data="{StaticResource SemiIconRedoStroked}" />
</u:IconButton.Icon>
</u:IconButton>
</StackPanel>
<DataGrid Grid.Row="1" FrozenColumnCount="2"
CanUserReorderColumns="True"
CanUserResizeColumns="True"
CanUserSortColumns="False"
HeadersVisibility="All"
RowHeight="30"
ItemsSource="{Binding RgvList}"
HorizontalScrollBarVisibility="Auto">
<DataGrid.Columns>
<DataGridTextColumn Width="60"
x:DataType="vm:RgvViewModel"
Binding="{Binding Id}"
IsReadOnly="True"
Header="{i18n:Localize RgvManagement.DataGrid.Id}" />
<DataGridTemplateColumn
Header="{i18n:Localize RgvManagement.DataGrid.Edit}"
Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Spacing="10">
<u:IconButton
ToolTip.Tip="{i18n:Localize RgvManagement.Tooltip.Save}"
x:CompileBindings="False"
IsEnabled="{extensions:MenuEnable RgvManagement6180View,save}"
Command="{Binding $parent[DataGrid].DataContext.SaveCommand}"
CommandParameter="{Binding}"
Theme="{DynamicResource BorderlessIconButton}">
<u:IconButton.Icon>
<PathIcon Width="16" Height="16" Data="{StaticResource SemiIconSave}" />
</u:IconButton.Icon>
</u:IconButton>
<u:IconButton
ToolTip.Tip="{i18n:Localize RgvManagement.Tooltip.Delete}"
x:CompileBindings="False"
IsEnabled="{extensions:MenuEnable RgvManagement6180View,delete}"
Command="{Binding $parent[DataGrid].DataContext.DeleteCommand}"
CommandParameter="{Binding}"
Theme="{DynamicResource BorderlessIconButton}">
<u:IconButton.Icon>
<PathIcon Width="16" Height="16" Data="{StaticResource SemiIconDeleteStroked}" />
</u:IconButton.Icon>
</u:IconButton>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Width="140"
x:DataType="vm:RgvViewModel"
Binding="{Binding StationName}"
Header="{i18n:Localize RgvManagement.DataGrid.Name}" />
<DataGridTextColumn Width="140"
x:DataType="vm:RgvViewModel"
Binding="{Binding StationCode}"
Header="{i18n:Localize RgvManagement.DataGrid.Code}" />
<DataGridTextColumn Width="140"
x:DataType="vm:RgvViewModel"
Binding="{Binding ProcessName}"
IsReadOnly="True"
Header="{i18n:Localize RgvManagement.DataGrid.ProcessName}" />
<DataGridTemplateColumn
Header="{i18n:Localize RgvManagement.DataGrid.FromStation1}"
Width="140">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Classes="Large" VerticalAlignment="Center"
ItemsSource="{Binding DataContext.Stations,Source={StaticResource Proxy}}"
SelectedValue="{Binding FromStationId1, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
SelectedValueBinding="{Binding Id}"
>
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="vm:StationViewModel">
<StackPanel Orientation="Horizontal" Spacing="10" Margin="10 8">
<TextBlock >
<Run Text="{Binding StationName}" />
<Run> : </Run>
<Run Text="{Binding StationCode}"
Foreground="Red" />
</TextBlock>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn
Header="{i18n:Localize RgvManagement.DataGrid.ToStation1}"
Width="140">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Classes="Large" VerticalAlignment="Center"
ItemsSource="{Binding DataContext.Stations,Source={StaticResource Proxy}}"
SelectedValue="{Binding ToStationId1, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
SelectedValueBinding="{Binding Id}"
>
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="vm:StationViewModel">
<StackPanel Orientation="Horizontal" Spacing="10" Margin="10 8">
<TextBlock >
<Run Text="{Binding StationName}" />
<Run> : </Run>
<Run Text="{Binding StationCode}"
Foreground="Red" />
</TextBlock>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn
Header="{i18n:Localize RgvManagement.DataGrid.FromStation2}"
Width="140">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Classes="Large" VerticalAlignment="Center"
ItemsSource="{Binding DataContext.Stations,Source={StaticResource Proxy}}"
SelectedValue="{Binding FromStationId2, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
SelectedValueBinding="{Binding Id}"
>
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="vm:StationViewModel">
<StackPanel Orientation="Horizontal" Spacing="10" Margin="10 8">
<TextBlock >
<Run Text="{Binding StationName}" />
<Run> : </Run>
<Run Text="{Binding StationCode}"
Foreground="Red" />
</TextBlock>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn
Header="{i18n:Localize RgvManagement.DataGrid.ToStation2}"
Width="140">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Classes="Large" VerticalAlignment="Center"
ItemsSource="{Binding DataContext.Stations,Source={StaticResource Proxy}}"
SelectedValue="{Binding ToStationId2, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
SelectedValueBinding="{Binding Id}"
>
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="vm:StationViewModel">
<StackPanel Orientation="Horizontal" Spacing="10" Margin="10 8">
<TextBlock >
<Run Text="{Binding StationName}" />
<Run> : </Run>
<Run Text="{Binding StationCode}"
Foreground="Red" />
</TextBlock>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn
Header="{i18n:Localize RgvManagement.DataGrid.PositionX}"
Width="140">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<NumericUpDown Increment="10" Value="{Binding PositionX}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn
Header="{i18n:Localize RgvManagement.DataGrid.PositionY}"
Width="140">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<NumericUpDown Increment="10" Value="{Binding PositionY}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn
Header="{i18n:Localize RgvManagement.DataGrid.PositionZ}"
Width="140">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<NumericUpDown Increment="10" Value="{Binding PositionZ}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn
Header="{i18n:Localize RgvManagement.DataGrid.LayOutX}"
Width="140">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<NumericUpDown Increment="1" Value="{Binding LayOutX}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn
Header="{i18n:Localize RgvManagement.DataGrid.LayOutY}"
Width="140">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<NumericUpDown Increment="1" Value="{Binding LayOutY}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Width="180"
x:DataType="vm:RgvViewModel"
Binding="{Binding Json}"
IsReadOnly="True"
Header="{i18n:Localize RgvManagement.DataGrid.Json}" />
</DataGrid.Columns>
</DataGrid>
<u:Pagination Grid.Row="2"
Name="page"
PageSizeOptions="10, 20, 50, 100"
ShowQuickJump="True"
ShowPageSizeSelector="True"
PageSize="{Binding PageSize,Mode=TwoWay}"
CurrentPage="{Binding PageIndex,Mode=TwoWay}"
Command="{Binding RefreshCommand}"
CommandParameter="{Binding $self.CurrentPage}"
TotalCount="{Binding Totals}" />
</Grid>
</UserControl>