-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMainView.axaml
More file actions
85 lines (74 loc) · 5.03 KB
/
MainView.axaml
File metadata and controls
85 lines (74 loc) · 5.03 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
78
79
80
81
82
83
84
85
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="600"
x:Class="EntglDb.Test.Avalonia.MainView">
<Grid RowDefinitions="Auto, *">
<!-- Header -->
<Border Grid.Row="0" Background="#f0f0f0" Padding="15">
<StackPanel Orientation="Horizontal" Spacing="20">
<TextBlock Text="EntglDb Dashboard" FontSize="20" FontWeight="Bold" VerticalAlignment="Center"/>
<TextBlock x:Name="NodeIdLabel" Text="Node: Loading..." VerticalAlignment="Center"/>
<TextBlock x:Name="PortLabel" Text="Port: ..." VerticalAlignment="Center"/>
</StackPanel>
</Border>
<Grid Grid.Row="1" ColumnDefinitions="250, *" Margin="10">
<!-- Left Side: Actions -->
<StackPanel Grid.Column="0" Spacing="10" Margin="0,0,10,0">
<TextBlock Text="Actions" FontWeight="Bold" Margin="0,0,0,5"/>
<Border BorderBrush="#e0e0e0" BorderThickness="1" Padding="10" CornerRadius="4">
<StackPanel Spacing="5">
<TextBlock Text="Manual Entry" FontWeight="SemiBold"/>
<TextBox x:Name="KeyEntry" Watermark="Key"/>
<TextBox x:Name="ValueEntry" Watermark="Value"/>
<Grid ColumnDefinitions="*,*">
<Button Content="Put" Click="OnSaveClicked" HorizontalAlignment="Stretch" Margin="0,0,2,0"/>
<Button Grid.Column="1" Content="Get" Click="OnLoadClicked" HorizontalAlignment="Stretch" Margin="2,0,0,0"/>
</Grid>
</StackPanel>
</Border>
<Button Content="Generate Auto Data" Click="OnAutoDataClicked" HorizontalAlignment="Stretch"/>
<Button Content="Spam 5 Records" Click="OnSpamClicked" HorizontalAlignment="Stretch"/>
<Button Content="Count Documents" Click="OnCountClicked" HorizontalAlignment="Stretch"/>
<TextBlock Text="Status" FontWeight="Bold" Margin="0,10,0,5"/>
<TextBlock x:Name="StatusLabel" Text="Ready" TextWrapping="Wrap" Foreground="Green"/>
<Separator Margin="0,15"/>
<TextBlock Text="TodoLists" FontWeight="Bold" Margin="0,0,0,5"/>
<Button Content="📋 Manage TodoLists" Click="OnShowTodoListsClicked" HorizontalAlignment="Stretch"/>
</StackPanel>
<!-- Right Side: Peers & Results -->
<Grid Grid.Column="1" RowDefinitions="*, Auto, *">
<!-- Peers List -->
<Border Grid.Row="0" BorderBrush="#e0e0e0" BorderThickness="1" CornerRadius="4" Padding="5">
<Grid RowDefinitions="Auto, *">
<TextBlock Text="Active Peers (Discovery)" FontWeight="Bold" Margin="5"/>
<ListBox x:Name="PeersList" Grid.Row="1" Background="Transparent"/>
</Grid>
</Border>
<GridSplitter Grid.Row="1" Height="5" HorizontalAlignment="Stretch"/>
<!-- Results Log -->
<Border Grid.Row="2" BorderBrush="#e0e0e0" BorderThickness="1" CornerRadius="4" Padding="5">
<Grid RowDefinitions="Auto, *">
<StackPanel Orientation="Horizontal" Spacing="10">
<TextBlock Text="Logs & Results" FontWeight="Bold" Margin="5"/>
<Button Content="Clear" Click="OnClearLogsClicked" Padding="5,2" FontSize="10"/>
</StackPanel>
<TextBox x:Name="ResultLog" Grid.Row="1" IsReadOnly="True" />
</Grid>
</Border>
</Grid>
</Grid>
<!-- Footer: Resolver Selection & Demo -->
<Border Background="#fafafa" Padding="10" BorderBrush="#e0e0e0" BorderThickness="0,1,0,0" Margin="10,5,10,0">
<StackPanel Orientation="Horizontal" Spacing="20" HorizontalAlignment="Center">
<TextBlock Text="Conflict Resolver:" VerticalAlignment="Center" FontWeight="SemiBold"/>
<RadioButton x:Name="LwwRadio" Content="Last Write Wins" GroupName="Resolver"/>
<RadioButton x:Name="MergeRadio" Content="Recursive Merge" GroupName="Resolver" IsChecked="True"/>
<Button Content="💾 Save & Restart" Click="OnSaveResolverClicked" Padding="8,4"/>
<Separator Width="2" Height="20"/>
<Button Content="🔬 Run Conflict Demo" Click="OnRunConflictDemoClicked" Padding="8,4"/>
</StackPanel>
</Border>
</Grid>
</UserControl>