{"id":15383609,"url":"https://github.com/mvysny/vaadin-groovy-builder","last_synced_at":"2026-02-09T13:33:16.029Z","repository":{"id":38986894,"uuid":"248152687","full_name":"mvysny/vaadin-groovy-builder","owner":"mvysny","description":"Building Vaadin UIs in Groovy pleasantly with DSL","archived":false,"fork":false,"pushed_at":"2023-11-20T07:46:52.000Z","size":1597,"stargazers_count":2,"open_issues_count":12,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-16T00:30:10.545Z","etag":null,"topics":["builder-pattern","dsl","groovy","vaadin","vaadin14"],"latest_commit_sha":null,"homepage":"https://vaadin.com/","language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mvysny.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-03-18T06:11:34.000Z","updated_at":"2023-04-03T01:54:42.000Z","dependencies_parsed_at":"2023-11-20T08:11:09.388Z","dependency_job_id":"a7ab9d17-745e-4fda-b2ca-aaa065b8ae57","html_url":"https://github.com/mvysny/vaadin-groovy-builder","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/mvysny/vaadin-groovy-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvysny%2Fvaadin-groovy-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvysny%2Fvaadin-groovy-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvysny%2Fvaadin-groovy-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvysny%2Fvaadin-groovy-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mvysny","download_url":"https://codeload.github.com/mvysny/vaadin-groovy-builder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mvysny%2Fvaadin-groovy-builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270820793,"owners_count":24651534,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["builder-pattern","dsl","groovy","vaadin","vaadin14"],"created_at":"2024-10-01T14:38:54.393Z","updated_at":"2026-02-09T13:33:15.999Z","avatar_url":"https://github.com/mvysny.png","language":"Groovy","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GitHub tag](https://img.shields.io/github/tag/mvysny/vaadin-groovy-builder.svg)](https://github.com/mvysny/vaadin-groovy-builder/tags)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.mvysny.vaadin-groovy-builder/vaadin-groovy-builder-v14/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.github.mvysny.vaadin-groovy-builder/vaadin-groovy-builder-v14)\n![Java CI](https://github.com/mvysny/vaadin-groovy-builder/workflows/Java%20CI/badge.svg)\n\n# Vaadin Groovy Builder (Vaadin Groovy Extensions)\n\nThis is a Groovy extensions and DSL library for the [Vaadin](https://www.vaadin.com) framework.\n\nThis library:\n\n* Allows you to create Vaadin UI designs/component graphs in the structured code way; the idea behind\n  is explained in the [DSLs: Explained for Vaadin 8](http://www.vaadinonkotlin.eu/dsl_explained.html) article /\n  [DSLs: Explained for Vaadin 10](http://www.vaadinonkotlin.eu/dsl_explained-v10.html) article.\n  The general DSL idea is explained in [Kotlin Type-Safe Builders](https://kotlinlang.org/docs/reference/type-safe-builders.html).\n* Additional useful methods which Vaadin lacks\n\nThe full documentation:\n\n* Unfortunately there is no support for Vaadin 8 and lower\n* [Vaadin-Groovy-Builder Vaadin Platform (Vaadin 14+) tutorial](vaadin-groovy-builder-v14)\n\n\u003e Note: For Kotlin Vaadin DSL please see the [Karibu-DSL](https://github.com/mvysny/karibu-dsl) library.\n\n## Example Project\n\nSee [Vaadin Groovy Builder Example](https://github.com/mvysny/vaadin-groovy-builder-example).\nCode example:\n\n```groovy\n@Route(\"\")\n@CompileStatic\nclass MainView extends GComposite {\n    private TextField name\n    private Button sayHello\n    private def root = ui {\n        verticalLayout {\n            name = textField(\"Your name\") {}\n            sayHello = button(\"Say hello\") {}\n        }\n    }\n    MainView() {\n        sayHello.addClickListener {\n            Notification.show(\"Hello, ${name.value}\")\n        }\n    }\n}\n```\n\nThere is also an embedded example project attached to this repository. This allows\nus to test new builder features right away. Please see the [example](example) project\nfor more details.\n\n# License\n\nLicensed under the [MIT License](https://opensource.org/licenses/MIT).\n\nCopyright (c) 2017-2018 Martin Vysny\n\nAll rights reserved.\n\nPermission is hereby granted, free  of charge, to any person obtaining\na  copy  of this  software  and  associated  documentation files  (the\n\"Software\"), to  deal in  the Software without  restriction, including\nwithout limitation  the rights to  use, copy, modify,  merge, publish,\ndistribute,  sublicense, and/or sell  copies of  the Software,  and to\npermit persons to whom the Software  is furnished to do so, subject to\nthe following conditions:\n\nThe  above  copyright  notice  and  this permission  notice  shall  be\nincluded in all copies or substantial portions of the Software.\nTHE  SOFTWARE IS  PROVIDED  \"AS  IS\", WITHOUT  WARRANTY  OF ANY  KIND,\nEXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF\nMERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n# Contributing\n\nSee [Contributing](CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmvysny%2Fvaadin-groovy-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmvysny%2Fvaadin-groovy-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmvysny%2Fvaadin-groovy-builder/lists"}