feat(configmanager): add MainWindow view
This commit is contained in:
@@ -1,11 +1,125 @@
|
||||
<Window xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:vm="using:JdeScoping.ConfigManager.ViewModels"
|
||||
x:Class="JdeScoping.ConfigManager.Views.MainWindow"
|
||||
x:DataType="vm:MainWindowViewModel"
|
||||
Title="JdeScoping ConfigManager"
|
||||
Width="1200" Height="800"
|
||||
MinWidth="900" MinHeight="600">
|
||||
<TextBlock Text="ConfigManager - Loading..."
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
FontSize="24"/>
|
||||
MinWidth="900" MinHeight="600"
|
||||
Background="#0D0F12">
|
||||
|
||||
<Design.DataContext>
|
||||
<vm:MainWindowViewModel/>
|
||||
</Design.DataContext>
|
||||
|
||||
<DockPanel>
|
||||
<!-- Menu Bar -->
|
||||
<Menu DockPanel.Dock="Top" Background="#151920" Height="28">
|
||||
<MenuItem Header="_File">
|
||||
<MenuItem Header="_Open Folder..." Command="{Binding OpenFolderCommand}" InputGesture="Ctrl+O"/>
|
||||
<MenuItem Header="_Save" Command="{Binding SaveCommand}" InputGesture="Ctrl+S"/>
|
||||
<Separator/>
|
||||
<MenuItem Header="E_xit" Command="{Binding ExitCommand}"/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Edit">
|
||||
<MenuItem Header="_Undo" Command="{Binding UndoCommand}" InputGesture="Ctrl+Z"/>
|
||||
<MenuItem Header="_Redo" Command="{Binding RedoCommand}" InputGesture="Ctrl+Y"/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Tools">
|
||||
<MenuItem Header="_Validate All" Command="{Binding ValidateCommand}" InputGesture="F5"/>
|
||||
<MenuItem Header="_Test Connection" Command="{Binding TestConnectionCommand}" InputGesture="F6"/>
|
||||
<Separator/>
|
||||
<MenuItem Header="View _Backups..."/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_Help">
|
||||
<MenuItem Header="_About ConfigManager"/>
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
|
||||
<!-- Toolbar -->
|
||||
<Border DockPanel.Dock="Top" Background="#151920" Height="40"
|
||||
BorderBrush="#2D3540" BorderThickness="0,0,0,1">
|
||||
<StackPanel Orientation="Horizontal" Margin="8,0" VerticalAlignment="Center" Spacing="4">
|
||||
<Button Content="Open" Command="{Binding OpenFolderCommand}" Classes="toolbar"/>
|
||||
<Button Content="Save" Command="{Binding SaveCommand}" Classes="toolbar"/>
|
||||
<Border Width="1" Height="20" Background="#2D3540" Margin="4,0"/>
|
||||
<Button Content="Undo" Command="{Binding UndoCommand}" Classes="toolbar"/>
|
||||
<Button Content="Redo" Command="{Binding RedoCommand}" Classes="toolbar"/>
|
||||
<Border Width="1" Height="20" Background="#2D3540" Margin="4,0"/>
|
||||
<Button Content="Test" Command="{Binding TestConnectionCommand}" Classes="toolbar"/>
|
||||
<Button Content="Validate" Command="{Binding ValidateCommand}" Classes="toolbar"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Status Bar -->
|
||||
<Border DockPanel.Dock="Bottom" Background="#151920" Height="24"
|
||||
BorderBrush="#2D3540" BorderThickness="0,1,0,0">
|
||||
<Grid Margin="8,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBlock Grid.Column="0" Text="{Binding ConfigFolderPath}"
|
||||
Foreground="#5C6A7A" FontFamily="JetBrains Mono" FontSize="11"
|
||||
VerticalAlignment="Center"/>
|
||||
<TextBlock Grid.Column="1" Text=" | Modified"
|
||||
Foreground="#5C9AFF" FontSize="11"
|
||||
IsVisible="{Binding HasUnsavedChanges}"
|
||||
VerticalAlignment="Center" Margin="8,0"/>
|
||||
<TextBlock Grid.Column="3" Text="{Binding ValidationStatus}"
|
||||
Foreground="{Binding ValidationStatusColor}"
|
||||
FontFamily="JetBrains Mono" FontSize="11"
|
||||
VerticalAlignment="Center"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Main Content -->
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="280" MinWidth="200" MaxWidth="400"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- Tree View Panel -->
|
||||
<Border Grid.Column="0" Background="#0D0F12" BorderBrush="#2D3540" BorderThickness="0,0,1,0">
|
||||
<DockPanel>
|
||||
<Border DockPanel.Dock="Top" Background="#151920" Height="36">
|
||||
<TextBlock Text="CONFIGURATION"
|
||||
Foreground="#5C6A7A" FontSize="12" FontWeight="SemiBold"
|
||||
VerticalAlignment="Center" Margin="16,0"
|
||||
LetterSpacing="0.5"/>
|
||||
</Border>
|
||||
<TreeView ItemsSource="{Binding TreeNodes}"
|
||||
SelectedItem="{Binding SelectedNode}"
|
||||
Background="Transparent"
|
||||
Margin="8">
|
||||
<TreeView.ItemTemplate>
|
||||
<TreeDataTemplate ItemsSource="{Binding Children}">
|
||||
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||
<TextBlock Text="{Binding Icon}" FontSize="14"/>
|
||||
<TextBlock Text="{Binding Name}" Foreground="#E6EDF5"/>
|
||||
<TextBlock Text="{Binding StatusIcon}" FontSize="12"/>
|
||||
<TextBlock Text="*" Foreground="#5C9AFF"
|
||||
IsVisible="{Binding IsModified}"/>
|
||||
</StackPanel>
|
||||
</TreeDataTemplate>
|
||||
</TreeView.ItemTemplate>
|
||||
</TreeView>
|
||||
</DockPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Splitter -->
|
||||
<GridSplitter Grid.Column="1" Width="4" Background="Transparent"
|
||||
ResizeDirection="Columns"/>
|
||||
|
||||
<!-- Form Panel -->
|
||||
<Border Grid.Column="2" Background="#151920" Padding="24">
|
||||
<ContentControl Content="{Binding SelectedFormViewModel}"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
</DockPanel>
|
||||
</Window>
|
||||
|
||||
Reference in New Issue
Block a user