Files
Explorer-Workbench/src/Explorer.App/DatabaseWindow.xaml

79 lines
4.1 KiB
XML

<Window x:Class="Explorer.App.DatabaseWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Database"
Icon="pack://application:,,,/Assets/explorer-workbench.ico"
Height="720" Width="1100"
MinHeight="480" MinWidth="800"
WindowStartupLocation="CenterOwner"
Background="{DynamicResource Bg}" Foreground="{DynamicResource Fg}">
<DockPanel Margin="12">
<DockPanel DockPanel.Dock="Bottom" Margin="0,10,0,0">
<Button DockPanel.Dock="Right" Content="Close" MinWidth="88" Height="30" Click="OnClose" Margin="8,0,0,0"/>
<TextBlock Text="{Binding Status}" VerticalAlignment="Center" Foreground="{DynamicResource FgMuted}"
TextTrimming="CharacterEllipsis"/>
</DockPanel>
<DockPanel DockPanel.Dock="Top" Margin="0,0,0,8">
<Button DockPanel.Dock="Right" Content="Close DB" MinWidth="80" Height="28"
Command="{Binding CloseDatabaseCommand}" Margin="6,0,0,0"/>
<Button DockPanel.Dock="Right" Content="Open file…" MinWidth="90" Height="28"
Click="OnOpenFile" Margin="6,0,0,0"/>
<Button DockPanel.Dock="Right" Content="Open Workbench index" MinWidth="150" Height="28"
Command="{Binding OpenWorkbenchIndexCommand}" Margin="6,0,0,0"/>
<StackPanel>
<TextBlock Text="{Binding PathLabel}" FontWeight="SemiBold" TextTrimming="CharacterEllipsis"/>
<TextBlock Text="{Binding ModeLabel}" Foreground="{DynamicResource FgMuted}" FontSize="11"/>
</StackPanel>
</DockPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="220"/>
<ColumnDefinition Width="8"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<DockPanel>
<DockPanel DockPanel.Dock="Top" Margin="0,0,0,6">
<Button DockPanel.Dock="Right" Content="↻" Width="28" Height="26"
Command="{Binding RefreshTablesCommand}" ToolTip="Refresh tables"/>
<TextBlock Text="Tables" FontWeight="SemiBold" VerticalAlignment="Center"/>
</DockPanel>
<ListBox ItemsSource="{Binding Tables}" SelectedItem="{Binding SelectedTable}"/>
</DockPanel>
<DockPanel Grid.Column="2">
<DockPanel DockPanel.Dock="Top" Margin="0,0,0,8">
<Button DockPanel.Dock="Right" Content="Run SQL" MinWidth="80" Height="28"
Command="{Binding RunSqlCommand}" Margin="8,0,0,0"/>
<TextBox Text="{Binding Sql, UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="True"
Height="56" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto"
FontFamily="Consolas"/>
</DockPanel>
<DockPanel DockPanel.Dock="Top" Margin="0,0,0,8">
<TextBlock DockPanel.Dock="Left" Text="{Binding PageLabel}" VerticalAlignment="Center"
Foreground="{DynamicResource FgMuted}" Margin="0,0,12,0"/>
<Button DockPanel.Dock="Left" Content="Prev" MinWidth="60" Height="26"
Command="{Binding PrevPageCommand}" Margin="0,0,6,0"/>
<Button DockPanel.Dock="Left" Content="Next" MinWidth="60" Height="26"
Command="{Binding NextPageCommand}" Margin="0,0,12,0"/>
<Button DockPanel.Dock="Left" Content="Edit cell…" MinWidth="80" Height="26"
Click="OnEditCell" IsEnabled="{Binding CanWrite}" Margin="0,0,6,0"/>
<Button DockPanel.Dock="Left" Content="Insert row…" MinWidth="90" Height="26"
Click="OnInsertRow" IsEnabled="{Binding CanWrite}" Margin="0,0,6,0"/>
<Button DockPanel.Dock="Left" Content="Delete row" MinWidth="80" Height="26"
Command="{Binding DeleteSelectedRowCommand}" IsEnabled="{Binding CanWrite}"/>
</DockPanel>
<ListView x:Name="GridViewHost"
ItemsSource="{Binding Rows}"
SelectedItem="{Binding SelectedRow}"
MouseDoubleClick="OnRowDoubleClick">
<ListView.View>
<GridView x:Name="ResultGrid"/>
</ListView.View>
</ListView>
</DockPanel>
</Grid>
</DockPanel>
</Window>