<DockPanel>
<!-- Header -->
<Border Classes="pageHeader" DockPanel.Dock="Top" Padding="10">
<Grid ColumnDefinitions="*,Auto,Auto">
<TextBlock Grid.ColumnSpan="3"
Text="{Tr Manual Operations}"
FontSize="20"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
<Button Grid.Column="2" Command="{Binding BackOnConfigurationCommand}">
<PathIcon Data="{StaticResource close_regular}" />
</Button>
</Grid>
</Border>
<!-- Content -->
<TabControl HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
TabStripPlacement="Top"
Margin="10">
<!-- Valves Tab -->
<TabItem Header="{Tr Valves}" Margin="5">
<ScrollViewer>
<ItemsControl ItemsSource="{Binding Valves}" Margin="10">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderBrush="#E0E0E0"
BorderThickness="1"
CornerRadius="8"
Padding="15"
Margin="0,0,0,10"
Background="#FAFAFA">
<Grid ColumnDefinitions="Auto,*,Auto,Auto" RowDefinitions="Auto,Auto,Auto">
<!-- Valve Icon/Number -->
<Border Grid.Row="0" Grid.RowSpan="3"
Background="#2196F3"
CornerRadius="50"
Width="60"
Height="60"
Margin="0,0,15,0"
VerticalAlignment="Center">
<TextBlock Text="{Binding Position}"
FontSize="24"
FontWeight="Bold"
Foreground="White"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<!-- Valve Info -->
<StackPanel Grid.Column="1" Grid.Row="0" Spacing="5">
<TextBlock Text="{Binding Model}"
FontSize="16"
FontWeight="SemiBold"/>
<TextBlock Text="{Binding InternalID, StringFormat='ID: {0}'}"
FontSize="12"
Foreground="#757575"
IsVisible="{Binding InternalID, Converter={x:Static ObjectConverters.IsNotNull}}"/>
</StackPanel>
<!-- Status Indicator -->
<Border Grid.Column="1" Grid.Row="1"
Background="{Binding StatusColor}"
CornerRadius="12"
Padding="10,5"
HorizontalAlignment="Left"
Margin="0,5,0,0">
<TextBlock Text="{Binding StatusText}"
Foreground="White"
FontSize="12"
FontWeight="Medium"/>
</Border>
<!-- Current Position -->
<TextBlock Grid.Column="1" Grid.Row="2"
Text="{Binding CurrentPositionText}"
FontSize="13"
Foreground="#424242"
Margin="0,5,0,0"/>
<!-- Open Button -->
<Button Grid.Column="2" Grid.RowSpan="3"
Command="{Binding $parent[ItemsControl].((vm:ManualOperationPageViewModel)DataContext).OpenValveCommand}"
CommandParameter="{Binding}"
Background="#4CAF50"
Foreground="White"
Padding="20,10"
Margin="5"
CornerRadius="6"
IsEnabled="{Binding !IsOperating}">
<StackPanel Orientation="Vertical" Spacing="3">
<PathIcon Data="M12,2L2,7V9H22V7M2,10V12H22V10M2,13V15H22V13M2,16V18H22V16M2,19V21H22V19"
Width="20" Height="20"/>
<TextBlock Text="OPEN" FontSize="11" FontWeight="Medium"/>
</StackPanel>
</Button>
<!-- Close Button -->
<Button Grid.Column="3" Grid.RowSpan="3"
Command="{Binding $parent[ItemsControl].((vm:ManualOperationPageViewModel)DataContext).CloseValveCommand}"
CommandParameter="{Binding}"
Background="#F44336"
Foreground="White"
Padding="20,10"
Margin="5"
CornerRadius="6"
IsEnabled="{Binding !IsOperating}">
<StackPanel Orientation="Vertical" Spacing="3">
<PathIcon Data="M2,2V22H22V2M4,4H20V20H4"
Width="20" Height="20"/>
<TextBlock Text="CLOSE" FontSize="11" FontWeight="Medium"/>
</StackPanel>
</Button>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</TabItem>
<!-- Pumps Tab -->
<TabItem Header="{Tr Pumps}" Margin="5">
<ScrollViewer>
<ItemsControl ItemsSource="{Binding Pumps}" Margin="10">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderBrush="#E0E0E0"
BorderThickness="1"
CornerRadius="8"
Padding="15"
Margin="0,0,0,10"
Background="#FAFAFA">
<Grid ColumnDefinitions="Auto,*,Auto,Auto,Auto" RowDefinitions="Auto,Auto,Auto">
<!-- Pump Icon/Number -->
<Border Grid.Row="0" Grid.RowSpan="3"
Background="#FF9800"
CornerRadius="50"
Width="60"
Height="60"
Margin="0,0,15,0"
VerticalAlignment="Center">
<TextBlock Text="{Binding Position}"
FontSize="24"
FontWeight="Bold"
Foreground="White"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<!-- Pump Info -->
<StackPanel Grid.Column="1" Grid.Row="0" Spacing="5">
<TextBlock Text="{Binding Model}"
FontSize="16"
FontWeight="SemiBold"/>
<TextBlock Text="{Binding InternalID, StringFormat='ID: {0}'}"
FontSize="12"
Foreground="#757575"
IsVisible="{Binding InternalID, Converter={x:Static ObjectConverters.IsNotNull}}"/>
<TextBlock Text="{Binding TypeText}"
FontSize="11"
Foreground="#9E9E9E"
IsVisible="{Binding IsPhAdjust}"/>
</StackPanel>
<!-- Status Indicator -->
<Border Grid.Column="1" Grid.Row="1"
Background="{Binding StatusColor}"
CornerRadius="12"
Padding="10,5"
HorizontalAlignment="Left"
Margin="0,5,0,0">
<TextBlock Text="{Binding StatusText}"
Foreground="White"
FontSize="12"
FontWeight="Medium"/>
</Border>
<!-- Flow Control -->
<StackPanel Grid.Column="1" Grid.Row="2"
Orientation="Horizontal"
Spacing="10"
Margin="0,10,0,0">
<TextBlock Text="Flow:"
VerticalAlignment="Center"
FontWeight="Medium"/>
<NumericUpDown Value="{Binding TargetFlow}"
Minimum="{Binding Min}"
Maximum="{Binding Max}"
Increment="0.1"
FormatString="{Binding FormatString}"
Width="120"
IsEnabled="{Binding !IsRunning}"/>
<TextBlock Text="{Binding Unit}"
VerticalAlignment="Center"
Foreground="#757575"/>
</StackPanel>
<!-- Current Flow Display -->
<TextBlock Grid.Column="2" Grid.RowSpan="3"
Text="{Binding CurrentFlowText}"
FontSize="18"
FontWeight="SemiBold"
Foreground="#2196F3"
VerticalAlignment="Center"
Margin="15,0"/>
<!-- Start Button -->
<Button Grid.Column="3" Grid.RowSpan="3"
Command="{Binding $parent[ItemsControl].((vm:ManualOperationPageViewModel)DataContext).StartPumpCommand}"
CommandParameter="{Binding}"
Background="#4CAF50"
Foreground="White"
Padding="20,10"
Margin="5"
CornerRadius="6"
IsEnabled="{Binding CanStart}">
<StackPanel Orientation="Vertical" Spacing="3">
<PathIcon Data="M8,5.14V19.14L19,12.14L8,5.14Z"
Width="20" Height="20"/>
<TextBlock Text="START" FontSize="11" FontWeight="Medium"/>
</StackPanel>
</Button>
<!-- Stop Button -->
<Button Grid.Column="4" Grid.RowSpan="3"
Command="{Binding $parent[ItemsControl].((vm:ManualOperationPageViewModel)DataContext).StopPumpCommand}"
CommandParameter="{Binding}"
Background="#F44336"
Foreground="White"
Padding="20,10"
Margin="5"
CornerRadius="6"
IsEnabled="{Binding IsRunning}">
<StackPanel Orientation="Vertical" Spacing="3">
<PathIcon Data="M18,18H6V6H18V18Z"
Width="20" Height="20"/>
<TextBlock Text="STOP" FontSize="11" FontWeight="Medium"/>
</StackPanel>
</Button>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</TabItem>
</TabControl>
</DockPanel>
</UserControl>⚠️Content was pasted as plain text and auto-formatted as a code block. Use the Code Block button in the editor for proper formatting.