-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAssignSignalsToModbusWindow.xaml
More file actions
77 lines (73 loc) · 5.37 KB
/
Copy pathAssignSignalsToModbusWindow.xaml
File metadata and controls
77 lines (73 loc) · 5.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<Window x:Class="Ari61850Bridge.AssignSignalsToModbusWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Assign Signal to Modbus" Height="720" Width="1040"
MinHeight="620" MinWidth="880" WindowStartupLocation="CenterOwner"
Background="{StaticResource Bg}" FontFamily="Aptos, Segoe UI Variable Text, Segoe UI, Calibri"
Icon="Assets/app-icon.ico">
<Grid Margin="20">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Margin="0,0,0,16">
<Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="Auto"/></Grid.ColumnDefinitions>
<StackPanel>
<TextBlock Text="Assign Signal to Modbus" FontSize="24" FontWeight="SemiBold" Foreground="{StaticResource Ink}"/>
<TextBlock Text="Choose a subset of IEC Explorer signals. This does not change the Explorer selection." FontSize="12.8" Foreground="{StaticResource Muted}" Margin="0,4,0,0"/>
</StackPanel>
<Button Grid.Column="1" Content="×" Width="42" Height="42" Style="{StaticResource SoftButton}" Click="Cancel_Click"/>
</Grid>
<Grid Grid.Row="1" Margin="0,0,0,12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="260"/>
<ColumnDefinition Width="12"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ComboBox ItemsSource="{Binding Relays}" SelectedItem="{Binding SelectedRelay, Mode=TwoWay}" DisplayMemberPath="DisplayName" MinHeight="38" Padding="10,6" ToolTip="IED that owns the Modbus assignments"/>
<Border Grid.Column="2" MinHeight="38" Background="White" BorderBrush="{StaticResource Line}" BorderThickness="1" CornerRadius="16" Padding="12,0">
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="Auto"/><ColumnDefinition Width="*"/><ColumnDefinition Width="Auto"/></Grid.ColumnDefinitions>
<TextBlock Text="🔍" FontSize="14" Foreground="{StaticResource Muted}" VerticalAlignment="Center" Margin="0,0,8,0"/>
<TextBox Grid.Column="1" Text="{Binding SearchText, UpdateSourceTrigger=PropertyChanged}" BorderThickness="0" Background="Transparent" Padding="0,5" MinHeight="30" FontSize="12.6"/>
<Button Grid.Column="2" Content="×" Style="{StaticResource MiniChipButton}" Padding="6,2" Margin="8,0,0,0" Click="ClearSearch_Click"/>
</Grid>
</Border>
</Grid>
<Border Grid.Row="2" Style="{StaticResource Card}" Padding="10">
<DataGrid x:Name="SignalsGrid" ItemsSource="{Binding RowsView}" Style="{StaticResource ModernDataGrid}"
IsReadOnly="True" SelectionMode="Extended" SelectionUnit="FullRow"
PreviewMouseLeftButtonUp="SignalsGrid_PreviewMouseLeftButtonUp"
ToolTip="Click anywhere on a row to include/exclude it from this assignment batch.">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Assign" Width="64">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsChecked, Mode=TwoWay}" IsEnabled="{Binding CanAssign}" HorizontalAlignment="Center" Click="AssignmentCheckBox_Click"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Status" Binding="{Binding AssignmentStatus}" Width="105"/>
<DataGridTextColumn Header="Signal" Binding="{Binding Signal.Name}" Width="170"/>
<DataGridTextColumn Header="IEC Reference" Binding="{Binding Signal.ObjectReference}" Width="360" MinWidth="280"/>
<DataGridTextColumn Header="Type" Binding="{Binding Signal.DataType}" Width="90"/>
<DataGridTextColumn Header="Value" Binding="{Binding Signal.Value}" Width="120"/>
<DataGridTextColumn Header="Quality" Binding="{Binding Signal.Quality}" Width="90"/>
</DataGrid.Columns>
</DataGrid>
</Border>
<Grid Grid.Row="3" Margin="0,14,0,0">
<Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="Auto"/></Grid.ColumnDefinitions>
<StackPanel VerticalAlignment="Center">
<TextBlock Text="{Binding SelectionSummary}" Foreground="{StaticResource Accent}" FontWeight="SemiBold" FontSize="12.6"/>
<TextBlock Text="Addresses are allocated and validated after assignment. Existing bindings are never duplicated." Foreground="{StaticResource Muted}" FontSize="12" Margin="0,3,0,0"/>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<Button Content="Cancel" Style="{StaticResource SoftButton}" Click="Cancel_Click" Margin="0,0,8,0"/>
<Button Content="Assign Selected" Style="{StaticResource PrimaryButton}" Click="Assign_Click"/>
</StackPanel>
</Grid>
</Grid>
</Window>