Skip to content
This repository was archived by the owner on Mar 25, 2025. It is now read-only.

Commit 0668068

Browse files
[ENHANCEMENT][TcoData]Option to hide the reference filter (#439)
* Create draft PR for #438 * [TcoData] filter in reciepe selector is now collapsed by default + minor improvement to the selector visual Co-authored-by: PTKu <PTKu@users.noreply.github.com> Co-authored-by: Peter <61538034+PTKu@users.noreply.github.com>
1 parent 7833218 commit 0668068

File tree

4 files changed

+113
-56
lines changed

4 files changed

+113
-56
lines changed

src/TcoData/src/Wpf/TcoData.Wpf/Data/Data/DataViewModel.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ public DataViewModel(IRepository<T> repository, TcoDataExchange dataExchange) :
4949
EditCommand = new RelayCommand(p => StartEdit(), _ => this.Mode == ViewMode.Display && SelectedRecord != null, () => LogCommand(nameof(EditCommand)));
5050
CancelEditCommand = new RelayCommand(p => this.CancelEdit(), _ => this.Mode == ViewMode.Edit, () => LogCommand(nameof(CancelEditCommand)));
5151
FindByCriteriaCommand = new RelayCommand(p => this.FindById(), _ => this.Mode == ViewMode.Display, () => LogCommand($"{nameof(FindByCriteriaCommand)} '{this.SearchMode} : {FilterByID}'"));
52+
FindContainsCommand = new RelayCommand(p => { this.SearchMode = eSearchMode.Contains; this.FindById(); }, _ => this.Mode == ViewMode.Display, () => LogCommand($"{nameof(FindByCriteriaCommand)} '{this.SearchMode} : {FilterByID}'"));
53+
CancelFilterCommand = new RelayCommand(p => { this.FilterByID = string.Empty; this.FindById(); }, _ => this.Mode == ViewMode.Display, () => LogCommand($"{nameof(FindByCriteriaCommand)} '{this.SearchMode} : {FilterByID}'"));
5254
StartCreateCopyOfExisting = new RelayCommand(p => this.StartCreatingRecordCopy(), _ => this.SelectedRecord != null && this.Mode == ViewMode.Display, () => LogCommand(nameof(StartCreateCopyOfExisting)));
5355
CreateCopyOfExistingCommand = new RelayCommand(p => this.CreateCopyOfExisting(), _ => true, () => LogCommand(nameof(CreateCopyOfExistingCommand)));
5456
SendToPlcCommand = new RelayCommand(p => SendToPlc(), _ => this.SelectedRecord != null && this.Mode == ViewMode.Display, () => LogCommand(nameof(SendToPlcCommand)));
@@ -401,6 +403,11 @@ public ICommand FindByCriteriaCommand
401403
get; private set;
402404
}
403405

406+
public ICommand FindContainsCommand
407+
{
408+
get; private set;
409+
}
410+
404411
public ViewMode Mode
405412
{
406413
get
@@ -574,6 +581,7 @@ public object SelectedRecord
574581
public bool LoadFromPlcCommandAvailable { get; set; }
575582
public bool ExportCommandAvailable { get; set; }
576583
public bool ImportCommandAvailable { get; set; }
584+
public RelayCommand CancelFilterCommand { get; }
577585
}
578586

579587
public interface FunctionAvailability

src/TcoData/src/Wpf/TcoData.Wpf/Data/DataSelector/TcoDataExchangeSimpleSelectorView.xaml

Lines changed: 74 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@
1414
HorizontalContentAlignment="Stretch"
1515
VerticalContentAlignment="Stretch"
1616
mc:Ignorable="d"
17-
d:DesignHeight="150"
17+
d:DesignHeight="100"
1818
d:DesignWidth="800"
1919
IsVisibleChanged="UserControl_IsVisibleChanged">
2020

2121
<UserControl.Resources>
22+
<materialDesign:EqualityToVisibilityConverter x:Key="EqualityToVisibilityConverter"/>
23+
<materialDesign:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
2224
<Wpf:RenderContentConverter x:Key="RenderContentConverter" />
2325
</UserControl.Resources>
2426

@@ -35,6 +37,10 @@
3537
<ColumnDefinition Width="*" />
3638
<ColumnDefinition Width="Auto" />
3739
</Grid.ColumnDefinitions>
40+
<Grid.RowDefinitions>
41+
<RowDefinition></RowDefinition>
42+
<RowDefinition Height="Auto"></RowDefinition>
43+
</Grid.RowDefinitions>
3844
<WrapPanel Grid.Column="0">
3945
<Label
4046
Margin="10"
@@ -53,59 +59,95 @@
5359
TextWrapping="WrapWithOverflow" />
5460
</WrapPanel>
5561
<Grid Grid.Column="1">
56-
<Grid.RowDefinitions>
57-
<RowDefinition />
58-
<RowDefinition />
59-
</Grid.RowDefinitions>
60-
<ComboBox
61-
Grid.Row="0"
62+
<Grid.ColumnDefinitions>
63+
<ColumnDefinition />
64+
<ColumnDefinition Width="Auto" />
65+
</Grid.ColumnDefinitions>
66+
<Grid>
67+
<Grid.ColumnDefinitions>
68+
<ColumnDefinition Width="*"></ColumnDefinition>
69+
<ColumnDefinition Width="Auto"></ColumnDefinition>
70+
</Grid.ColumnDefinitions>
71+
<ComboBox
72+
Grid.Column="0"
6273
MinHeight="40"
6374
Margin="10"
6475
HorizontalAlignment="Stretch"
6576
VerticalAlignment="Top"
6677
ItemsSource="{Binding ObservableRecords, Mode=OneWay}"
6778
SelectedItem="{Binding SelectedRecord}"
6879
Visibility="{Binding Mode, Mode=OneWay, Converter={wpf:ModeConverter}, ConverterParameter=Display}">
69-
<ComboBox.ItemTemplate>
70-
<DataTemplate>
71-
<TextBlock
80+
<ComboBox.ItemTemplate>
81+
<DataTemplate>
82+
<TextBlock
7283
HorizontalAlignment="Center"
7384
FontSize="20"
7485
Text="{Binding _EntityId}" />
75-
</DataTemplate>
76-
</ComboBox.ItemTemplate>
77-
</ComboBox>
78-
<Grid
79-
Grid.Row="1"
80-
Margin="20,5,20,5"
81-
HorizontalAlignment="Stretch">
86+
</DataTemplate>
87+
</ComboBox.ItemTemplate>
88+
</ComboBox>
89+
</Grid>
90+
<Grid Grid.Column="1">
8291
<Grid.ColumnDefinitions>
83-
<ColumnDefinition Width="*"></ColumnDefinition>
84-
<ColumnDefinition Width="Auto"></ColumnDefinition>
92+
<ColumnDefinition></ColumnDefinition>
93+
<ColumnDefinition></ColumnDefinition>
8594
</Grid.ColumnDefinitions>
86-
<TextBox
95+
<Button
96+
Margin="10"
97+
Command="{Binding SendToPlcCommand}"
98+
Content="{x:Static p:strings.SendToPlc}" />
99+
<ToggleButton
100+
Margin="0,0,10,0"
101+
x:Name="ToggleSearchButton"
102+
Grid.Column="1"
103+
Style="{StaticResource MaterialDesignActionToggleButton}"
104+
ToolTip="MaterialDesignActionLightToggleButton"
105+
Content="{materialDesign:PackIcon Kind=Filter}"
106+
materialDesign:ToggleButtonAssist.OnContent="{materialDesign:PackIcon Kind=ExpandLess}" />
107+
</Grid>
108+
</Grid>
109+
<Grid
110+
Grid.Column="1"
111+
Grid.Row="1"
112+
Grid.ColumnSpan="2"
113+
Margin="20,5,20,5"
114+
HorizontalAlignment="Stretch"
115+
Visibility="{Binding IsChecked, Converter={StaticResource BooleanToVisibilityConverter}, ElementName=ToggleSearchButton}">
116+
<Grid.ColumnDefinitions>
117+
<ColumnDefinition Width="*"></ColumnDefinition>
118+
<ColumnDefinition Width="Auto"></ColumnDefinition>
119+
<ColumnDefinition Width="Auto"></ColumnDefinition>
120+
</Grid.ColumnDefinitions>
121+
<TextBox
87122
x:Name="FilterField"
88123
Margin="0"
89124
FontSize="18"
90-
HorizontalContentAlignment="Right"
125+
HorizontalContentAlignment="Center"
91126
HorizontalAlignment="Stretch"
92127
VerticalContentAlignment="Stretch"
93128
BorderBrush="{DynamicResource OnSecondary}"
94129
Text="{Binding FilterByID}"/>
95-
<Button
96-
Grid.Column="2"
130+
<Button
131+
Style="{DynamicResource MaterialDesignFlatMidBgButton}"
132+
Grid.Column="1"
97133
Height="{Binding ActualHeight, ElementName=PerPageFilterComboBox}"
98134
Margin="2,0"
99-
Command="{Binding FindByCriteriaCommand}">
100-
<materialDesign:PackIcon Kind="Filter" />
101-
</Button>
102-
</Grid>
135+
Command="{Binding FindContainsCommand}">
136+
<WrapPanel>
137+
<materialDesign:PackIcon Kind="Filter" VerticalAlignment="Center" />
138+
</WrapPanel>
139+
</Button>
140+
<Button
141+
Grid.Column="3"
142+
Style="{DynamicResource MaterialDesignFlatMidBgButton}"
143+
Height="{Binding ActualHeight, ElementName=PerPageFilterComboBox}"
144+
Margin="2,0"
145+
Command="{Binding CancelFilterCommand}">
146+
<WrapPanel>
147+
<materialDesign:PackIcon Kind="Cancel" VerticalAlignment="Center" />
148+
</WrapPanel>
149+
</Button>
103150
</Grid>
104-
<Button
105-
Grid.Column="2"
106-
Margin="10"
107-
Command="{Binding SendToPlcCommand}"
108-
Content="{x:Static p:strings.SendToPlc}" />
109151
</Grid>
110152
</Border>
111153

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
namespace TcoData
1+
using TcOpen.Inxton.Input;
2+
3+
namespace TcoData
24
{
35
public class TcoDataExchangeSimpleSelectorViewModel : TcoDataExchangeViewModel
46
{
57
public TcoDataExchangeSimpleSelectorViewModel() : base()
68
{
7-
9+
810
}
11+
912
}
1013
}

src/TcoData/tests/Sandbox.TcoData.Wpf/MainWindow.xaml

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,37 +6,41 @@
66
xmlns:local="clr-namespace:Sandbox.TcoData.Wpf"
77
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
88
xmlns:vortex="http://vortex.mts/xaml"
9-
Title="MainWindow"
109
Width="800"
1110
Height="450"
12-
mc:Ignorable="d">
11+
mc:Ignorable="d"
12+
Title="MainWindow">
1313
<Window.DataContext>
1414
<local:MainWindowViewModel />
1515
</Window.DataContext>
1616
<TabControl>
1717
<TabItem Header="Data">
1818
<Grid>
19-
<Grid.RowDefinitions>
20-
<RowDefinition></RowDefinition>
21-
<RowDefinition Height="Auto"></RowDefinition>
22-
</Grid.RowDefinitions>
23-
<Grid Grid.Row="0">
24-
<vortex:RenderableContentControl DataContext="{Binding Plc.MAIN.sandbox.DataManager}" PresentationType="Control">
25-
<vortex:RenderableContentControl.RootContainer>
26-
<Grid />
27-
</vortex:RenderableContentControl.RootContainer>
28-
</vortex:RenderableContentControl>
29-
</Grid>
30-
<UniformGrid Grid.Row="1" Rows="0" Columns="2">
31-
<vortex:DynamicTreeView x:Name="dynamicTreeView" DataContext="{Binding Plc.MAIN.sandbox, Mode=OneWay}"></vortex:DynamicTreeView>
32-
<ScrollViewer>
33-
<vortex:ObservableContentControl DataContext="{Binding SelectedItem, ElementName=dynamicTreeView}" PresentationType="Base-Control"></vortex:ObservableContentControl>
34-
</ScrollViewer>
35-
</UniformGrid>
36-
</Grid>
19+
<Grid.RowDefinitions>
20+
<RowDefinition />
21+
<RowDefinition Height="Auto" />
22+
</Grid.RowDefinitions>
23+
<Grid Grid.Row="0">
24+
<vortex:RenderableContentControl DataContext="{Binding Plc.MAIN.sandbox.DataManager}" PresentationType="Control">
25+
<vortex:RenderableContentControl.RootContainer>
26+
<Grid />
27+
</vortex:RenderableContentControl.RootContainer>
28+
</vortex:RenderableContentControl>
29+
</Grid>
30+
<vortex:TcoDataExchangeSimpleSelectorView Grid.Row="1" DataContext="{Binding Plc.MAIN.sandbox.DataManager}"></vortex:TcoDataExchangeSimpleSelectorView>
31+
<!--<UniformGrid
32+
Grid.Row="1"
33+
Columns="2"
34+
Rows="0">
35+
<vortex:DynamicTreeView x:Name="dynamicTreeView" DataContext="{Binding Plc.MAIN.sandbox, Mode=OneWay}" />
36+
<ScrollViewer>
37+
<vortex:ObservableContentControl DataContext="{Binding SelectedItem, ElementName=dynamicTreeView}" PresentationType="Base-Control" />
38+
</ScrollViewer>
39+
</UniformGrid>-->
40+
</Grid>
3741
</TabItem>
3842
<TabItem Header="Diagnostics">
39-
<vortex:RenderableContentControl DataContext="{Binding Plc.MAIN.sandbox}" PresentationType="Diagnostics"></vortex:RenderableContentControl>
43+
<vortex:RenderableContentControl DataContext="{Binding Plc.MAIN.sandbox}" PresentationType="Diagnostics" />
4044
</TabItem>
4145
</TabControl>
42-
</Window>
46+
</Window>

0 commit comments

Comments
 (0)