@@ -82,7 +82,6 @@ public class WelcomeCenterView extends BorderPane {
8282 private final Label recentOverviewValueLabel = new Label ("0" );
8383 private final Label recentOverviewDetailLabel = new Label ("Tracked projects" );
8484 private final Label healthOverviewValueLabel = new Label ("Pending" );
85- private final Label healthOverviewDetailLabel = new Label ("Run checks to inspect the environment" );
8685
8786 private final Button btnNewProject = new Button ();
8887 private final Button btnOpenProject = new Button ();
@@ -253,13 +252,11 @@ private void buildUi() {
253252 projectLabel .setWrapText (true );
254253 statusLabel .getStyleClass ().add ("welcome-status-text" );
255254 recentMetaLabel .getStyleClass ().add ("welcome-section-meta" );
256- healthMetaLabel .getStyleClass ().add ("welcome-section-meta" );
257255 workspaceValueLabel .getStyleClass ().add ("welcome-overview-value" );
258256 projectValueLabel .getStyleClass ().add ("welcome-overview-value" );
259257 recentOverviewValueLabel .getStyleClass ().add ("welcome-overview-value" );
260258 recentOverviewDetailLabel .getStyleClass ().add ("welcome-overview-detail" );
261259 healthOverviewValueLabel .getStyleClass ().addAll ("welcome-overview-value" , "welcome-overview-value-info" );
262- healthOverviewDetailLabel .getStyleClass ().add ("welcome-overview-detail" );
263260
264261 btnNewProject .setOnAction (e -> {
265262 if (onCreateProject != null ) onCreateProject .run ();
@@ -308,12 +305,16 @@ private void buildUi() {
308305 HBox headingRow = new HBox (8 , headingLabel , versionLabel , headingSpacer , btnSettings );
309306 headingRow .setAlignment (Pos .BASELINE_LEFT );
310307
308+ healthContainer .setPadding (new Insets (0 ));
309+ healthContainer .setSpacing (4 );
310+ VBox healthOverviewCard = buildHealthOverviewCard ();
311+
311312 HBox overviewRow = new HBox (
312313 10 ,
313314 buildOverviewCard ("Workspace" , workspaceValueLabel , workspaceLabel ),
314315 buildOverviewCard ("Current Project" , projectValueLabel , projectLabel ),
315316 buildOverviewCard ("Recent Projects" , recentOverviewValueLabel , recentOverviewDetailLabel ),
316- buildOverviewCard ( "Environment Health" , healthOverviewValueLabel , healthOverviewDetailLabel )
317+ healthOverviewCard
317318 );
318319 overviewRow .getStyleClass ().add ("welcome-overview-row" );
319320
@@ -377,21 +378,8 @@ private void buildUi() {
377378 spotlight .setPadding (new Insets (10 ));
378379 spotlight .getStyleClass ().add ("welcome-section-card" );
379380
380- Label healthHeader = new Label ("Environment Health" );
381- healthHeader .getStyleClass ().add ("welcome-section-title" );
382- Region healthSpacer = new Region ();
383- HBox .setHgrow (healthSpacer , Priority .ALWAYS );
384- HBox healthHeaderRow = new HBox (8 , healthHeader , healthSpacer , healthMetaLabel );
385- healthHeaderRow .setAlignment (Pos .CENTER_LEFT );
386- healthContainer .setPadding (new Insets (0 ));
387- healthContainer .setSpacing (6 );
388- VBox health = new VBox (8 , healthHeaderRow , healthContainer );
389- health .setPadding (new Insets (10 ));
390- health .getStyleClass ().add ("welcome-section-card" );
391-
392- VBox right = new VBox (10 , spotlight , health );
381+ VBox right = new VBox (10 , spotlight );
393382 VBox .setVgrow (spotlight , Priority .ALWAYS );
394- VBox .setVgrow (health , Priority .SOMETIMES );
395383
396384 SplitPane split = new SplitPane (left , right );
397385 split .getStyleClass ().add ("welcome-center-split" );
@@ -741,6 +729,17 @@ private VBox buildOverviewCard(String title, Label valueLabel, Label detailLabel
741729 return card ;
742730 }
743731
732+ private VBox buildHealthOverviewCard () {
733+ Label titleLabel = new Label ("Environment Health" );
734+ titleLabel .getStyleClass ().add ("welcome-overview-title" );
735+ healthMetaLabel .getStyleClass ().add ("welcome-overview-detail" );
736+ VBox card = new VBox (5 , titleLabel , healthOverviewValueLabel , healthMetaLabel , healthContainer );
737+ card .getStyleClass ().add ("welcome-overview-card" );
738+ HBox .setHgrow (card , Priority .ALWAYS );
739+ VBox .setVgrow (card , Priority .ALWAYS );
740+ return card ;
741+ }
742+
744743 private VBox buildProjectSpotlightCard () {
745744 Label header = new Label ("Project Launcher" );
746745 header .getStyleClass ().add ("welcome-section-title" );
@@ -1177,36 +1176,29 @@ private void updateHealthOverview(List<HealthRow> rows) {
11771176 "welcome-overview-value-info" );
11781177 if (rows == null || rows .isEmpty ()) {
11791178 healthOverviewValueLabel .setText ("Pending" );
1180- healthOverviewDetailLabel .setText ("Run checks to inspect the environment" );
11811179 healthOverviewValueLabel .getStyleClass ().add ("welcome-overview-value-info" );
11821180 return ;
11831181 }
11841182
1185- int ok = 0 ;
11861183 int warn = 0 ;
11871184 int error = 0 ;
1188- int info = 0 ;
11891185 for (HealthRow row : rows ) {
11901186 if (row == null || row .severity () == null ) continue ;
11911187 switch (row .severity ()) {
1192- case OK -> ok ++;
11931188 case WARN -> warn ++;
11941189 case ERROR -> error ++;
1195- case INFO -> info ++;
1190+ default -> {}
11961191 }
11971192 }
11981193
11991194 if (error > 0 ) {
1200- healthOverviewValueLabel .setText ("Errors detected" );
1201- healthOverviewDetailLabel .setText (error + " blocking issue" + (error == 1 ? "" : "s" ) + " across " + rows .size () + " checks" );
1195+ healthOverviewValueLabel .setText (error + " error" + (error == 1 ? "" : "s" ) + " detected" );
12021196 healthOverviewValueLabel .getStyleClass ().add ("welcome-overview-value-error" );
12031197 } else if (warn > 0 ) {
1204- healthOverviewValueLabel .setText ("Needs attention" );
1205- healthOverviewDetailLabel .setText (warn + " warning" + (warn == 1 ? "" : "s" ) + " • " + ok + " checks passing" );
1198+ healthOverviewValueLabel .setText (warn + " warning" + (warn == 1 ? "" : "s" ));
12061199 healthOverviewValueLabel .getStyleClass ().add ("welcome-overview-value-warn" );
12071200 } else {
12081201 healthOverviewValueLabel .setText ("All clear" );
1209- healthOverviewDetailLabel .setText (rows .size () + " checks passing" + (info > 0 ? " • " + info + " informational" : "" ));
12101202 healthOverviewValueLabel .getStyleClass ().add ("welcome-overview-value-ok" );
12111203 }
12121204 }
0 commit comments