Chart and KPI numbers were literals in DashboardView, duplicated between the line and bar chart, and only existed at construction time. Add a thin data layer as the seam for later refresh/filter work: - ChartSeries / KpiData records, immutable, carrying translation keys rather than display text so the data layer stays free of a UI locale. - ChartDataService interface plus an in-memory implementation returning the previous hardcoded numbers, so nothing changes visually. - DashboardView injects the service, lays out the KPI tiles from its list (grid ids come from the data, so saved layouts still match), and resolves the keys against the bundle. Also fixes DashboardChartPlaywrightTest, red on main since the KPI tiles landed: it patched the first apex-chart, which is now a sparkline with no xaxis.categories, so the axis-chart patch was a structural change and legitimately redrew the SVG. It now targets an axis chart. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0124BiJikbhbiEsNfJxdWM69
My Application
A Spring Boot + Vaadin project. Build your UI in pure Java — no HTML, no JavaScript.
New to Vaadin? The 5-minute Quickstart walks you from here to your first running app, a live code change, and an AI-assisted edit with Copilot.
Fastest start — no plugin needed
From the project folder:
./mvnw spring-boot:run # Windows: mvnw.cmd spring-boot:run
Then open http://localhost:8080.
The first start takes ~30 seconds while Maven downloads dependencies.
Port 8080 already in use? Stop the other process, or set
server.port=8081insrc/main/resources/application.propertiesand open that port instead.To stop the app: press
Ctrl+Cin the terminal (or the red Stop button if you launched from your IDE).
Optional upgrade — instant hotswap
Running with spring-boot:run works, but Java code changes need a server restart. For live reload — edit Java, see it in the browser without restarting — install the Vaadin plugin and start the app through it:
- IntelliJ IDEA: install Vaadin from the JetBrains Marketplace → Debug using Hotswap Agent (dropdown next to Run). Just installed it? Let IntelliJ finish indexing, or restart it, if the menu item isn't there yet.
- VS Code: install the Vaadin extension → Vaadin: Debug using Hotswap Agent from the command palette.
- Eclipse: install the Vaadin plugin → right-click the project → Run As → Vaadin Application.
This is what makes the edit-and-see-it loop feel instant — and it's required for the AI edits in Vaadin Copilot.
Ask your AI assistant about Vaadin (optional)
If you use Claude Code, Cursor, or another AI coding assistant, connect it to the Vaadin MCP server so it answers against real Vaadin docs and the exact API of your installed version — instead of guessing from outdated training data.
# One-time setup — see https://vaadin.com/docs/latest/building-apps/mcp
A .mcp.json is included (commented out by default). Uncomment it, or run the setup command above, to activate.
Build for production
./mvnw package
java -jar target/*.jar
Learn more
- Vaadin Quickstart — the 5-minute getting-started path
- Components — 50+ UI components, all callable from Java
- Vaadin Copilot — visual + AI editing in the browser
- Full documentation