Prechádzať zdrojové kódy

Re-arranged scan panel from tab control to vertical splitter

Kenric Nugteren 2 rokov pred
rodič
commit
ebac2b51a5

+ 11 - 1
prs.desktop/Panels/DataEntry/ScanGrid.cs

@@ -45,6 +45,16 @@ namespace PRSDesktop
             HiddenColumns.Add(x => x.Document.ID);
         }
 
+        protected override void SelectItems(CoreRow[]? rows)
+        {
+            base.SelectItems(rows);
+
+            if(ExplodeBtn is not null)
+            {
+                ExplodeBtn.Visibility = rows is not null && rows.Any() ? Visibility.Visible : Visibility.Collapsed;
+            }
+        }
+
         private bool Explode_Click(Button button, CoreRow[] rows)
         {
             Guid tagID = Guid.Empty;
@@ -259,7 +269,7 @@ namespace PRSDesktop
         protected override void GenerateColumns(DynamicGridColumns columns)
         {
             columns.Add<Scan, string>(x => x.Document.FileName, 0, "Filename", "", InABox.Core.Alignment.MiddleLeft);
-            columns.Add<Scan, string>(x => x.Tag.Name, 0, "Tag", "", InABox.Core.Alignment.MiddleLeft);
+            columns.Add<Scan, string>(x => x.Tag.Name, 100, "Tag", "", InABox.Core.Alignment.MiddleLeft);
         }
 
         protected override void Reload(Filters<Scan> criteria, Columns<Scan> columns, ref SortOrder<Scan>? sort, Action<CoreTable?, Exception?> action)

+ 28 - 18
prs.desktop/Panels/DataEntry/ScanPanel.xaml

@@ -4,25 +4,35 @@
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
              xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
              xmlns:local="clr-namespace:PRSDesktop"
+             xmlns:sf="http://schemas.syncfusion.com/wpf"
              xmlns:dynamic="clr-namespace:InABox.DynamicGrid;assembly=InABox.DynamicGrid"
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800">
-    <dynamic:DynamicTabControl x:Name="TabControl" SelectionChanged="TabControl_SelectionChanged"
-                               TabStripPlacement="Bottom">
-        <dynamic:DynamicTabItem Header="Scans"
-                                AllowDrop="True"
-                                PreviewDragOver="DynamicTabItem_DragOver"
-                                Drop="DynamicTabItem_Drop">
-            <TabItem.Content>
-                <local:ScanGrid x:Name="ScanGrid" OnSelectItem="ScanGrid_OnSelectItem"/>
-            </TabItem.Content>
-        </dynamic:DynamicTabItem>
-        <dynamic:DynamicTabItem x:Name="ViewList" Header="View">
-            <Border BorderBrush="DarkGray" Background="DimGray">
-                <ScrollViewer VerticalScrollBarVisibility="Auto">
-                    <StackPanel x:Name="ViewListPanel" Orientation="Vertical" Margin="10"/>
-                </ScrollViewer>
-            </Border>
-        </dynamic:DynamicTabItem>
-    </dynamic:DynamicTabControl>
+    <Grid>
+        <Grid.RowDefinitions>
+            <RowDefinition Height="*"/>
+            <RowDefinition Height="4"/>
+            <RowDefinition Height="*"/>
+        </Grid.RowDefinitions>
+
+        <local:ScanGrid Grid.Row="0"
+                        Margin="5"
+                        x:Name="ScanGrid" OnSelectItem="ScanGrid_OnSelectItem"
+                        AllowDrop="True" PreviewDragOver="DynamicTabItem_DragOver" Drop="DynamicTabItem_Drop"/>
+
+        <sf:SfGridSplitter Grid.Row="1"
+                           Height="4"
+                           HorizontalAlignment="Stretch"
+                           Background="Transparent"
+                           ResizeBehavior="PreviousAndNext"
+                           Template="{StaticResource HorizontalSplitter}"
+                           PreviewStyle="{StaticResource HorizontalSplitterPreview}"/>
+
+        <Border Grid.Row="2"
+                BorderBrush="Gray" Background="DimGray">
+            <ScrollViewer VerticalScrollBarVisibility="Auto">
+                <StackPanel x:Name="ViewListPanel" Orientation="Vertical" Margin="10"/>
+            </ScrollViewer>
+        </Border>
+    </Grid>
 </UserControl>

+ 2 - 10
prs.desktop/Panels/DataEntry/ScanPanel.xaml.cs

@@ -117,16 +117,6 @@ namespace PRSDesktop
 
         #region View List
 
-        private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
-        {
-            if (sender != TabControl) return;
-
-            if (TabControl.SelectedItem == ViewList)
-            {
-                UpdateViewList();
-            }
-        }
-
         private static List<byte[]> RenderTextFile(string textData)
         {
             var pdfDocument = new PdfDocument();
@@ -283,6 +273,8 @@ namespace PRSDesktop
         private void ScanGrid_OnSelectItem(object sender, DynamicGridSelectionEventArgs e)
         {
             OnSelectScans?.Invoke(e.Rows?.Select(x => x.ToObject<Scan>()).ToArray());
+
+            UpdateViewList();
         }
     }
 }