Skip to content

Commit 51b0b85

Browse files
committed
Consolidate environment health into overview card
1 parent 8ab625a commit 51b0b85

1 file changed

Lines changed: 20 additions & 28 deletions

File tree

editor/src/main/java/com/jvn/editor/ui/WelcomeCenterView.java

Lines changed: 20 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)