Forge
deeb25a2
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 x:Class="CascadeIDE.Views.EnvironmentReadinessMfdPageView"
7 x:DataType="vm:MainWindowViewModel">
8 <UserControl.Resources>
9 <views:AnnunciatorLampLevelToBrushConverter x:Key="EnvLevelBrush"/>
10 <views:EnvironmentReadinessIsSectionRowConverter x:Key="ErsIsSectionRow"/>
11 <views:StringNotEmptyToBoolConverter x:Key="ErsDetailVisible"/>
12 </UserControl.Resources>
13 <DockPanel Margin="0,4,0,0">
14 <views:PanelChromeHeader DockPanel.Dock="Top"
15 Title="Готовность окружения · LSP, инструменты и переменные"
16 UppercaseTitle="True"/>
17 <!-- ADR 0063/0068: одна коллекция; порядок строк — payload (секции и детали). Список карточек, без таблицы. -->
18 <ScrollViewer VerticalScrollBarVisibility="Auto"
19 HorizontalScrollBarVisibility="Disabled">
20 <Panel>
21 <!-- Узкий MFD: компактные карточки -->
22 <Border x:Name="CompactLayoutRoot"
23 IsVisible="True"
24 Margin="0,0,0,4"
25 BorderBrush="{DynamicResource CascadeTheme.EditorColumnBorderBrush}"
26 BorderThickness="1"
27 CornerRadius="4"
28 Background="{DynamicResource CascadeTheme.PanelBackgroundBrush}">
29 <ItemsControl ItemsSource="{Binding EnvironmentReadinessItems}">
30 <ItemsControl.ItemsPanel>
31 <ItemsPanelTemplate>
32 <StackPanel Orientation="Vertical"/>
33 </ItemsPanelTemplate>
34 </ItemsControl.ItemsPanel>
35 <ItemsControl.ItemTemplate>
36 <DataTemplate DataType="models:AnnunciatorLampItem">
37 <Panel>
38 <Border IsVisible="{Binding Id, Converter={StaticResource ErsIsSectionRow}}"
39 Padding="8,8"
40 Margin="0,8,0,0"
41 CornerRadius="4"
42 BorderThickness="1"
43 BorderBrush="{DynamicResource CascadeTheme.EditorColumnBorderBrush}"
44 Background="{DynamicResource CascadeTheme.MarkdownPreviewPanelBackground}">
45 <Grid ColumnDefinitions="Auto,*">
46 <views:AnnunciatorLampCell Grid.Column="0"
47 Item="{Binding}"
48 VerticalAlignment="Top"
49 HorizontalAlignment="Center"
50 Margin="0,0,10,0"/>
51 <StackPanel Grid.Column="1" Spacing="4">
52 <TextBlock Text="{Binding Title}"
53 TextWrapping="Wrap"
54 FontWeight="SemiBold"
55 FontSize="12"
56 Foreground="{Binding Level, Converter={StaticResource EnvLevelBrush}}"/>
57 <TextBlock Text="{Binding Detail}"
58 TextWrapping="Wrap"
59 FontSize="10"
60 IsVisible="{Binding Detail, Converter={StaticResource ErsDetailVisible}}"
61 Foreground="{DynamicResource CascadeTheme.TerminalForeground}"/>
62 </StackPanel>
63 </Grid>
64 </Border>
65 <Border IsVisible="{Binding Id, Converter={StaticResource ErsIsSectionRow}, ConverterParameter=Invert}"
66 Padding="8,6"
67 Margin="0,0,0,6"
68 CornerRadius="4"
69 BorderThickness="1"
70 BorderBrush="{DynamicResource CascadeTheme.EditorColumnBorderBrush}"
71 Background="{DynamicResource CascadeTheme.PanelBackgroundBrush}">
72 <Grid ColumnDefinitions="Auto,*">
73 <views:AnnunciatorLampCell Grid.Column="0"
74 Item="{Binding}"
75 VerticalAlignment="Top"
76 HorizontalAlignment="Center"
77 Margin="0,0,10,0"/>
78 <StackPanel Grid.Column="1" Spacing="2">
79 <TextBlock Text="{Binding Title}"
80 TextWrapping="Wrap"
81 FontWeight="SemiBold"
82 FontSize="11"
83 Foreground="{Binding Level, Converter={StaticResource EnvLevelBrush}}"/>
84 <TextBlock Text="{Binding Detail}"
85 TextWrapping="Wrap"
86 FontSize="10"
87 Foreground="{DynamicResource CascadeTheme.TerminalForeground}"/>
88 </StackPanel>
89 </Grid>
90 </Border>
91 </Panel>
92 </DataTemplate>
93 </ItemsControl.ItemTemplate>
94 </ItemsControl>
95 </Border>
96
97 <!-- Широкая зона: тот же список, крупнее типографика -->
98 <Border x:Name="WideLayoutRoot"
99 IsVisible="False"
100 Margin="0,0,0,4"
101 BorderBrush="{DynamicResource CascadeTheme.EditorColumnBorderBrush}"
102 BorderThickness="1"
103 CornerRadius="4"
104 Background="{DynamicResource CascadeTheme.PanelBackgroundBrush}">
105 <ItemsControl ItemsSource="{Binding EnvironmentReadinessItems}">
106 <ItemsControl.ItemsPanel>
107 <ItemsPanelTemplate>
108 <StackPanel Orientation="Vertical"/>
109 </ItemsPanelTemplate>
110 </ItemsControl.ItemsPanel>
111 <ItemsControl.ItemTemplate>
112 <DataTemplate DataType="models:AnnunciatorLampItem">
113 <Panel>
114 <Border IsVisible="{Binding Id, Converter={StaticResource ErsIsSectionRow}}"
115 Padding="12,10"
116 Margin="0,10,0,0"
117 CornerRadius="6"
118 BorderThickness="1"
119 BorderBrush="{DynamicResource CascadeTheme.EditorColumnBorderBrush}"
120 Background="{DynamicResource CascadeTheme.MarkdownPreviewPanelBackground}">
121 <Grid ColumnDefinitions="Auto,*">
122 <views:AnnunciatorLampCell Grid.Column="0"
123 Item="{Binding}"
124 VerticalAlignment="Top"
125 HorizontalAlignment="Center"
126 Margin="0,0,12,0"/>
127 <StackPanel Grid.Column="1" Spacing="6">
128 <TextBlock Text="{Binding Title}"
129 TextWrapping="Wrap"
130 FontWeight="SemiBold"
131 FontSize="14"
132 Foreground="{Binding Level, Converter={StaticResource EnvLevelBrush}}"/>
133 <TextBlock Text="{Binding Detail}"
134 TextWrapping="Wrap"
135 FontSize="12"
136 IsVisible="{Binding Detail, Converter={StaticResource ErsDetailVisible}}"
137 Foreground="{DynamicResource CascadeTheme.TerminalForeground}"/>
138 </StackPanel>
139 </Grid>
140 </Border>
141 <Border IsVisible="{Binding Id, Converter={StaticResource ErsIsSectionRow}, ConverterParameter=Invert}"
142 Padding="10,8"
143 Margin="0,0,0,8"
144 CornerRadius="6"
145 BorderThickness="1"
146 BorderBrush="{DynamicResource CascadeTheme.EditorColumnBorderBrush}"
147 Background="{DynamicResource CascadeTheme.PanelBackgroundBrush}">
148 <Grid ColumnDefinitions="Auto,*">
149 <views:AnnunciatorLampCell Grid.Column="0"
150 Item="{Binding}"
151 VerticalAlignment="Top"
152 HorizontalAlignment="Center"
153 Margin="0,0,12,0"/>
154 <StackPanel Grid.Column="1" Spacing="4">
155 <TextBlock Text="{Binding Title}"
156 TextWrapping="Wrap"
157 FontWeight="SemiBold"
158 FontSize="13"
159 Foreground="{Binding Level, Converter={StaticResource EnvLevelBrush}}"/>
160 <TextBlock Text="{Binding Detail}"
161 TextWrapping="Wrap"
162 FontSize="12"
163 Foreground="{DynamicResource CascadeTheme.TerminalForeground}"/>
164 </StackPanel>
165 </Grid>
166 </Border>
167 </Panel>
168 </DataTemplate>
169 </ItemsControl.ItemTemplate>
170 </ItemsControl>
171 </Border>
172 </Panel>
173 </ScrollViewer>
174 </DockPanel>
175</UserControl>
176
View only · write via MCP/CIDE