Skip to main content

vaadin-component-design

Design Vaadin UI components with proper lifecycle, data binding, and responsive layouts for CIA platform

Quellinformationen

Repository
Hack23/cia
Letzte Quellaktivität
1. Februar 2026 um 00:05
Erkannte Sprache von SKILL.md
Englisch
Sterne
241
Forks
56

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
vaadin-component-design
description
Design Vaadin UI components with proper lifecycle, data binding, and responsive layouts for CIA platform
license
Apache-2.0
# Vaadin Component Design Skill ## Purpose Create maintainable, responsive Vaadin UI components with proper lifecycle and data binding. ## When to Use - ✅ Creating new UI views - ✅ Designing forms and data grids - ✅ Implementing user interactions - ✅ Building responsive layouts ## Component Patterns ```java @SpringView(name = PoliticianView.NAME) @Secured({"ROLE_USER", "ROLE_ADMIN"}) public class PoliticianView extends VerticalLayout implements View { public static final String NAME = "politicians"; private final PoliticianService service; private final Grid<Politician> grid = new Grid<>(Politician.class); public PoliticianView(PoliticianService service) { this.service = service; setSizeFull(); configureGrid(); add(createToolbar(), grid); updateList(); } private void configureGrid() { grid.setSizeFull(); grid.setColumns("firstName", "lastName", "party", "district"); grid.addColumn(p -> p.getVotingRecords().size()) .setCaption("Total Votes"); grid.getColumns().forEach(col -> col.setExpandRatio(1)); } private Component createToolbar() { TextField searchField = new TextField(); searchField.setPlaceholder("Search..."); searchField.addValueChangeListener(e -> updateList()); Button addButton = new Button("Add Politician"); addButton.addClickListener(e -> addPolitician()); return new HorizontalLayout(searchField, addButton); } } ``` ## Data Binding ```java public class PoliticianForm extends FormLayout { TextField firstName = new TextField("First Name"); TextField lastName = new TextField("Last Name"); ComboBox<Party> party = new ComboBox<>("Party"); Binder<Politician> binder = new Binder<>(Politician.class); public PoliticianForm() { binder.forField(firstName) .asRequired("First name is required") .withValidator(name -> name.length() >= 2, "Name too short") .bind(Politician::getFirstName, Politician::setFirstName); add(firstName, lastName, party); } } ``` ## References - Vaadin: https://vaadin.com/docs - citizen-intelligence-agency/src/main/java/com/hack23/cia/web/
Auf GitHub ansehen