Forge
809ae470
1<UserControl xmlns="https://github.com/avaloniaui"
2 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
3 xmlns:vm="using:CascadeIDE.ViewModels"
4 xmlns:models="using:CascadeIDE.Models"
5 xmlns:views="using:CascadeIDE.Views"
6 xmlns:ui="using:CascadeIDE.Views.UiKit"
7 x:Class="CascadeIDE.Views.HybridIndexMfdPageView"
8 x:DataType="vm:MainWindowViewModel">
9 <DockPanel Margin="0,4,0,0">
10 <views:PanelChromeHeader DockPanel.Dock="Top"
11 Title="INDEX / HCI · docs, freshns, scope"
12 UppercaseTitle="True"/>
13
14 <!-- ECAM-like layout: top = indicators, bottom = MSG zone. -->
15 <Grid RowDefinitions="Auto,Auto"
16 RowSpacing="10"
17 Margin="0,8,0,0">
18
19 <Grid Grid.Row="0"
20 ColumnDefinitions="1.1*,1.2*,1.2*"
21 RowDefinitions="Auto,*"
22 ColumnSpacing="10"
23 RowSpacing="10">
24
25 <!-- Column 1: Digital indicators + ERS-like lamp -->
26 <ui:EcamMetricCard Grid.Column="0"
27 Grid.RowSpan="2"
28 Title="HCI">
29 <Grid ColumnDefinitions="Auto,*"
30 RowDefinitions="Auto,Auto"
31 ColumnSpacing="12"
32 RowSpacing="10"
33 Margin="0,4,0,0">
34 <views:AnnunciatorLampCell Grid.Column="0"
35 Grid.RowSpan="2"
36 Item="{Binding HybridIndexLampItem}"
37 VerticalAlignment="Top"
38 HorizontalAlignment="Center"
39 Margin="0,2,0,0"/>
40
41 <ui:EcamReadout Grid.Column="1"
42 Grid.Row="0"
43 Label="DOCS"
44 ValueText="{Binding HybridIndexDocumentCountText}"/>
45
46 <ui:EcamReadout Grid.Column="1"
47 Grid.Row="1"
48 Label="FRESHNS"
49 ValueText="{Binding HybridIndexFreshnessEcamText}"
50 SubText=""/>
51 </Grid>
52 </ui:EcamMetricCard>
53
54 <!-- Column 2: (keep) indexed at glance -->
55 <ui:EcamMetricCard Grid.Column="1"
56 Grid.Row="0"
57 VerticalAlignment="Top"
58 Title="INDEXED">
59 <ui:EcamReadout Label="UTC"
60 ValueText="{Binding HybridIndexIndexedAtText}"
61 SubText=""/>
62 </ui:EcamMetricCard>
63
64 <!-- Column 3: Actions only (softkeys) -->
65 <ui:EcamMetricCard Grid.Column="2"
66 Grid.Row="0"
67 VerticalAlignment="Top"
68 Title="ACTIONS">
69 <ui:EcamSoftKeyBar Button1Text="REINDEX"
70 Button1Command="{Binding HybridIndexReindexNowCommand}"
71 Button2Text="OPEN DIR"
72 Button2Command="{Binding HybridIndexOpenIndexDirCommand}"
73 Button3Text="COPY ERROR"
74 Button3Click="OnCopyErrorClick"/>
75 </ui:EcamMetricCard>
76 </Grid>
77
78 <!-- MSG zone -->
79 <ui:EcamMetricCard Grid.Row="1" Title="ECAM MSG">
80 <Grid RowDefinitions="Auto,Auto,Auto" RowSpacing="6">
81 <TextBlock Grid.Row="0"
82 Text="{Binding HybridIndexMsgLine1}"
83 FontSize="14"
84 Foreground="#00FF6A"/>
85 <TextBlock Grid.Row="1"
86 Text="{Binding HybridIndexMsgLine2}"
87 FontSize="14"
88 Foreground="{DynamicResource CascadeTheme.TerminalForeground}"
89 TextWrapping="Wrap"/>
90 <StackPanel Grid.Row="2" Orientation="Horizontal" Spacing="10">
91 <TextBlock Text="{Binding HybridIndexWorkspaceShortText}"
92 ToolTip.Tip="{Binding HybridIndexWorkspaceRootText}"
93 TextTrimming="CharacterEllipsis"
94 MaxWidth="260"
95 Foreground="{DynamicResource CascadeTheme.ChatLabelForeground}"
96 Opacity="0.85"/>
97 <TextBlock Text="{Binding HybridIndexSolutionShortText}"
98 ToolTip.Tip="{Binding HybridIndexSolutionPathText}"
99 TextTrimming="CharacterEllipsis"
100 MaxWidth="260"
101 Foreground="{DynamicResource CascadeTheme.ChatLabelForeground}"
102 Opacity="0.85"/>
103 <TextBlock Text="{Binding HybridIndexDatabaseShortText}"
104 ToolTip.Tip="{Binding HybridIndexDatabasePathText}"
105 TextTrimming="CharacterEllipsis"
106 MaxWidth="260"
107 Foreground="{DynamicResource CascadeTheme.ChatLabelForeground}"
108 Opacity="0.85"/>
109 </StackPanel>
110 </Grid>
111 </ui:EcamMetricCard>
112 </Grid>
113 </DockPanel>
114</UserControl>
115
116
View only · write via MCP/CIDE