From 1993f5d2d65fb3171420399bb3a686c849b6a9cd Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Thu, 28 Nov 2024 20:18:19 +0100 Subject: [PATCH 01/75] feat: add many new Wicket components --- pnpm-lock.yaml | 222 ++++++++++++++++++ wicket/components-wicket/package.json | 33 ++- wicket/components-wicket/pom.xml | 7 +- .../src/main/java/css/HTMLUtil.java | 22 ++ .../css/WicketComponentsCssReferences.java | 77 +++++- .../alert/utrecht/UtrechtAlert.html | 7 + .../alert/utrecht/UtrechtAlert.java | 19 ++ .../alert/utrecht/UtrechtAlertBehavior.java | 42 ++++ .../utrecht/UtrechtBadgeListBorder.html | 9 + .../utrecht/UtrechtBadgeListBorder.java | 10 + .../body/utrecht/UtrechtBodyBorder.html | 9 + .../body/utrecht/UtrechtBodyBorder.java | 10 + .../utrecht/UtrechtButtonGroupBorder.html | 9 + .../utrecht/UtrechtButtonGroupBorder.java | 10 + .../utrecht/UtrechtColumnLayoutBorder.html | 9 + .../utrecht/UtrechtColumnLayoutBorder.java | 10 + .../utrecht/UtrechtFormFieldCheckbox.html | 11 + .../utrecht/UtrechtFormFieldCheckbox.java | 190 +++++++++++++++ .../form_label/utrecht/UtrechtFormLabel.html | 3 + .../form_label/utrecht/UtrechtFormLabel.java | 17 ++ .../heading/utrecht/UtrechtHeading.java | 3 +- .../utrecht/UtrechtHeadingBehavior.java | 28 ++- .../utrecht/UtrechtHeadingGroupBorder.html | 9 + .../utrecht/UtrechtHeadingGroupBorder.java | 10 + .../utrecht/UtrechtHtmlContentBorder.html | 11 + .../utrecht/UtrechtHtmlContentBorder.java | 10 + .../icon/utrecht/UtrechtIconBorder.html | 5 + .../icon/utrecht/UtrechtIconBorder.java | 10 + .../logo/utrecht/UtrechtLogoBorder.html | 5 + .../logo/utrecht/UtrechtLogoBorder.java | 10 + .../rotterdam/RotterdamLogoImage.html | 10 + .../rotterdam/RotterdamLogoImage.java | 10 + .../utrecht/UtrechtNumberBadge.java | 22 ++ .../utrecht/UtrechtNumberBadgeBehavior.java | 41 ++++ .../utrecht/UtrechtOrderedList.html | 3 + .../utrecht/UtrechtOrderedList.java | 10 + .../utrecht/UtrechtOrderedListBehavior.java | 42 ++++ .../utrecht/UtrechtOrderedListItem.java | 22 ++ .../UtrechtOrderedListItemBehavior.java | 35 +++ .../utrecht/UtrechtPageBodyBorder.html | 13 + .../utrecht/UtrechtPageBodyBorder.java | 10 + .../utrecht/UtrechtPageFooterBorder.html | 13 + .../utrecht/UtrechtPageFooterBorder.java | 10 + .../utrecht/UtrechtPageHeaderBorder.html | 13 + .../utrecht/UtrechtPageHeaderBorder.java | 10 + .../utrecht/UtrechtPageLayout.html | 3 + .../utrecht/UtrechtPageLayout.java | 12 + .../UtrechtPageLayoutBehavior.java-disabled | 36 +++ .../utrecht/UtrechtPageLayoutBorder.html | 11 + .../utrecht/UtrechtPageLayoutBorder.java | 10 + .../root/utrecht/UtrechtRootBorder.html | 5 + .../root/utrecht/UtrechtRootBorder.java | 10 + .../separator/utrecht/UtrechtSeparator.html | 3 + .../separator/utrecht/UtrechtSeparator.java | 10 + .../utrecht/UtrechtUnorderedList.html | 3 + .../utrecht/UtrechtUnorderedList.java | 10 + .../utrecht/UtrechtUnorderedListBehavior.java | 42 ++++ .../nl/rotterdam/wicket/docs/BasePage.html | 6 +- .../nl/rotterdam/wicket/docs/BasePage.java | 64 ++++- .../rotterdam/wicket/docs/ComponentsPage.html | 114 +++++++-- .../rotterdam/wicket/docs/ComponentsPage.java | 155 +++++++++++- .../form_label/FormLabelExamplesPanel.html | 26 ++ .../form_label/FormLabelExamplesPanel.java | 26 ++ .../wicket/docs/page_footer/PageFooter | 0 .../page_footer/PageFooterExamplesPanel.html | 0 .../page_layout/PageLayoutExamplesPanel.java | 18 ++ .../wicket/nl_design/docs/Start.java | 16 +- 67 files changed, 1583 insertions(+), 88 deletions(-) create mode 100644 wicket/components-wicket/src/main/java/css/HTMLUtil.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo_image/rotterdam/RotterdamLogoImage.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo_image/rotterdam/RotterdamLogoImage.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadge.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadgeBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedList.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedList.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListItem.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListItemBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBorder.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBorder.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java-disabled create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListBehavior.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/PageFooter create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/PageFooterExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/PageLayoutExamplesPanel.java diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3efd9770..b2f37158 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -590,6 +590,36 @@ importers: '@nl-design-system-unstable/voorbeeld-design-tokens': specifier: 3.3.4 version: 3.3.4 + '@utrecht/alert-css': + specifier: 2.2.0 + version: 2.2.0 + '@utrecht/badge-list-css': + specifier: 2.2.0 + version: 2.2.0 + '@utrecht/body-css': + specifier: 1.1.0 + version: 1.1.0 + '@utrecht/button-css': + specifier: 1.1.0 + version: 1.1.0 + '@utrecht/button-group-css': + specifier: 1.4.0 + version: 1.4.0 + '@utrecht/column-layout-css': + specifier: 1.5.0 + version: 1.5.0 + '@utrecht/custom-checkbox-css': + specifier: 1.1.1 + version: 1.1.1 + '@utrecht/form-field-css': + specifier: 1.5.0 + version: 1.5.0 + '@utrecht/form-field-description-css': + specifier: 1.5.0 + version: 1.5.0 + '@utrecht/form-field-error-message-css': + specifier: 1.5.0 + version: 1.5.0 '@utrecht/heading-1-css': specifier: 1.4.0 version: 1.4.0 @@ -608,6 +638,63 @@ importers: '@utrecht/heading-6-css': specifier: 1.4.0 version: 1.4.0 + '@utrecht/heading-group-css': + specifier: 1.4.0 + version: 1.4.0 + '@utrecht/html-content-css': + specifier: 1.3.0 + version: 1.3.0 + '@utrecht/icon': + specifier: 1.3.0 + version: 1.3.0 + '@utrecht/link-css': + specifier: 1.1.0 + version: 1.1.0 + '@utrecht/logo-css': + specifier: 1.4.0 + version: 1.4.0 + '@utrecht/nav-bar-css': + specifier: 1.4.0 + version: 1.4.0 + '@utrecht/number-badge-css': + specifier: 2.3.0 + version: 2.3.0 + '@utrecht/ordered-list-css': + specifier: 1.4.0 + version: 1.4.0 + '@utrecht/page-body-css': + specifier: 0.1.0 + version: 0.1.0 + '@utrecht/page-footer-css': + specifier: 2.1.0 + version: 2.1.0 + '@utrecht/page-header-css': + specifier: 1.5.0 + version: 1.5.0 + '@utrecht/page-layout-css': + specifier: 1.1.0 + version: 1.1.0 + '@utrecht/paragraph-css': + specifier: 1.1.0 + version: 1.1.0 + '@utrecht/root-css': + specifier: 1.1.0 + version: 1.1.0 + '@utrecht/separator-css': + specifier: 1.4.0 + version: 1.4.0 + '@utrecht/table-css': + specifier: 1.1.0 + version: 1.1.0 + '@utrecht/textarea-css': + specifier: 1.1.0 + version: 1.1.0 + '@utrecht/textbox-css': + specifier: 1.1.0 + version: 1.1.0 + '@utrecht/unordered-list-css': + specifier: 1.4.0 + version: 1.4.0 wicket/design-tokens-wicket: devDependencies: @@ -2740,18 +2827,33 @@ packages: resolution: {integrity: sha512-mCFtBbFBJDCNCWUl5y6sZSCHXw1DEFEk3c/M3nRK2a4XUB8StGFtmcEMizdjKuBzB6e/smJAAWYug3VrdLMr1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@utrecht/alert-css@2.2.0': + resolution: {integrity: sha512-cCJngxahyzpQyCNEr7i1PcNI0g2Ez++Uy2roaRKW6E5bFZO3srriODr+0rmhAEhij4inS9cf5D9QbhhMjMjsww==} + '@utrecht/badge-css@1.4.0': resolution: {integrity: sha512-Rh9SiK6i8N7Ui8N14h2g7z9+0dkQ1kuLV/fdzsI95M9LmZqmcNGpeFvy0brEhnGLiIWlbXPj9892VGbKoR1esA==} '@utrecht/badge-data-css@1.4.0': resolution: {integrity: sha512-ewxf14Orm5RVxrxQ4PS0T4+iG3HmbLfZDabJ4VC1yD1BTTD4lpMbUo1/t7BMenEYWlvodUoEIyj+k6E3NzsXtA==} + '@utrecht/badge-list-css@2.2.0': + resolution: {integrity: sha512-k/9icmEgPQUhZrzupIKtTl9tAUZkFZnaNpEHZp8kYJp9qAc9FY3ZGNBOr4XasqbdL/EZ4bg9oZrIb53jnzcRuQ==} + + '@utrecht/body-css@1.1.0': + resolution: {integrity: sha512-bKIHtnumGwF8biJoYamCNaro4Bko/M90I1ACjV5qYJGRWCBvp14gD0Qxeq8xHqPe+sWFYQmbFRvSrukiqzYy3A==} + '@utrecht/breadcrumb-nav-css@1.4.0': resolution: {integrity: sha512-mBe/Xczr2ekfT9sxl9svOtZJWrW0klbnWBDyhf4it4zOk5BKeeKxUYEjbOQghOQ5jqVRPdnRbIVZoKX0Vrq3sQ==} + '@utrecht/button-css@1.1.0': + resolution: {integrity: sha512-1NtKfwHmpaTmkv28fGRoVtT4Y9BER2TDE1jMuDGhL727DROQTXDKZB7ZEZMuLUqtxPInbyskZeJHMaA18CJbIA==} + '@utrecht/button-css@2.2.0': resolution: {integrity: sha512-Fooo1EN8Dla4XKdqAnvSI3yCqnh4XkwX0jmMWgm9czcyj4ahVYayEIz7zEg34J8Gd5bMbFmeakyaIU9/A9YAvQ==} + '@utrecht/button-group-css@1.4.0': + resolution: {integrity: sha512-NV12LA6wh0IaBuqjVVD+dZUzl4Sk0aKKiO3qL0BT7XQJvygDRjJq3M5d2pI9BDMMOb9jgT6VuIARST0Qk6JuxQ==} + '@utrecht/button-react@2.0.4': resolution: {integrity: sha512-dU5V6eMrdymvV8IJWh6PbrPFKz/pWHAUtRvPAKRGMoOGcFlyJAp2ZPYDHYSc7NdKH2KGehvX29c8gZLd1plm4g==} peerDependencies: @@ -2776,6 +2878,9 @@ packages: react: '18' react-dom: '18' + '@utrecht/column-layout-css@1.5.0': + resolution: {integrity: sha512-XnhA/CscHCwy5i35dOORgagmi0Ajhu/56Zr6ghRP42D8r2pcTL5YCYRAJ3qXozeQ+2QbDqzoGsVkYtmcuaJAFg==} + '@utrecht/combobox-react@0.0.5': resolution: {integrity: sha512-g3k3Vhj1uF8TtuKiqCalG8RKOFM38jow+T82FUVXoHoXDMtW2tWEFH6JpQY/BCk1KsBz18+dvRckrfwNCz+uEw==} peerDependencies: @@ -2803,6 +2908,9 @@ packages: '@utrecht/components@7.4.0': resolution: {integrity: sha512-LWFJjJ7TF0eaoWq5TGrg7rNYnG+G5yIEJhuiwFlbICwSx2n+gZVbAE1dAW8YG2mGqveXZk38hBC2FWNE1tj1BQ==} + '@utrecht/custom-checkbox-css@1.1.1': + resolution: {integrity: sha512-nU6T1eDEFSWBXmJ3eUuAlKy/0gPygXrGZhVmk7HUwyP+H0J6kAZd75t7d/ZlIjwzz5cWPF7uUbGD5637Z7KgHg==} + '@utrecht/custom-checkbox-css@1.3.1': resolution: {integrity: sha512-iChJIVwvWIgc4j3cP+0fcGHnOmN4cIevg4X27TxEADsVyJvTgjYfsudjAt4OlzYD/Vx6nvnY+ElDQhmge0jc/g==} @@ -2823,6 +2931,12 @@ packages: react: '18' react-dom: '18' + '@utrecht/form-field-css@1.5.0': + resolution: {integrity: sha512-PGqIYHYlqQKuADgIIQF4niS6XO1VeUv6OWrWDrLbFw0JkKtNwU9Y3ALtb5mSmgXAKOUHEtI7scwFqOxYgKztsw==} + + '@utrecht/form-field-description-css@1.5.0': + resolution: {integrity: sha512-LGImfd2xFuNPvycIQzwtTg2UIAo9T06MI/KoTbchB56lPzXLmictzfn2rGDzZuaemWTwkxqKUzorLXqdonZ22Q==} + '@utrecht/form-field-description-react@1.0.4': resolution: {integrity: sha512-fpD0Ccq66Q4MpfETtBzBCeaIamrJbOC7SBox5QrnAbVvjqCTwbEjbCQY+PWxC334JEevXguskWPE+UVlWkvnBg==} peerDependencies: @@ -2830,6 +2944,9 @@ packages: react: '18' react-dom: '18' + '@utrecht/form-field-error-message-css@1.5.0': + resolution: {integrity: sha512-VYkC40vinjvT764QBDh5kBdPVPfK4V02K99OnX9mGKPZvWaCL9UVH+DC8VPLIMWHKEHTaJLaqYGi2EwLybRcnA==} + '@utrecht/form-field-error-message-react@1.0.4': resolution: {integrity: sha512-7azbLctPHHeEgBuWeqBDyMD9Y3XSSQTPyrUUvx97Mn1DU49tf7tHJzcLnHySTYkVR7Nu6m/Bv+ImRhrTLpt2Rw==} peerDependencies: @@ -2875,9 +2992,18 @@ packages: '@utrecht/heading-css@1.4.0': resolution: {integrity: sha512-wx+Y3b5mnoXxlIpLYCY4pOuLSuazylWSI7T0sRVUEWouEBRq05r7VtGeaard99oDqjwYalFsycnO5GNhH9nVbg==} + '@utrecht/heading-group-css@1.4.0': + resolution: {integrity: sha512-x4iiWC3YNSQ8t8muRtP9yBoQM9gigBlESZzvEGmyhsz9hRsbYGG8RhI3jXvI8L3PXWYxGuyTd7J5h2/4k63CKg==} + + '@utrecht/html-content-css@1.3.0': + resolution: {integrity: sha512-/IjlfcdOcQBqOGwYMOWTSbH5Dk1I2p3A9kg7HJgOL/oSXZUDFQpJrrF41cHxZ+qUSCDtdjGOeEiXv7Bw9o4s5Q==} + '@utrecht/icon@1.3.0': resolution: {integrity: sha512-UkjRq7sR9Lsj6T9Ap6zi3YEWLbJNxau4RBSblDGM8E4irHW5AjiUERfVp4v6ZwSvgEqyeNIwwep69FJhw2je4A==} + '@utrecht/link-css@1.1.0': + resolution: {integrity: sha512-L/R5rGvA2RrXJFw/k2l2U7ZgeJuz92pdFDbW1Rtw+7XBK5Z/e+YMpnlDL8fx5VmFk95xO4Jmgv1j6BYiI6vnqA==} + '@utrecht/link-css@1.5.0': resolution: {integrity: sha512-2GgUbhOGWwu7GEoahQAV4QwHgNCkiUgdde6Ko97sjRhX0INhMIhQl++ROyA3jSefUHJYTkVSSWTNDUVF7vkFAg==} @@ -2898,6 +3024,30 @@ packages: '@utrecht/logo-css@1.4.0': resolution: {integrity: sha512-ijnom/1MS3HslSnZHMTwZEWbGn95Zx/cDwV6omTfocUgHj4oOKXbS0LeCo/KlCk3kNFs538bO6rvMSzK9z7cvg==} + '@utrecht/nav-bar-css@1.4.0': + resolution: {integrity: sha512-q2gC9Ks7+fktmTyDrulcxhyFa9yKLPYIsDZZxR52PPKCp5wFiCKSicwKcIcNwibwn77FM37HXVsMkgy4IzzDTw==} + + '@utrecht/number-badge-css@2.3.0': + resolution: {integrity: sha512-VVFXeNPf+j5u+nqXk4eR+PDOul8lZu3Zp+Bxsx6MRyiM74yqQgtXZjbhbk/onlhIkvcyXiPlvCqxuHOFBERpLQ==} + + '@utrecht/ordered-list-css@1.4.0': + resolution: {integrity: sha512-rRgqDu1v4o0WEmefsz2PC3aaP3aVMk75mrFaJax4YiMSQe8Co1GpjVrDPykHxgOUvdOPBimFfh1ZKXRyZuKLwg==} + + '@utrecht/page-body-css@0.1.0': + resolution: {integrity: sha512-vo4SH5/v73I18uvoBzVqHLODhBADdPhvveqyISz0kB4Nz2E4QCFoLZ0n+oqStYmUieVkHjCOnu3OSR2fYLLX/g==} + + '@utrecht/page-footer-css@2.1.0': + resolution: {integrity: sha512-wwYJEDGtwy3a2xxSHCLCiNXfsNc7xzp8d+G23uRKLoN2EHt+tE5TP0Qdm+bXFmltbDEsX+Q7bRnPN4wAkMP/fg==} + + '@utrecht/page-header-css@1.5.0': + resolution: {integrity: sha512-QB2l/cWhYZTcs9HVJG+/kf6cOCclNkqRGmVQ3hpc4pG0DC7w/GIzFquuVi0U62hqA0sqJ8TjPW5CqHesxrxLsQ==} + + '@utrecht/page-layout-css@1.1.0': + resolution: {integrity: sha512-nGPZHDvbhKn7wsMYSRWKqZIFq3PDmrjqA/b/GbeKHBTUTjDlnVa8qRsOL6uMPNEd/FXNHhV70ezfxFbVcbkyqA==} + + '@utrecht/paragraph-css@1.1.0': + resolution: {integrity: sha512-HxkYL/W0tkHngucdBFHOK8t7OmUmlnz4uIXP4GBXdA299Hp+RGb/1vaH5A2RaIN0P7/4v6EkuV4lquOcHx0K0Q==} + '@utrecht/paragraph-css@2.2.0': resolution: {integrity: sha512-jgFsFdz7xcqO14IhYEFx37dh4n1GjCfJM9iQsvo/Yr4zrknQHpGBWQcXMb548W19/4yHMnQnsSnivQGDbPdSug==} @@ -2911,12 +3061,27 @@ packages: react: '18' react-dom: '18' + '@utrecht/root-css@1.1.0': + resolution: {integrity: sha512-lt31HseX6O0+WnfVOplRFLw7+7FGmSYTgILtL7yt+c4VLLJyOayE4YE+Ak5nyIOoYuCUPyjRbEW8dtAYYzA8Fg==} + + '@utrecht/separator-css@1.4.0': + resolution: {integrity: sha512-KyBdIuGFk+JvLiURpn72N/1IMk9zXcTRYoCCI9DbBkzOgSYuR215suhVfM99lDLiinoUoXbQ6EbgGLcZ8wthEA==} + + '@utrecht/table-css@1.1.0': + resolution: {integrity: sha512-FUyT13Se/4/VGUZwMBDiBgHocAJ34ikCSSuQtIlZWrpQLdKnnY/dVuP8YJcxMwmqmeou7BfknhFWsiQiC/9njg==} + '@utrecht/table-css@1.4.0': resolution: {integrity: sha512-D2JvmGY9uf2/N/wiq4XbX5/9Gz5iTIsjiJF4huFmP+XRB7zzSwPTWgC/AdQWtIUiYlWQMFvvB6bOMtCIUq9eKA==} + '@utrecht/textarea-css@1.1.0': + resolution: {integrity: sha512-SL5fUf3ygYA70VC4mT4TSN6WHU95ESECUQyO4w3J942tLxvmfNHpdmMv1iBkyqo+xlM8Q1EP7oDKbkABBK5ceA==} + '@utrecht/textarea-css@2.2.0': resolution: {integrity: sha512-OFqAtwMpkRd+ME8Z9IIQiDd0rgrog88yOTgkQTTjWnKFzxDaq64CvY4SF78vzfco3cxMb4JqBPy4F7VOq55Kqw==} + '@utrecht/textbox-css@1.1.0': + resolution: {integrity: sha512-APQW299fyoNZQ/hYW8F9uET4JvzhXMbUBWT59h6sc/wwsbDBWku+ufgN4wrsYTqGSPExFKfffzRGuniaqyvBxA==} + '@utrecht/textbox-css@1.5.0': resolution: {integrity: sha512-30VUpY1FsJVveas9vxBLb/dEeTE2bWIdZ6TSGgMmfFF/Nyp1phUIxqN4jZBsAjw1pstbfYrMpLlcSSSDJTdtRQ==} @@ -2927,6 +3092,9 @@ packages: react: '18' react-dom: '18' + '@utrecht/unordered-list-css@1.4.0': + resolution: {integrity: sha512-G/jogE2aM6CM6T924XnzYWKRGrtRouwuBEgKc2Z0KKmkd+bY2ve8AGhSGqGe+7E7qwxRh1AYHxzXu31MlVd1Fg==} + '@vitejs/plugin-react@4.3.4': resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} engines: {node: ^14.18.0 || >=16.0.0} @@ -10310,14 +10478,24 @@ snapshots: '@typescript-eslint/types': 8.19.0 eslint-visitor-keys: 4.2.0 + '@utrecht/alert-css@2.2.0': {} + '@utrecht/badge-css@1.4.0': {} '@utrecht/badge-data-css@1.4.0': {} + '@utrecht/badge-list-css@2.2.0': {} + + '@utrecht/body-css@1.1.0': {} + '@utrecht/breadcrumb-nav-css@1.4.0': {} + '@utrecht/button-css@1.1.0': {} + '@utrecht/button-css@2.2.0': {} + '@utrecht/button-group-css@1.4.0': {} + '@utrecht/button-react@2.0.4(@babel/runtime@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 @@ -10345,6 +10523,8 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@utrecht/column-layout-css@1.5.0': {} + '@utrecht/combobox-react@0.0.5(@babel/runtime@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 @@ -10380,6 +10560,8 @@ snapshots: dependencies: clsx: 2.1.1 + '@utrecht/custom-checkbox-css@1.1.1': {} + '@utrecht/custom-checkbox-css@1.3.1': {} '@utrecht/fieldset-react@1.0.4(@babel/runtime@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': @@ -10403,6 +10585,10 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@utrecht/form-field-css@1.5.0': {} + + '@utrecht/form-field-description-css@1.5.0': {} + '@utrecht/form-field-description-react@1.0.4(@babel/runtime@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 @@ -10410,6 +10596,8 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@utrecht/form-field-error-message-css@1.5.0': {} + '@utrecht/form-field-error-message-react@1.0.4(@babel/runtime@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 @@ -10447,8 +10635,14 @@ snapshots: '@utrecht/heading-css@1.4.0': {} + '@utrecht/heading-group-css@1.4.0': {} + + '@utrecht/html-content-css@1.3.0': {} + '@utrecht/icon@1.3.0': {} + '@utrecht/link-css@1.1.0': {} + '@utrecht/link-css@1.5.0': {} '@utrecht/link-react@1.0.4(@babel/runtime@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': @@ -10467,6 +10661,22 @@ snapshots: '@utrecht/logo-css@1.4.0': {} + '@utrecht/nav-bar-css@1.4.0': {} + + '@utrecht/number-badge-css@2.3.0': {} + + '@utrecht/ordered-list-css@1.4.0': {} + + '@utrecht/page-body-css@0.1.0': {} + + '@utrecht/page-footer-css@2.1.0': {} + + '@utrecht/page-header-css@1.5.0': {} + + '@utrecht/page-layout-css@1.1.0': {} + + '@utrecht/paragraph-css@1.1.0': {} + '@utrecht/paragraph-css@2.2.0': {} '@utrecht/radio-button-css@1.5.1': {} @@ -10478,10 +10688,20 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@utrecht/root-css@1.1.0': {} + + '@utrecht/separator-css@1.4.0': {} + + '@utrecht/table-css@1.1.0': {} + '@utrecht/table-css@1.4.0': {} + '@utrecht/textarea-css@1.1.0': {} + '@utrecht/textarea-css@2.2.0': {} + '@utrecht/textbox-css@1.1.0': {} + '@utrecht/textbox-css@1.5.0': {} '@utrecht/textbox-react@1.0.4(@babel/runtime@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': @@ -10491,6 +10711,8 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@utrecht/unordered-list-css@1.4.0': {} + '@vitejs/plugin-react@4.3.4(vite@6.0.6(@types/node@22.10.2)(sass@1.83.0)(terser@5.36.0)(yaml@2.6.1))': dependencies: '@babel/core': 7.26.0 diff --git a/wicket/components-wicket/package.json b/wicket/components-wicket/package.json index 4a7f6d9e..37496e7e 100644 --- a/wicket/components-wicket/package.json +++ b/wicket/components-wicket/package.json @@ -19,13 +19,42 @@ }, "scripts": {}, "devDependencies": { - "@nl-design-system-unstable/voorbeeld-design-tokens": "3.3.4", "@nl-design-system-candidate/paragraph-css": "2.0.0", + "@nl-design-system-unstable/voorbeeld-design-tokens": "3.3.4", + "@utrecht/alert-css": "2.2.0", + "@utrecht/badge-list-css": "2.2.0", + "@utrecht/body-css": "1.1.0", + "@utrecht/button-css": "1.1.0", + "@utrecht/button-group-css": "1.4.0", + "@utrecht/column-layout-css": "1.5.0", + "@utrecht/custom-checkbox-css": "1.1.1", + "@utrecht/form-field-css": "1.5.0", + "@utrecht/form-field-description-css": "1.5.0", + "@utrecht/form-field-error-message-css": "1.5.0", "@utrecht/heading-1-css": "1.4.0", "@utrecht/heading-2-css": "1.4.0", "@utrecht/heading-3-css": "1.4.0", "@utrecht/heading-4-css": "1.4.0", "@utrecht/heading-5-css": "1.4.0", - "@utrecht/heading-6-css": "1.4.0" + "@utrecht/heading-6-css": "1.4.0", + "@utrecht/heading-group-css": "1.4.0", + "@utrecht/html-content-css": "1.3.0", + "@utrecht/icon": "1.3.0", + "@utrecht/link-css": "1.1.0", + "@utrecht/logo-css": "1.4.0", + "@utrecht/nav-bar-css": "1.4.0", + "@utrecht/number-badge-css": "2.3.0", + "@utrecht/ordered-list-css": "1.4.0", + "@utrecht/page-body-css": "0.1.0", + "@utrecht/page-footer-css": "2.1.0", + "@utrecht/page-header-css": "1.5.0", + "@utrecht/page-layout-css": "1.1.0", + "@utrecht/paragraph-css": "1.1.0", + "@utrecht/root-css": "1.1.0", + "@utrecht/separator-css": "1.4.0", + "@utrecht/table-css": "1.1.0", + "@utrecht/textarea-css": "1.1.0", + "@utrecht/textbox-css": "1.1.0", + "@utrecht/unordered-list-css": "1.4.0" } } diff --git a/wicket/components-wicket/pom.xml b/wicket/components-wicket/pom.xml index cbe8d3d8..9d7c9a0e 100644 --- a/wicket/components-wicket/pom.xml +++ b/wicket/components-wicket/pom.xml @@ -84,14 +84,9 @@ false node_modules/ - @utrecht/heading-1-css/dist/*.css - @utrecht/heading-2-css/dist/*.css - @utrecht/heading-3-css/dist/*.css - @utrecht/heading-4-css/dist/*.css - @utrecht/heading-5-css/dist/*.css - @utrecht/heading-6-css/dist/*.css @nl-design-system-unstable/voorbeeld-design-tokens/dist/theme.css @nl-design-system-candidate/paragraph-css/dist/paragraph.css + @utrecht/*-css/dist/*.css css diff --git a/wicket/components-wicket/src/main/java/css/HTMLUtil.java b/wicket/components-wicket/src/main/java/css/HTMLUtil.java new file mode 100644 index 00000000..8a928e1b --- /dev/null +++ b/wicket/components-wicket/src/main/java/css/HTMLUtil.java @@ -0,0 +1,22 @@ +package css; + +import java.util.Arrays; +import java.util.stream.Collectors; + +public class HTMLUtil { + + public static String className(String... classes) { + return joinTokens(classes); + } + + public static String idRefs(String... classes) { + return joinTokens(classes); + } + + public static String joinTokens(String... classes) { + return Arrays.asList(classes) + .stream() + .filter(className -> className != null && !className.trim().isEmpty()) + .collect(Collectors.joining(" ")); + } +} diff --git a/wicket/components-wicket/src/main/java/css/WicketComponentsCssReferences.java b/wicket/components-wicket/src/main/java/css/WicketComponentsCssReferences.java index f0a549cc..0e898096 100644 --- a/wicket/components-wicket/src/main/java/css/WicketComponentsCssReferences.java +++ b/wicket/components-wicket/src/main/java/css/WicketComponentsCssReferences.java @@ -6,7 +6,6 @@ public class WicketComponentsCssReferences { - public static final HeaderItem UTRECHT_HEADING_1_HEADER_ITEM = makeUtrechtHeadingCss(1); public static final HeaderItem UTRECHT_HEADING_2_HEADER_ITEM = makeUtrechtHeadingCss(2); public static final HeaderItem UTRECHT_HEADING_3_HEADER_ITEM = makeUtrechtHeadingCss(3); @@ -19,7 +18,76 @@ public class WicketComponentsCssReferences { * *

Check the manual for details

*/ - public static final HeaderItem THEME_VOORBEELD_GEMEENTE_CSS_HEADER_ITEM = makeHeaderItemForCss("@nl-design-system-unstable/voorbeeld-design-tokens/dist/theme.css"); + public static final HeaderItem THEME_VOORBEELD_GEMEENTE_CSS_HEADER_ITEM = makeHeaderItemForCss( + "@nl-design-system-unstable/voorbeeld-design-tokens/dist/theme.css" + ); + public static final HeaderItem THEME_CSS_HEADER_ITEM = makeHeaderItemForCss("theme.css"); + public static final HeaderItem ROOT_HEADER_ITEM = makeHeaderItemForCss("@utrecht/root-css/dist/index.css"); + public static final HeaderItem BODY_HEADER_ITEM = makeHeaderItemForCss("@utrecht/body-css/dist/index.css"); + public static final HeaderItem CHECKBOX_HEADER_ITEM = makeHeaderItemForCss("@utrecht/checkbox-css/dist/index.css"); + public static final HeaderItem CUSTOM_CHECKBOX_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/custom-checkbox-css/dist/index.css" + ); + public static final HeaderItem FORM_FIELD_ERROR_MESSAGE_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/form-field-error-message-css/dist/index.css" + ); + public static final HeaderItem FORM_FIELD_DESCRIPTION_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/form-description-css/dist/index.css" + ); + public static final HeaderItem FORM_FIELD_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/form-field-css/dist/index.css" + ); + public static final HeaderItem FORM_LABEL_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/form-label-css/dist/index.css" + ); + public static final HeaderItem PAGE_HEADER_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/page-header-css/dist/index.css" + ); + public static final HeaderItem PAGE_BODY_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/page-body-css/dist/index.css" + ); + public static final HeaderItem PAGE_FOOTER_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/page-footer-css/dist/index.css" + ); + public static final HeaderItem PAGE_LAYOUT_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/page-layout-css/dist/index.css" + ); + public static final HeaderItem HTML_CONTENT_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/html-content-css/dist/index.css" + ); + public static final HeaderItem NUMBER_BADGE_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/number-badge-css/dist/index.css" + ); + public static final HeaderItem SEPARATOR_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/separator-css/dist/index.css" + ); + public static final HeaderItem BUTTON_GROUP_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/button-group-css/dist/index.css" + ); + public static final HeaderItem ORDERED_LIST_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/ordered-list-css/dist/index.css" + ); + public static final HeaderItem UNORDERED_LIST_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/unordered-list-css/dist/index.css" + ); + public static final HeaderItem ALERT_HEADER_ITEM = makeHeaderItemForCss("@utrecht/alert-css/dist/index.css"); + + public static final HeaderItem BADGE_LIST_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/badge-list-css/dist/index.css" + ); + public static final HeaderItem COLUMN_LAYOUT_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/column-layout-css/dist/index.css" + ); + public static final HeaderItem HEADING_GROUP_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/heading-group-css/dist/index.css" + ); + public static final HeaderItem LOGO_HEADER_ITEM = makeHeaderItemForCss("@utrecht/logo-css/dist/index.css"); + public static final HeaderItem ICON_HEADER_ITEM = makeHeaderItemForCss("@utrecht/icon/dist/index.css"); + + // TODO: support dependencies, and know which dependencies are there + private static CssResourceReference makeReference(String file) { + return new CssResourceReference(WicketComponentsCssReferences.class, file); + } private static HeaderItem makeUtrechtHeadingCss(int level) { return makeHeaderItemForCss("@utrecht/heading-" + level + "-css/dist/index.css"); @@ -28,9 +96,4 @@ private static HeaderItem makeUtrechtHeadingCss(int level) { private static HeaderItem makeHeaderItemForCss(String cssName) { return CssHeaderItem.forReference(makeReference(cssName)); } - - private static CssResourceReference makeReference(String file) { - return new CssResourceReference(WicketComponentsCssReferences.class, file); - } - } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.html new file mode 100644 index 00000000..fd0eb98f --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.html @@ -0,0 +1,7 @@ + +
+
+ +
+
+
diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.java new file mode 100644 index 00000000..d5f5bb3e --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.java @@ -0,0 +1,19 @@ +package nl.rotterdam.design_system.wicket.components.alert.utrecht; + +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.IModel; + +public class UtrechtAlert extends Panel { + + public static final String SLOT_ID = "slot"; + private final Label label; + + public UtrechtAlert(String id, IModel textContent) { + super(id); + label = new Label(SLOT_ID, textContent); + + add(new UtrechtAlertBehavior()); + add(label); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java new file mode 100644 index 00000000..39223bc3 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java @@ -0,0 +1,42 @@ +package nl.rotterdam.design_system.wicket.components.alert.utrecht; + +import static css.WicketComponentsCssReferences.ALERT_HEADER_ITEM; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.head.HeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; + +public class UtrechtAlertBehavior extends Behavior { + + private final String expectedTagName; + private final String className; + private final HeaderItem cssHeaderItem; + + public UtrechtAlertBehavior() { + this.expectedTagName = "div"; + this.className = "utrecht-alert--warning"; + this.cssHeaderItem = ALERT_HEADER_ITEM; + } + + @Override + public void onComponentTag(Component component, ComponentTag tag) { + super.onComponentTag(component, tag); + + if (!expectedTagName.equals(tag.getName())) { + tag.setName(expectedTagName); + } + tag.put("data-x", "omg"); + + if (!tag.isClose()) { + tag.append("class", className, " "); + } + } + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + response.render(cssHeaderItem); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.html new file mode 100644 index 00000000..098eadfe --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.html @@ -0,0 +1,9 @@ + + + + +
+ +
+
+ diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.java new file mode 100644 index 00000000..6d36a85f --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.badge_list.utrecht; + +import org.apache.wicket.markup.html.border.Border; + +public class UtrechtBadgeListBorder extends Border { + + public UtrechtBadgeListBorder(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.html new file mode 100644 index 00000000..608c94c4 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.html @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.java new file mode 100644 index 00000000..a3ecb8df --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.body.utrecht; + +import org.apache.wicket.markup.html.border.Border; + +public class UtrechtBodyBorder extends Border { + + public UtrechtBodyBorder(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.html new file mode 100644 index 00000000..80c5d9c4 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.html @@ -0,0 +1,9 @@ + + + + +
+ +
+
+ diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.java new file mode 100644 index 00000000..67cfb753 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.button_group.utrecht; + +import org.apache.wicket.markup.html.border.Border; + +public class UtrechtButtonGroupBorder extends Border { + + public UtrechtButtonGroupBorder(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.html new file mode 100644 index 00000000..d9ae7b55 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.html @@ -0,0 +1,9 @@ + + + + +
+ +
+
+ diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.java new file mode 100644 index 00000000..134ccd39 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.column_layout.utrecht; + +import org.apache.wicket.markup.html.border.Border; + +public class UtrechtColumnLayoutBorder extends Border { + + public UtrechtColumnLayoutBorder(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.html new file mode 100644 index 00000000..f0a49a95 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.html @@ -0,0 +1,11 @@ + +
+
+ + + +
+
+
+
+
diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java new file mode 100644 index 00000000..915f05cb --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java @@ -0,0 +1,190 @@ +package nl.rotterdam.design_system.wicket.components.form_field_checkbox.utrecht; + +import css.HTMLUtil; +import java.util.UUID; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.form.CheckBox; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; + +public class UtrechtFormFieldCheckbox extends Panel { + + private static final long serialVersionUID = 1L; + + private final CheckBox checkbox; + private final Label description; + private final IModel errorMessageModel; + private final Label errorMessage; + private final String checkboxId; + private final String fieldId; + private final String descriptionId; + private final String errorMessageId; + + public static final String FORM_FIELD_CLASSNAME = "utrecht-form-field"; + public static final String FORM_FIELD_CHECKBOX_CLASSNAME = "utrecht-form-field--checkbox"; + public static final String FORM_FIELD_INVALID_CLASSNAME = "utrecht-form-field--invalid"; + public static final String FORM_LABEL_CLASSNAME = "utrecht-form-label utrecht-form-label--checkbox"; + public static final String FORM_LABEL_DISABLED_CLASSNAME = "utrecht-form-label--disabled"; + public static final String CHECKBOX_CLASSNAME = + "utrecht-checkbox utrecht-checkbox--html-input utrecht-checkbox--custom"; + public static final String CHECKBOX_DISABLED_CLASSNAME = "utrecht-checkbox--disabled"; + public static final String INVALID_CLASSNAME = "utrecht-checkbox--invalid"; + public static final String FORM_FIELD_INPUT_CLASSNAME = "utrecht-form-field__input"; + + public UtrechtFormFieldCheckbox(String id, IModel model, String labelText) { + this(id, model, Model.of(labelText), null, null); + } + + public UtrechtFormFieldCheckbox( + String id, + IModel model, + IModel labelModel, + IModel descriptionModel, + IModel errorModel + ) { + super(id); + errorMessageModel = errorModel; + + // Generate unique IDs `for` and `aria-describedby` ID references + fieldId = UUID.randomUUID().toString(); + checkboxId = UUID.randomUUID().toString(); + descriptionId = UUID.randomUUID().toString(); + errorMessageId = UUID.randomUUID().toString(); + + // TODO: Implement disabled state + Boolean disabled = false; + + // TODO: Implement indeterminate state, when someone needs it. + + // Create the checkbox input + checkbox = new CheckBox("checkbox", model) { + @Override + protected void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + checkbox.setMarkupId(checkboxId); + + tag.put( + "class", + HTMLUtil.className( + UtrechtFormFieldCheckbox.CHECKBOX_CLASSNAME, + UtrechtFormFieldCheckbox.FORM_FIELD_INPUT_CLASSNAME, + disabled ? UtrechtFormFieldCheckbox.CHECKBOX_DISABLED_CLASSNAME : null, + isInvalid() ? UtrechtFormFieldCheckbox.INVALID_CLASSNAME : null + ) + ); + + String ariaDescribedBy = HTMLUtil.idRefs( + descriptionModel != null && descriptionModel.getObject() != null ? descriptionId : null, + isInvalid() ? errorMessageId : null + ); + + // Do not render an empty `aria-describedby` attribute. + if (!ariaDescribedBy.isEmpty()) { + tag.put("aria-describedby", ariaDescribedBy); + } + + if (isRequired()) { + tag.put("aria-required", "true"); + } + if (isInvalid()) { + tag.put("aria-invalid", "true"); + } + } + + protected void onDisabled(final ComponentTag tag) { + tag.put("disabled", "disabled"); + // TODO: Add `CHECKBOX_DISABLED_CLASSNAME` class name + } + }; + + // Create the label + Label label = new Label("label", labelModel) { + @Override + protected void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + tag.put("for", checkboxId); + tag.put( + "class", + HTMLUtil.className( + UtrechtFormFieldCheckbox.FORM_LABEL_CLASSNAME, + disabled ? UtrechtFormFieldCheckbox.FORM_LABEL_DISABLED_CLASSNAME : null + ) + ); + } + }; + + Label labelText = new Label("labelText", labelModel) { + @Override + protected void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + } + }; + + // Create description and error message + description = new Label("description", descriptionModel) { + @Override + protected void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + tag.put("id", descriptionId); + } + + @Override + public boolean isVisible() { + return getDefaultModelObject() != null; + } + }; + + errorMessage = new Label("error", errorModel) { + @Override + protected void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + tag.put("id", errorMessageId); + } + + @Override + public boolean isVisible() { + return getDefaultModelObject() != null; + } + }; + + // Add all components + add(checkbox); + add(label); + add(labelText); + add(description); + add(errorMessage); + } + + protected boolean isInvalid() { + return errorMessageModel != null && errorMessageModel.getObject() != null; + } + + protected boolean isRequired() { + return checkbox.isRequired(); + } + + @Override + protected void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + tag.put("id", fieldId); + tag.put( + "class", + HTMLUtil.className( + UtrechtFormFieldCheckbox.FORM_FIELD_CLASSNAME, + UtrechtFormFieldCheckbox.FORM_FIELD_CHECKBOX_CLASSNAME, + isInvalid() ? UtrechtFormFieldCheckbox.FORM_FIELD_INVALID_CLASSNAME : null + ) + ); + } + + public UtrechtFormFieldCheckbox setRequired(boolean required) { + checkbox.setRequired(required); + return this; + } + + public CheckBox getCheckbox() { + return checkbox; + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.html new file mode 100644 index 00000000..231def4e --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.html @@ -0,0 +1,3 @@ + + + diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java new file mode 100644 index 00000000..b82b8ca8 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java @@ -0,0 +1,17 @@ +package nl.rotterdam.design_system.wicket.components.form_label.utrecht; + +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.IModel; + +public class UtrechtFormLabel extends Panel { + + public static final String SLOT_ID = "slot"; + private final Label label; + + public UtrechtFormLabel(String id, IModel textContent) { + super(id); + label = new Label(SLOT_ID, textContent); + add(label); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeading.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeading.java index 050e287c..c385c80f 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeading.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeading.java @@ -1,11 +1,10 @@ package nl.rotterdam.design_system.wicket.components.heading.utrecht; +import java.io.Serializable; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; -import java.io.Serializable; - public class UtrechtHeading extends Label { public UtrechtHeading(String id, int level) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeadingBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeadingBehavior.java index 52ddbfbf..cb0927a5 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeadingBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeadingBehavior.java @@ -1,15 +1,14 @@ package nl.rotterdam.design_system.wicket.components.heading.utrecht; +import static css.WicketComponentsCssReferences.*; + +import java.util.Map; import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.head.HeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import java.util.Map; - -import static css.WicketComponentsCssReferences.*; - public class UtrechtHeadingBehavior extends Behavior { public static Behavior heading(int level) { @@ -22,14 +21,19 @@ public static Behavior heading(int level) { return behavior; } - private static final Map behaviors - = Map.of( - 1, new UtrechtHeadingBehavior(1, UTRECHT_HEADING_1_HEADER_ITEM), - 2, new UtrechtHeadingBehavior(2, UTRECHT_HEADING_2_HEADER_ITEM), - 3, new UtrechtHeadingBehavior(3, UTRECHT_HEADING_3_HEADER_ITEM), - 4, new UtrechtHeadingBehavior(4, UTRECHT_HEADING_4_HEADER_ITEM), - 5, new UtrechtHeadingBehavior(5, UTRECHT_HEADING_5_HEADER_ITEM), - 6, new UtrechtHeadingBehavior(6, UTRECHT_HEADING_6_HEADER_ITEM) + private static final Map behaviors = Map.of( + 1, + new UtrechtHeadingBehavior(1, UTRECHT_HEADING_1_HEADER_ITEM), + 2, + new UtrechtHeadingBehavior(2, UTRECHT_HEADING_2_HEADER_ITEM), + 3, + new UtrechtHeadingBehavior(3, UTRECHT_HEADING_3_HEADER_ITEM), + 4, + new UtrechtHeadingBehavior(4, UTRECHT_HEADING_4_HEADER_ITEM), + 5, + new UtrechtHeadingBehavior(5, UTRECHT_HEADING_5_HEADER_ITEM), + 6, + new UtrechtHeadingBehavior(6, UTRECHT_HEADING_6_HEADER_ITEM) ); private final String expectedTagName; diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.html new file mode 100644 index 00000000..51a2cbd0 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.html @@ -0,0 +1,9 @@ + + + + +
+ +
+
+ diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.java new file mode 100644 index 00000000..fd7c8633 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.heading_group.utrecht; + +import org.apache.wicket.markup.html.border.Border; + +public class UtrechtHeadingGroupBorder extends Border { + + public UtrechtHeadingGroupBorder(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.html new file mode 100644 index 00000000..faa97bb0 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.html @@ -0,0 +1,11 @@ + + + + + +
+ +
+
+ + diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.java new file mode 100644 index 00000000..cbd430cf --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.html_content.utrecht; + +import org.apache.wicket.markup.html.border.Border; + +public class UtrechtHtmlContentBorder extends Border { + + public UtrechtHtmlContentBorder(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.html new file mode 100644 index 00000000..2a0823d0 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.html @@ -0,0 +1,5 @@ + + + + + diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.java new file mode 100644 index 00000000..8c91d954 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.icon.utrecht; + +import org.apache.wicket.markup.html.border.Border; + +public class UtrechtIconBorder extends Border { + + public UtrechtIconBorder(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.html new file mode 100644 index 00000000..d45b3143 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.html @@ -0,0 +1,5 @@ + + + diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.java new file mode 100644 index 00000000..637dd364 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.logo.utrecht; + +import org.apache.wicket.markup.html.border.Border; + +public class UtrechtLogoBorder extends Border { + + public UtrechtLogoBorder(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo_image/rotterdam/RotterdamLogoImage.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo_image/rotterdam/RotterdamLogoImage.html new file mode 100644 index 00000000..b33b8d00 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo_image/rotterdam/RotterdamLogoImage.html @@ -0,0 +1,10 @@ + + + + + diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo_image/rotterdam/RotterdamLogoImage.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo_image/rotterdam/RotterdamLogoImage.java new file mode 100644 index 00000000..e78c0db2 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo_image/rotterdam/RotterdamLogoImage.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.logo_image.rotterdam; + +import org.apache.wicket.markup.html.panel.Panel; + +public class RotterdamLogoImage extends Panel { + + public RotterdamLogoImage(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadge.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadge.java new file mode 100644 index 00000000..64542fa1 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadge.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.number_badge.utrecht; + +import java.io.Serializable; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; + +public class UtrechtNumberBadge extends Label { + + public UtrechtNumberBadge(String id) { + this(id, Model.of((String) null)); + } + + public UtrechtNumberBadge(String id, Serializable label) { + this(id, Model.of(label)); + } + + public UtrechtNumberBadge(String id, IModel model) { + super(id, model); + add(new UtrechtNumberBadgeBehavior()); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadgeBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadgeBehavior.java new file mode 100644 index 00000000..ab99c503 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadgeBehavior.java @@ -0,0 +1,41 @@ +package nl.rotterdam.design_system.wicket.components.number_badge.utrecht; + +import static css.WicketComponentsCssReferences.NUMBER_BADGE_HEADER_ITEM; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.head.HeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; + +public class UtrechtNumberBadgeBehavior extends Behavior { + + private final String expectedTagName; + private final String className; + private final HeaderItem cssHeaderItem; + + public UtrechtNumberBadgeBehavior() { + this.expectedTagName = "data"; + this.className = "utrecht-number-badge"; + this.cssHeaderItem = NUMBER_BADGE_HEADER_ITEM; + } + + @Override + public void onComponentTag(Component component, ComponentTag tag) { + super.onComponentTag(component, tag); + + if (!expectedTagName.equals(tag.getName())) { + tag.setName(expectedTagName); + } + + if (!tag.isClose()) { + tag.append("class", className, " "); + } + } + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + response.render(cssHeaderItem); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedList.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedList.html new file mode 100644 index 00000000..0d825885 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedList.html @@ -0,0 +1,3 @@ + +
    +
    diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedList.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedList.java new file mode 100644 index 00000000..337ada63 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedList.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.ordered_list.utrecht; + +import org.apache.wicket.markup.html.panel.Panel; + +public class UtrechtOrderedList extends Panel { + + public UtrechtOrderedList(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListBehavior.java new file mode 100644 index 00000000..be2f2e0a --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListBehavior.java @@ -0,0 +1,42 @@ +package nl.rotterdam.design_system.wicket.components.ordered_list.utrecht; + +import static css.WicketComponentsCssReferences.ORDERED_LIST_HEADER_ITEM; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.head.HeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; + +public class UtrechtOrderedListBehavior extends Behavior { + + private final String expectedTagName; + private final String className; + private final HeaderItem cssHeaderItem; + + public UtrechtOrderedListBehavior() { + this.expectedTagName = "ol"; + this.className = "utrecht-ordered-list"; + this.cssHeaderItem = ORDERED_LIST_HEADER_ITEM; + } + + @Override + public void onComponentTag(Component component, ComponentTag tag) { + super.onComponentTag(component, tag); + + if (!expectedTagName.equals(tag.getName())) { + tag.setName(expectedTagName); + } + + if (!tag.isClose()) { + tag.put("role", "list"); + tag.append("class", className, " "); + } + } + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + response.render(cssHeaderItem); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListItem.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListItem.java new file mode 100644 index 00000000..2bb26311 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListItem.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.ordered_list.utrecht; + +import java.io.Serializable; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; + +public class UtrechtOrderedListItem extends Label { + + public UtrechtOrderedListItem(String id) { + this(id, Model.of((String) null)); + } + + public UtrechtOrderedListItem(String id, Serializable label) { + this(id, Model.of(label)); + } + + public UtrechtOrderedListItem(String id, IModel model) { + super(id, model); + add(new UtrechtOrderedListBehavior()); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListItemBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListItemBehavior.java new file mode 100644 index 00000000..c8effb5a --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListItemBehavior.java @@ -0,0 +1,35 @@ +package nl.rotterdam.design_system.wicket.components.ordered_list.utrecht; + +import static css.WicketComponentsCssReferences.ORDERED_LIST_HEADER_ITEM; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.head.HeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; + +public class UtrechtOrderedListItemBehavior extends Behavior { + + private final String expectedTagName; + private final String className; + private final HeaderItem cssHeaderItem; + + public UtrechtOrderedListItemBehavior() { + this.expectedTagName = "li"; + this.className = "utrecht-ordered-list__item utrecht-ordered-list__item"; + this.cssHeaderItem = ORDERED_LIST_HEADER_ITEM; + } + + @Override + public void onComponentTag(Component component, ComponentTag tag) { + super.onComponentTag(component, tag); + + if (!expectedTagName.equals(tag.getName())) { + tag.setName(expectedTagName); + } + + if (!tag.isClose()) { + tag.append("class", className, " "); + } + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBorder.html new file mode 100644 index 00000000..44f4d568 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBorder.html @@ -0,0 +1,13 @@ + + + + + +
    +
    + +
    +
    +
    + + diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBorder.java new file mode 100644 index 00000000..e953c139 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBorder.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.page_body.utrecht; + +import org.apache.wicket.markup.html.border.Border; + +public class UtrechtPageBodyBorder extends Border { + + public UtrechtPageBodyBorder(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.html new file mode 100644 index 00000000..4f3cfd89 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.html @@ -0,0 +1,13 @@ + + + + + +
    + +
    +
    + + diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.java new file mode 100644 index 00000000..b540b50c --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.page_footer.utrecht; + +import org.apache.wicket.markup.html.border.Border; + +public class UtrechtPageFooterBorder extends Border { + + public UtrechtPageFooterBorder(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.html new file mode 100644 index 00000000..9986d4ec --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.html @@ -0,0 +1,13 @@ + + + + + +
    +
    + +
    +
    +
    + + diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.java new file mode 100644 index 00000000..9e792267 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.page_header.utrecht; + +import org.apache.wicket.markup.html.border.Border; + +public class UtrechtPageHeaderBorder extends Border { + + public UtrechtPageHeaderBorder(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.html new file mode 100644 index 00000000..334622e0 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.html @@ -0,0 +1,3 @@ + +
    +
    diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.java new file mode 100644 index 00000000..a9fd7cbd --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.java @@ -0,0 +1,12 @@ +package nl.rotterdam.design_system.wicket.components.page_layout.utrecht; + +import org.apache.wicket.markup.html.panel.Panel; + +public class UtrechtPageLayout extends Panel { + + public static final String SLOT_ID = "pageLayoutSlot"; + + public UtrechtPageLayout(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java-disabled b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java-disabled new file mode 100644 index 00000000..c0bacb96 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java-disabled @@ -0,0 +1,36 @@ +package nl.rotterdam.design_system.wicket.components.page_layout.utrecht; + +import static css.WicketComponentsCssReferences.UTRECHT_PAGE_LAYOUT_HEADER_ITEM; + +import java.util.Map; +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.head.HeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; + +public class UtrechtPageLayoutBehavior extends Behavior { + + private final String className; + private final HeaderItem cssHeaderItem = UTRECHT_PAGE_LAYOUT_HEADER_ITEM; + + private UtrechtPageLayoutBehavior(HeaderItem cssHeaderItem) { + this.className = "utrecht-page-layout"; + this.cssHeaderItem = cssHeaderItem; + } + + @Override + public void onComponentTag(Component component, ComponentTag tag) { + super.onComponentTag(component, tag); + + if (!tag.isClose()) { + tag.append("class", className, " "); + } + } + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + response.render(cssHeaderItem); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.html new file mode 100644 index 00000000..bcc553b6 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.html @@ -0,0 +1,11 @@ + + + + + +
    + +
    +
    + + diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.java new file mode 100644 index 00000000..920881d6 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.page_layout.utrecht; + +import org.apache.wicket.markup.html.border.Border; + +public class UtrechtPageLayoutBorder extends Border { + + public UtrechtPageLayoutBorder(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.html new file mode 100644 index 00000000..6188378e --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.html @@ -0,0 +1,5 @@ + + + + + diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.java new file mode 100644 index 00000000..fcb13b7f --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.root.utrecht; + +import org.apache.wicket.markup.html.border.Border; + +public class UtrechtRootBorder extends Border { + + public UtrechtRootBorder(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.html new file mode 100644 index 00000000..7932ab4b --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.html @@ -0,0 +1,3 @@ + +
    +
    diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.java new file mode 100644 index 00000000..41d16578 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.separator.utrecht; + +import org.apache.wicket.markup.html.panel.Panel; + +public class UtrechtSeparator extends Panel { + + public UtrechtSeparator(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.html new file mode 100644 index 00000000..b4dd6a13 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.html @@ -0,0 +1,3 @@ + +
      +
      diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.java new file mode 100644 index 00000000..c6198d04 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.java @@ -0,0 +1,10 @@ +package nl.rotterdam.design_system.wicket.components.unordered_list.utrecht; + +import org.apache.wicket.markup.html.panel.Panel; + +public class UtrechtUnorderedList extends Panel { + + public UtrechtUnorderedList(String id) { + super(id); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListBehavior.java new file mode 100644 index 00000000..49ec537c --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListBehavior.java @@ -0,0 +1,42 @@ +package nl.rotterdam.design_system.wicket.components.unordered_list.utrecht; + +import static css.WicketComponentsCssReferences.UNORDERED_LIST_HEADER_ITEM; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.head.HeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; + +public class UtrechtUnorderedListBehavior extends Behavior { + + private final String expectedTagName; + private final String className; + private final HeaderItem cssHeaderItem; + + public UtrechtUnorderedListBehavior() { + this.expectedTagName = "ul"; + this.className = "utrecht-unordered-list"; + this.cssHeaderItem = UNORDERED_LIST_HEADER_ITEM; + } + + @Override + public void onComponentTag(Component component, ComponentTag tag) { + super.onComponentTag(component, tag); + + if (!expectedTagName.equals(tag.getName())) { + tag.setName(expectedTagName); + } + + if (!tag.isClose()) { + tag.put("role", "list"); + tag.append("class", className, " "); + } + } + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + response.render(cssHeaderItem); + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.html index 22d05551..aae5f842 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.html @@ -1,11 +1,11 @@ - - + + - + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java index b7e47aba..2cbe36c0 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java @@ -1,24 +1,46 @@ package nl.rotterdam.wicket.docs; +import static css.DesignTokensWicketCssReference.THEME_ROTTERDAM_RODS_CSS_HEADER_ITEM; +import static css.WicketComponentsCssReferences.ALERT_HEADER_ITEM; +import static css.WicketComponentsCssReferences.BADGE_LIST_HEADER_ITEM; +import static css.WicketComponentsCssReferences.BODY_HEADER_ITEM; +import static css.WicketComponentsCssReferences.BUTTON_GROUP_HEADER_ITEM; +import static css.WicketComponentsCssReferences.CHECKBOX_HEADER_ITEM; +import static css.WicketComponentsCssReferences.COLUMN_LAYOUT_HEADER_ITEM; +import static css.WicketComponentsCssReferences.CUSTOM_CHECKBOX_HEADER_ITEM; +import static css.WicketComponentsCssReferences.FORM_FIELD_DESCRIPTION_HEADER_ITEM; +import static css.WicketComponentsCssReferences.FORM_FIELD_ERROR_MESSAGE_HEADER_ITEM; +import static css.WicketComponentsCssReferences.FORM_FIELD_HEADER_ITEM; +import static css.WicketComponentsCssReferences.FORM_LABEL_HEADER_ITEM; +import static css.WicketComponentsCssReferences.HEADING_GROUP_HEADER_ITEM; +import static css.WicketComponentsCssReferences.HTML_CONTENT_HEADER_ITEM; +import static css.WicketComponentsCssReferences.ICON_HEADER_ITEM; +import static css.WicketComponentsCssReferences.LOGO_HEADER_ITEM; +import static css.WicketComponentsCssReferences.NUMBER_BADGE_HEADER_ITEM; +import static css.WicketComponentsCssReferences.ORDERED_LIST_HEADER_ITEM; +import static css.WicketComponentsCssReferences.PAGE_BODY_HEADER_ITEM; +import static css.WicketComponentsCssReferences.PAGE_FOOTER_HEADER_ITEM; +import static css.WicketComponentsCssReferences.PAGE_HEADER_HEADER_ITEM; +import static css.WicketComponentsCssReferences.PAGE_LAYOUT_HEADER_ITEM; +import static css.WicketComponentsCssReferences.ROOT_HEADER_ITEM; +import static css.WicketComponentsCssReferences.SEPARATOR_HEADER_ITEM; +import static css.WicketComponentsCssReferences.THEME_VOORBEELD_GEMEENTE_CSS_HEADER_ITEM; +import static css.WicketComponentsCssReferences.UNORDERED_LIST_HEADER_ITEM; + import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.request.resource.CssResourceReference; -import static css.DesignTokensWicketCssReference.THEME_ROTTERDAM_RODS_CSS_HEADER_ITEM; -import static css.WicketComponentsCssReferences.THEME_VOORBEELD_GEMEENTE_CSS_HEADER_ITEM; - public abstract class BasePage extends WebPage { public static final String TITLE_ID = "title"; - public static final CssReferenceHeaderItem DOCS_CSS_HEADER_ITEM = - CssHeaderItem.forReference( - new CssResourceReference(BasePage.class, "docs.css") - ); + public static final CssReferenceHeaderItem DOCS_CSS_HEADER_ITEM = CssHeaderItem.forReference( + new CssResourceReference(BasePage.class, "docs.css") + ); - public BasePage() { - } + public BasePage() {} @Override public void renderHead(IHeaderResponse response) { @@ -27,5 +49,29 @@ public void renderHead(IHeaderResponse response) { response.render(THEME_ROTTERDAM_RODS_CSS_HEADER_ITEM); response.render(THEME_VOORBEELD_GEMEENTE_CSS_HEADER_ITEM); response.render(DOCS_CSS_HEADER_ITEM); + response.render(ROOT_HEADER_ITEM); + response.render(BODY_HEADER_ITEM); + response.render(PAGE_BODY_HEADER_ITEM); + response.render(PAGE_HEADER_HEADER_ITEM); + response.render(PAGE_FOOTER_HEADER_ITEM); + response.render(PAGE_LAYOUT_HEADER_ITEM); + response.render(HTML_CONTENT_HEADER_ITEM); + response.render(FORM_LABEL_HEADER_ITEM); + response.render(NUMBER_BADGE_HEADER_ITEM); + response.render(BUTTON_GROUP_HEADER_ITEM); + response.render(ALERT_HEADER_ITEM); + response.render(BADGE_LIST_HEADER_ITEM); + response.render(SEPARATOR_HEADER_ITEM); + response.render(ORDERED_LIST_HEADER_ITEM); + response.render(UNORDERED_LIST_HEADER_ITEM); + response.render(ICON_HEADER_ITEM); + response.render(COLUMN_LAYOUT_HEADER_ITEM); + response.render(HEADING_GROUP_HEADER_ITEM); + response.render(LOGO_HEADER_ITEM); + response.render(FORM_FIELD_HEADER_ITEM); + response.render(FORM_FIELD_DESCRIPTION_HEADER_ITEM); + response.render(FORM_FIELD_ERROR_MESSAGE_HEADER_ITEM); + response.render(CHECKBOX_HEADER_ITEM); + response.render(CUSTOM_CHECKBOX_HEADER_ITEM); } } diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index ca67b72f..f219c16a 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -1,28 +1,96 @@ - - - - -
      + + + + + + + + + + +
      +
      + +
      -
      - -
      +

      Components

      +

      Code Block

      +
      -

      Components

      -

      Code Block

      -
      + + + - - - + + 42 + +

      Link to trigger Wicket stateful page refresh

      +
      +

      Hello world

      +

      + +

      +
      + + + + + Buttons go here + + + + + + + + + +

      + Nam quod exercitationem vero et. Sapiente alias occaecati voluptas est. Ullam sed quis hic est nisi. Et + saepe expedita est sunt sed vitae exercitationem et. +

      +

      Eos provident at quaerat sed. Et adipisci corporis iste. Praesentium ut aut sit dolores distinctio.

      +

      + Alias officiis et sint. Autem fuga praesentium omnis velit sit id sunt suscipit. Nihil vel minus cumque. + At mollitia inventore ut quia enim. Ut cupiditate explicabo porro ab vel vel. Velit nostrum doloribus + et. +

      +

      + Natus eos veniam voluptas. Ea modi est dolores doloribus delectus amet nemo. Ea vel nihil et eos et + perspiciatis iure commodi. Vel dolores exercitationem facilis quisquam. Voluptas modi quo consequatur + quos. +

      +

      + Aut consequuntur sed qui. Ea id molestiae similique sequi facere deserunt sunt fugiat. Molestiae beatae + consectetur perferendis. Qui earum velit sed vel non officiis odit. Deleniti nesciunt nemo ut delectus + nemo at sunt. Maiores numquam natus aut adipisci ipsum fuga aliquam consequatur. +

      +
      + +

      Heading in a heading group

      +

      Sub-heading

      +
      - -

      Link to trigger Wicket stateful page refresh

      -
      -
      - + + +
      + + Page footer + +
      + + >>>>>>> 7de5dcc (feat: add many new Wicket components) diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java index 58cbcf1a..13b72e91 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java @@ -1,8 +1,28 @@ package nl.rotterdam.wicket.docs; import css.DesignSystemTheme; +import java.util.Arrays; +import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlert; +import nl.rotterdam.design_system.wicket.components.button_group.utrecht.UtrechtButtonGroupBorder; import nl.rotterdam.design_system.wicket.components.code_block.utrecht.UtrechtCodeBlock; +import nl.rotterdam.design_system.wicket.components.column_layout.utrecht.UtrechtColumnLayoutBorder; +import nl.rotterdam.design_system.wicket.components.form_field_checkbox.utrecht.UtrechtFormFieldCheckbox; +import nl.rotterdam.design_system.wicket.components.heading_group.utrecht.UtrechtHeadingGroupBorder; +import nl.rotterdam.design_system.wicket.components.html_content.utrecht.UtrechtHtmlContentBorder; +import nl.rotterdam.design_system.wicket.components.icon.utrecht.UtrechtIconBorder; +import nl.rotterdam.design_system.wicket.components.logo.utrecht.UtrechtLogoBorder; +import nl.rotterdam.design_system.wicket.components.logo_image.rotterdam.RotterdamLogoImage; +import nl.rotterdam.design_system.wicket.components.number_badge.utrecht.UtrechtNumberBadge; +import nl.rotterdam.design_system.wicket.components.ordered_list.utrecht.UtrechtOrderedList; +import nl.rotterdam.design_system.wicket.components.page_body.utrecht.UtrechtPageBodyBorder; +import nl.rotterdam.design_system.wicket.components.page_footer.utrecht.UtrechtPageFooterBorder; +import nl.rotterdam.design_system.wicket.components.page_header.utrecht.UtrechtPageHeaderBorder; +import nl.rotterdam.design_system.wicket.components.page_layout.utrecht.UtrechtPageLayoutBorder; +import nl.rotterdam.design_system.wicket.components.separator.utrecht.UtrechtSeparator; +import nl.rotterdam.design_system.wicket.components.unordered_list.utrecht.UtrechtUnorderedList; +import nl.rotterdam.wicket.docs.form_label.FormLabelExamplesPanel; import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; +import nl.rotterdam.wicket.docs.page_layout.PageLayoutExamplesPanel; import org.apache.wicket.Component; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.JavaScriptHeaderItem; @@ -16,43 +36,148 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Arrays; - public class ComponentsPage extends BasePage { private static final Logger LOGGER = LoggerFactory.getLogger(ComponentsPage.class); - private static final JavaScriptReferenceHeaderItem COMPONENTS_JS_HEADER_ITEM = JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(ComponentsPage.class, "ComponentsPage.js")); + private static final JavaScriptReferenceHeaderItem COMPONENTS_JS_HEADER_ITEM = JavaScriptHeaderItem.forReference( + new JavaScriptResourceReference(ComponentsPage.class, "ComponentsPage.js") + ); private static Link createRefreshPgaeLink() { return new Link<>("refreshStatefulPageLink") { @Override public void onClick() { - LOGGER.info("Link was clicked. Page url now has state. Gives ability to inspect HTML in different state."); + LOGGER.info( + "Link was clicked. Page url now has state. Gives ability to inspect HTML in different state." + ); } }; } private static Component createActiveThemeChoice() { - return new DropDownChoice<>("activeTheme", + return new DropDownChoice<>( + "activeTheme", Model.of(DesignSystemTheme.RODS), Arrays.stream(DesignSystemTheme.values()).toList(), new LambdaChoiceRenderer<>(DesignSystemTheme::getDisplayName, DesignSystemTheme::getThemeClassName) - ) - .setOutputMarkupId(true); + ).setOutputMarkupId(true); } + private UtrechtPageLayoutBorder pageLayout; + private UtrechtPageHeaderBorder pageHeader; + private UtrechtPageBodyBorder pageBody; + private UtrechtPageFooterBorder pageFooter; + private UtrechtOrderedList orderedList; + private UtrechtUnorderedList unorderedList; + private UtrechtLogoBorder logo; + @Override protected void onInitialize() { super.onInitialize(); + pageLayout = new UtrechtPageLayoutBorder("utrechtPageLayout"); + add(pageLayout); + + pageHeader = new UtrechtPageHeaderBorder("utrechtPageHeader"); + pageLayout.add(pageHeader); + + logo = new UtrechtLogoBorder("utrechtLogo"); + pageHeader.add(logo); + + logo.add(new RotterdamLogoImage("rotterdamLogoImage")); + + pageBody = new UtrechtPageBodyBorder("utrechtPageBody"); + pageLayout.add(pageBody); + + pageFooter = new UtrechtPageFooterBorder("utrechtPageFooter"); + pageLayout.add(pageFooter); + + pageBody.add(new UtrechtCodeBlock("code-block-example", Model.of("Reload Page"))); + + pageBody.add(new HeadingExamplesPanel("headingComponents")); + // add(new HeadingPanel("labelComponents")); + pageBody.add(new FormLabelExamplesPanel("labelComponents")); + pageBody.add(new UtrechtHtmlContentBorder("utrechtHtmlContent")); + pageBody.add(new UtrechtNumberBadge("utrechtNumberBadge", Model.of("42"))); + pageBody.add( + new UtrechtAlert( + "utrechtAlertInfo", + Model.of( + "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." + ) + ) + ); + pageBody.add( + new UtrechtAlert( + "utrechtAlertWarning", + Model.of( + "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." + ) + ) + ); + pageBody.add( + new UtrechtAlert( + "utrechtAlertAlert", + Model.of( + "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." + ) + ) + ); + pageBody.add( + new UtrechtAlert( + "utrechtAlertOk", + Model.of( + "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." + ) + ) + ); + pageBody.add(new UtrechtSeparator("utrechtSeparator")); + pageBody.add(new UtrechtButtonGroupBorder("utrechtButtonGroup")); + orderedList = new UtrechtOrderedList("utrechtOrderedList"); + pageBody.add(orderedList); + + unorderedList = new UtrechtUnorderedList("utrechtUnorderedList"); + pageBody.add(unorderedList); + + pageBody.add(new UtrechtIconBorder("utrechtIcon")); + pageBody.add(new UtrechtColumnLayoutBorder("utrechtColumnLayout")); + pageBody.add(new UtrechtHeadingGroupBorder("utrechtHeadingGroup")); + pageBody.add( + new UtrechtFormFieldCheckbox( + "utrechtFormFieldCheckbox", + Model.of(false), + Model.of("I agree"), + Model.of("Description"), + Model.of("error") + ) + ); + // pageBody.add( + // new WebMarkupContainer("utrechtOrderedList2") { + // @Override + // protected void onInitialize() { + // super.onInitialize(); + // add(new UtrechtOrderedListBehavior()); + // } + // } + // ); + + // RepeatingView listItems = new RepeatingView("utrechtOrderedListItem"); + // listItems.add(new Label(listItems.newChildId(), "green")); + // listItems.add(new Label(listItems.newChildId(), "blue")); + // listItems.add(new Label(listItems.newChildId(), "red")); + + // pageLayout.add(new PageLayoutExamplesPanel("pageLayoutExamples")); + add( // TODO set title using model in BasePage - new Label(TITLE_ID, "ComponentsPage · Apache Wicket · Rotterdam Design System"), - - createActiveThemeChoice(), - new UtrechtCodeBlock("code-block-example", Model.of("Reload Page")), - new HeadingExamplesPanel("headingComponents"), - createRefreshPgaeLink() + new Label(TITLE_ID, "ComponentsPage · Apache Wicket · Rotterdam Design System") ); + + pageBody.add(createActiveThemeChoice()); + pageBody.add(createRefreshPgaeLink()); + // pageBody.add( + // new UtrechtCodeBlock("code-block-example", Model.of("Reload Page")), + // new HeadingExamplesPanel("headingComponents") + // ); } @Override @@ -60,4 +185,8 @@ public void renderHead(IHeaderResponse response) { super.renderHead(response); response.render(COMPONENTS_JS_HEADER_ITEM); } + + // private final UtrechtOrderedListItem orderedListItem; + + public ComponentsPage() {} } diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.html new file mode 100644 index 00000000..546a68a6 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.html @@ -0,0 +1,26 @@ + + + + +
      +

      Form Field Label component

      +

      Toont een tekstlabel dat informeert over de in te vullen informatie.

      + +
      +

      Form Label

      +
      +
        +
      • Plaats het label voor het invoerveld, behalve voor checkbox options en radio options.
      • +
      • Plaats de checkbox of radio button in de form label.
      • +
      • Koppel de label met de form control met "for" en "id".
      • +
      +
      +
      + + +
      +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.java new file mode 100644 index 00000000..d980a5eb --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.java @@ -0,0 +1,26 @@ +package nl.rotterdam.wicket.docs.form_label; + +import nl.rotterdam.design_system.wicket.components.form_label.utrecht.UtrechtFormLabel; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.Model; + +public class FormLabelExamplesPanel extends Panel { + + public FormLabelExamplesPanel(String id) { + super(id); + } + + // private static Component example1() { + // return new UtrechtFormLabel("utrechtLabel1").setDefaultModel(Model.of("Voornaam")); + // return new UtrechtFormLabel("utrechtLabel1", Model.of("Voornaam")); + // } + + @Override + protected void onInitialize() { + super.onInitialize(); + + // add(example1()); + add(new UtrechtFormLabel("utrechtLabel1", Model.of("Voornaam"))); + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/PageFooter b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/PageFooter new file mode 100644 index 00000000..e69de29b diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/PageFooterExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/PageFooterExamplesPanel.html new file mode 100644 index 00000000..e69de29b diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/PageLayoutExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/PageLayoutExamplesPanel.java new file mode 100644 index 00000000..56606014 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/PageLayoutExamplesPanel.java @@ -0,0 +1,18 @@ +package nl.rotterdam.wicket.docs.page_layout; + +import nl.rotterdam.design_system.wicket.components.page_layout.utrecht.UtrechtPageLayout; +import org.apache.wicket.markup.html.panel.Panel; + +public class PageLayoutExamplesPanel extends Panel { + + public PageLayoutExamplesPanel(String id) { + super(id); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(new UtrechtPageLayout("utrechtPageLayout1")); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/Start.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/Start.java index 135ee65d..1f4269c1 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/Start.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/Start.java @@ -1,15 +1,14 @@ package nl.rotterdam.wicket.nl_design.docs; +import static nl.rotterdam.wicket.nl_design.docs.ModuleRootResolver.resolveModuleRootPath; + +import java.time.Duration; import org.eclipse.jetty.ee10.webapp.WebAppContext; import org.eclipse.jetty.server.HttpConfiguration; import org.eclipse.jetty.server.HttpConnectionFactory; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; -import java.time.Duration; - -import static nl.rotterdam.wicket.nl_design.docs.ModuleRootResolver.resolveModuleRootPath; - public class Start { public static final int PORT = 8945; @@ -21,10 +20,7 @@ public static void main(final String[] args) { final HttpConfiguration http_config = new HttpConfiguration(); - final ServerConnector connector = new ServerConnector( - server, - new HttpConnectionFactory(http_config) - ); + final ServerConnector connector = new ServerConnector(server, new HttpConnectionFactory(http_config)); connector.setPort(PORT); connector.setIdleTimeout(timeout); @@ -38,9 +34,7 @@ public static void main(final String[] args) { try { System.out.println( - ">>> STARTING EMBEDDED JETTY SERVER on http://localhost:" + - PORT + - " PRESS ANY KEY TO STOP" + ">>> STARTING EMBEDDED JETTY SERVER on http://localhost:" + PORT + " PRESS ANY KEY TO STOP" ); server.start(); System.in.read(); From ce2e725d0bc08b5d21d183829c5b1bc741464464 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 29 Nov 2024 12:41:23 +0100 Subject: [PATCH 02/75] refactor: convert Wicket Separator from Panel to WebComponent --- .../separator/utrecht/UtrechtSeparator.java | 21 +++++++++++++++++-- .../rotterdam/wicket/docs/ComponentsPage.html | 2 +- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.java index 41d16578..424cd496 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.java @@ -1,10 +1,27 @@ package nl.rotterdam.design_system.wicket.components.separator.utrecht; -import org.apache.wicket.markup.html.panel.Panel; +import static css.WicketComponentsCssReferences.SEPARATOR_HEADER_ITEM; -public class UtrechtSeparator extends Panel { +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.markup.html.WebComponent; + +public class UtrechtSeparator extends WebComponent { public UtrechtSeparator(String id) { super(id); } + + @Override + protected void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + tag.setName("hr"); + tag.put("class", "utrecht-separator"); + } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(SEPARATOR_HEADER_ITEM); + } } diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index f219c16a..4f4a7c92 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -43,7 +43,7 @@

      Hello world

      Buttons go here - +
      Date: Fri, 29 Nov 2024 12:41:47 +0100 Subject: [PATCH 03/75] feat: add 4 types to Wicket Alert component --- .../alert/utrecht/UtrechtAlert.html | 2 +- .../alert/utrecht/UtrechtAlert.java | 20 +++++++--- .../alert/utrecht/UtrechtAlertBehavior.java | 37 +++++++++++++++++-- .../alert/utrecht/UtrechtAlertType.java | 14 +++++++ .../rotterdam/wicket/docs/ComponentsPage.java | 13 +++++-- 5 files changed, 72 insertions(+), 14 deletions(-) create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertType.java diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.html index fd0eb98f..b22569a6 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.html +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.html @@ -1,5 +1,5 @@ -
      +
      diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.java index d5f5bb3e..4888c9e1 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.java @@ -1,5 +1,7 @@ package nl.rotterdam.design_system.wicket.components.alert.utrecht; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; @@ -7,13 +9,21 @@ public class UtrechtAlert extends Panel { public static final String SLOT_ID = "slot"; - private final Label label; - public UtrechtAlert(String id, IModel textContent) { + public UtrechtAlert(String id, IModel textContent, UtrechtAlertType type) { super(id); - label = new Label(SLOT_ID, textContent); + WebMarkupContainer container = new WebMarkupContainer("alert") { + @Override + public void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); - add(new UtrechtAlertBehavior()); - add(label); + if (!tag.isClose()) { + tag.append("class", "utrecht-alert--" + type.type, " "); + } + } + }; + add(container); + container.add(UtrechtAlertBehavior.utrechtAlert(type)); + container.add(new Label(SLOT_ID, textContent)); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java index 39223bc3..8d1fd098 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java @@ -2,6 +2,8 @@ import static css.WicketComponentsCssReferences.ALERT_HEADER_ITEM; +import css.HTMLUtil; +import java.util.Map; import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; @@ -10,14 +12,42 @@ public class UtrechtAlertBehavior extends Behavior { + public static Behavior utrechtAlert(UtrechtAlertType type) { + Behavior behavior = types.get(type); + + if (behavior == null) { + throw new IllegalArgumentException("No alert type: " + type); + } + + return behavior; + } + + public static final UtrechtAlertBehavior UTRECHT_ALERT_WARNING = new UtrechtAlertBehavior(UtrechtAlertType.WARNING); + public static final UtrechtAlertBehavior UTRECHT_ALERT_OK = new UtrechtAlertBehavior(UtrechtAlertType.OK); + public static final UtrechtAlertBehavior UTRECHT_ALERT_ERROR = new UtrechtAlertBehavior(UtrechtAlertType.ERROR); + public static final UtrechtAlertBehavior UTRECHT_ALERT_INFO = new UtrechtAlertBehavior(UtrechtAlertType.INFO); + + private static final Map types = Map.of( + UtrechtAlertType.WARNING, + UTRECHT_ALERT_WARNING, + UtrechtAlertType.INFO, + UTRECHT_ALERT_INFO, + UtrechtAlertType.ERROR, + UTRECHT_ALERT_ERROR, + UtrechtAlertType.OK, + UTRECHT_ALERT_OK + ); + private final String expectedTagName; private final String className; private final HeaderItem cssHeaderItem; + private final UtrechtAlertType type; - public UtrechtAlertBehavior() { + private UtrechtAlertBehavior(UtrechtAlertType type) { this.expectedTagName = "div"; - this.className = "utrecht-alert--warning"; + this.className = "utrecht-alert"; this.cssHeaderItem = ALERT_HEADER_ITEM; + this.type = type; } @Override @@ -27,10 +57,9 @@ public void onComponentTag(Component component, ComponentTag tag) { if (!expectedTagName.equals(tag.getName())) { tag.setName(expectedTagName); } - tag.put("data-x", "omg"); if (!tag.isClose()) { - tag.append("class", className, " "); + tag.put("class", HTMLUtil.className(this.className, "utrecht-alert--" + type.type)); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertType.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertType.java new file mode 100644 index 00000000..82be70fb --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertType.java @@ -0,0 +1,14 @@ +package nl.rotterdam.design_system.wicket.components.alert.utrecht; + +public enum UtrechtAlertType { + OK("ok"), + WARNING("warning"), + ERROR("error"), + INFO("info"); + + final String type; + + UtrechtAlertType(String type) { + this.type = type; + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java index 13b72e91..b119af0f 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java @@ -3,6 +3,7 @@ import css.DesignSystemTheme; import java.util.Arrays; import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlert; +import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlertType; import nl.rotterdam.design_system.wicket.components.button_group.utrecht.UtrechtButtonGroupBorder; import nl.rotterdam.design_system.wicket.components.code_block.utrecht.UtrechtCodeBlock; import nl.rotterdam.design_system.wicket.components.column_layout.utrecht.UtrechtColumnLayoutBorder; @@ -103,7 +104,8 @@ protected void onInitialize() { "utrechtAlertInfo", Model.of( "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." - ) + ), + UtrechtAlertType.INFO ) ); pageBody.add( @@ -111,7 +113,8 @@ protected void onInitialize() { "utrechtAlertWarning", Model.of( "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." - ) + ), + UtrechtAlertType.WARNING ) ); pageBody.add( @@ -119,7 +122,8 @@ protected void onInitialize() { "utrechtAlertAlert", Model.of( "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." - ) + ), + UtrechtAlertType.ERROR ) ); pageBody.add( @@ -127,7 +131,8 @@ protected void onInitialize() { "utrechtAlertOk", Model.of( "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." - ) + ), + UtrechtAlertType.OK ) ); pageBody.add(new UtrechtSeparator("utrechtSeparator")); From 13957ec35e719bef9a0897cbd955bd035f907f42 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 29 Nov 2024 12:43:04 +0100 Subject: [PATCH 04/75] chore: show errors in development server web page --- .../main/java/nl/rotterdam/wicket/docs/DocsApplication.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsApplication.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsApplication.java index 1e13a7c2..dba23686 100755 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsApplication.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsApplication.java @@ -16,10 +16,7 @@ public void init() { getMarkupSettings().setStripWicketTags(true); // Configure our own fance error page - getExceptionSettings() - .setUnexpectedExceptionDisplay( - ExceptionSettings.SHOW_INTERNAL_ERROR_PAGE - ); + getExceptionSettings().setUnexpectedExceptionDisplay(ExceptionSettings.SHOW_EXCEPTION_PAGE); /* * `CSPDirective` does not appear to support every option we want. From e87a8b45c0ce01d2d33b58c48110ffaee4ffba9c Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 29 Nov 2024 12:43:21 +0100 Subject: [PATCH 05/75] fix: correct CSP config for `blob:` URLs --- .../main/java/nl/rotterdam/wicket/docs/DocsApplication.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsApplication.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsApplication.java index dba23686..de59cab7 100755 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsApplication.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsApplication.java @@ -35,10 +35,10 @@ public void init() { .add(CSPDirective.BASE_URI, CSPDirectiveSrcValue.SELF) .add(CSPDirective.FRAME_ANCESTORS, CSPDirectiveSrcValue.NONE) .add(CSPDirective.CONNECT_SRC, CSPDirectiveSrcValue.SELF) -// .add(CSPDirective.CONNECT_SRC, "'blob'") + .add(CSPDirective.CONNECT_SRC, "blob:") .add(CSPDirective.CONNECT_SRC, "data:") .add(CSPDirective.IMG_SRC, CSPDirectiveSrcValue.SELF) -// .add(CSPDirective.IMG_SRC, "'blob'") + .add(CSPDirective.IMG_SRC, "blob:") .add(CSPDirective.IMG_SRC, "data:") .add(CSPDirective.FONT_SRC, CSPDirectiveSrcValue.SELF) .add(CSPDirective.STYLE_SRC, CSPDirectiveSrcValue.UNSAFE_INLINE) From fd9e62e6629674c3ec7e4b6f5bdd02d9fe0b8ea9 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 29 Nov 2024 13:32:36 +0100 Subject: [PATCH 06/75] refactor: inject CSS via resource reference --- pnpm-lock.yaml | 8 +++++++ wicket/components-wicket/package.json | 1 + .../css/WicketComponentsCssReferences.java | 6 +++++ .../utrecht/UtrechtBadgeListBorder.java | 9 ++++++++ .../body/utrecht/UtrechtBodyBorder.java | 9 ++++++++ .../utrecht/UtrechtButtonGroupBorder.java | 9 ++++++++ .../code_block/utrecht/UtrechtCodeBlock.java | 9 ++++++++ .../utrecht/UtrechtColumnLayoutBorder.java | 9 ++++++++ .../utrecht/UtrechtFormFieldCheckbox.java | 19 ++++++++++++++++ .../form_label/utrecht/UtrechtFormLabel.java | 9 ++++++++ .../utrecht/UtrechtHeadingGroupBorder.java | 9 ++++++++ .../utrecht/UtrechtHtmlContentBorder.java | 9 ++++++++ .../icon/utrecht/UtrechtIconBorder.java | 9 ++++++++ .../logo/utrecht/UtrechtLogoBorder.java | 9 ++++++++ .../utrecht/UtrechtPageFooterBorder.java | 9 ++++++++ .../utrecht/UtrechtPageHeaderBorder.java | 9 ++++++++ .../utrecht/UtrechtPageLayout.java | 9 ++++++++ .../utrecht/UtrechtPageLayoutBorder.java | 9 ++++++++ .../utrecht/UtrechtPreserveDataLabel.java | 9 ++++++++ .../root/utrecht/UtrechtRootBorder.java | 9 ++++++++ .../utrecht/UtrechtUnorderedList.java | 9 ++++++++ .../nl/rotterdam/wicket/docs/BasePage.java | 22 ------------------- 22 files changed, 187 insertions(+), 22 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2f37158..3990058c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -677,6 +677,9 @@ importers: '@utrecht/paragraph-css': specifier: 1.1.0 version: 1.1.0 + '@utrecht/preserve-data-css': + specifier: 1.3.0 + version: 1.3.0 '@utrecht/root-css': specifier: 1.1.0 version: 1.1.0 @@ -3051,6 +3054,9 @@ packages: '@utrecht/paragraph-css@2.2.0': resolution: {integrity: sha512-jgFsFdz7xcqO14IhYEFx37dh4n1GjCfJM9iQsvo/Yr4zrknQHpGBWQcXMb548W19/4yHMnQnsSnivQGDbPdSug==} + '@utrecht/preserve-data-css@1.3.0': + resolution: {integrity: sha512-Kg0NLsia0xbT+VxJx2BeEayKNUOq/n6WQOlrEVkt4d2ytdgXlrUIhq4w92pMjyUhykeHHCJWPSPVZUviEyF2Og==} + '@utrecht/radio-button-css@1.5.1': resolution: {integrity: sha512-pfY44q+TYZ3zVqFjhDfshkdfrBRWd8YcDOnVH10Oyw0xlZFVcJ1rciZZ0bGRwtncdFTbuOh1Ra3LRwUkOaQwkw==} @@ -10679,6 +10685,8 @@ snapshots: '@utrecht/paragraph-css@2.2.0': {} + '@utrecht/preserve-data-css@1.3.0': {} + '@utrecht/radio-button-css@1.5.1': {} '@utrecht/radio-button-react@1.0.4(@babel/runtime@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': diff --git a/wicket/components-wicket/package.json b/wicket/components-wicket/package.json index 37496e7e..9dd0ba60 100644 --- a/wicket/components-wicket/package.json +++ b/wicket/components-wicket/package.json @@ -50,6 +50,7 @@ "@utrecht/page-header-css": "1.5.0", "@utrecht/page-layout-css": "1.1.0", "@utrecht/paragraph-css": "1.1.0", + "@utrecht/preserve-data-css": "1.3.0", "@utrecht/root-css": "1.1.0", "@utrecht/separator-css": "1.4.0", "@utrecht/table-css": "1.1.0", diff --git a/wicket/components-wicket/src/main/java/css/WicketComponentsCssReferences.java b/wicket/components-wicket/src/main/java/css/WicketComponentsCssReferences.java index 0e898096..1b60d1a7 100644 --- a/wicket/components-wicket/src/main/java/css/WicketComponentsCssReferences.java +++ b/wicket/components-wicket/src/main/java/css/WicketComponentsCssReferences.java @@ -81,8 +81,14 @@ public class WicketComponentsCssReferences { public static final HeaderItem HEADING_GROUP_HEADER_ITEM = makeHeaderItemForCss( "@utrecht/heading-group-css/dist/index.css" ); + public static final HeaderItem CODE_BLOCK_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/code-block-css/dist/index.css" + ); public static final HeaderItem LOGO_HEADER_ITEM = makeHeaderItemForCss("@utrecht/logo-css/dist/index.css"); public static final HeaderItem ICON_HEADER_ITEM = makeHeaderItemForCss("@utrecht/icon/dist/index.css"); + public static final HeaderItem PRESERVE_DATA_HEADER_ITEM = makeHeaderItemForCss( + "@utrecht/preserve-data-css/dist/index.css" + ); // TODO: support dependencies, and know which dependencies are there private static CssResourceReference makeReference(String file) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.java index 6d36a85f..ae57463b 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.badge_list.utrecht; +import static css.WicketComponentsCssReferences.BADGE_LIST_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtBadgeListBorder extends Border { @@ -7,4 +10,10 @@ public class UtrechtBadgeListBorder extends Border { public UtrechtBadgeListBorder(String id) { super(id); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(BADGE_LIST_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.java index a3ecb8df..3123a814 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.body.utrecht; +import static css.WicketComponentsCssReferences.BODY_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtBodyBorder extends Border { @@ -7,4 +10,10 @@ public class UtrechtBodyBorder extends Border { public UtrechtBodyBorder(String id) { super(id); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(BODY_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.java index 67cfb753..6d528451 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.button_group.utrecht; +import static css.WicketComponentsCssReferences.BUTTON_GROUP_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtButtonGroupBorder extends Border { @@ -7,4 +10,10 @@ public class UtrechtButtonGroupBorder extends Border { public UtrechtButtonGroupBorder(String id) { super(id); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(BUTTON_GROUP_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.java index 2096c60b..9d210bb2 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.code_block.utrecht; +import static css.WicketComponentsCssReferences.CODE_BLOCK_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; @@ -14,4 +17,10 @@ public UtrechtCodeBlock(String id, IModel textContent) { label = new Label(SLOT_ID, textContent); add(label); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(CODE_BLOCK_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.java index 134ccd39..d5938a97 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.column_layout.utrecht; +import static css.WicketComponentsCssReferences.COLUMN_LAYOUT_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtColumnLayoutBorder extends Border { @@ -7,4 +10,10 @@ public class UtrechtColumnLayoutBorder extends Border { public UtrechtColumnLayoutBorder(String id) { super(id); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(COLUMN_LAYOUT_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java index 915f05cb..fe0bb665 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java @@ -1,8 +1,16 @@ package nl.rotterdam.design_system.wicket.components.form_field_checkbox.utrecht; +import static css.WicketComponentsCssReferences.CHECKBOX_HEADER_ITEM; +import static css.WicketComponentsCssReferences.CUSTOM_CHECKBOX_HEADER_ITEM; +import static css.WicketComponentsCssReferences.FORM_FIELD_DESCRIPTION_HEADER_ITEM; +import static css.WicketComponentsCssReferences.FORM_FIELD_ERROR_MESSAGE_HEADER_ITEM; +import static css.WicketComponentsCssReferences.FORM_FIELD_HEADER_ITEM; +import static css.WicketComponentsCssReferences.FORM_LABEL_HEADER_ITEM; + import css.HTMLUtil; import java.util.UUID; import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.panel.Panel; @@ -179,6 +187,17 @@ protected void onComponentTag(ComponentTag tag) { ); } + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(CHECKBOX_HEADER_ITEM); + response.render(CUSTOM_CHECKBOX_HEADER_ITEM); + response.render(FORM_FIELD_DESCRIPTION_HEADER_ITEM); + response.render(FORM_FIELD_ERROR_MESSAGE_HEADER_ITEM); + response.render(FORM_FIELD_HEADER_ITEM); + response.render(FORM_LABEL_HEADER_ITEM); + } + public UtrechtFormFieldCheckbox setRequired(boolean required) { checkbox.setRequired(required); return this; diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java index b82b8ca8..8d0bbc4f 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.form_label.utrecht; +import static css.WicketComponentsCssReferences.FORM_LABEL_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; @@ -14,4 +17,10 @@ public UtrechtFormLabel(String id, IModel textContent) { label = new Label(SLOT_ID, textContent); add(label); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(FORM_LABEL_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.java index fd7c8633..cf736e6c 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.heading_group.utrecht; +import static css.WicketComponentsCssReferences.HEADING_GROUP_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtHeadingGroupBorder extends Border { @@ -7,4 +10,10 @@ public class UtrechtHeadingGroupBorder extends Border { public UtrechtHeadingGroupBorder(String id) { super(id); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(HEADING_GROUP_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.java index cbd430cf..ba92737f 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.html_content.utrecht; +import static css.WicketComponentsCssReferences.HTML_CONTENT_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtHtmlContentBorder extends Border { @@ -7,4 +10,10 @@ public class UtrechtHtmlContentBorder extends Border { public UtrechtHtmlContentBorder(String id) { super(id); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(HTML_CONTENT_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.java index 8c91d954..3062d13d 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.icon.utrecht; +import static css.WicketComponentsCssReferences.ICON_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtIconBorder extends Border { @@ -7,4 +10,10 @@ public class UtrechtIconBorder extends Border { public UtrechtIconBorder(String id) { super(id); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(ICON_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.java index 637dd364..566a3fa1 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.logo.utrecht; +import static css.WicketComponentsCssReferences.LOGO_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtLogoBorder extends Border { @@ -7,4 +10,10 @@ public class UtrechtLogoBorder extends Border { public UtrechtLogoBorder(String id) { super(id); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(LOGO_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.java index b540b50c..19615aa9 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.page_footer.utrecht; +import static css.WicketComponentsCssReferences.PAGE_FOOTER_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtPageFooterBorder extends Border { @@ -7,4 +10,10 @@ public class UtrechtPageFooterBorder extends Border { public UtrechtPageFooterBorder(String id) { super(id); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(PAGE_FOOTER_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.java index 9e792267..fb3f4608 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.page_header.utrecht; +import static css.WicketComponentsCssReferences.PAGE_HEADER_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtPageHeaderBorder extends Border { @@ -7,4 +10,10 @@ public class UtrechtPageHeaderBorder extends Border { public UtrechtPageHeaderBorder(String id) { super(id); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(PAGE_HEADER_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.java index a9fd7cbd..a1a41f44 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.page_layout.utrecht; +import static css.WicketComponentsCssReferences.PAGE_LAYOUT_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.panel.Panel; public class UtrechtPageLayout extends Panel { @@ -9,4 +12,10 @@ public class UtrechtPageLayout extends Panel { public UtrechtPageLayout(String id) { super(id); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(PAGE_LAYOUT_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.java index 920881d6..cd96776c 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.page_layout.utrecht; +import static css.WicketComponentsCssReferences.PAGE_LAYOUT_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtPageLayoutBorder extends Border { @@ -7,4 +10,10 @@ public class UtrechtPageLayoutBorder extends Border { public UtrechtPageLayoutBorder(String id) { super(id); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(PAGE_LAYOUT_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataLabel.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataLabel.java index a476dc12..2b2de167 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataLabel.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataLabel.java @@ -1,7 +1,10 @@ package nl.rotterdam.design_system.wicket.components.preserve_data.utrecht; +import static css.WicketComponentsCssReferences.PRESERVE_DATA_HEADER_ITEM; + import org.apache.wicket.AttributeModifier; import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.model.IModel; @@ -28,4 +31,10 @@ protected void onInitialize() { add(AttributeModifier.replace("translate", "no")); add(AttributeModifier.append("class", "utrecht-preserve-data")); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(PRESERVE_DATA_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.java index fcb13b7f..553f6307 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.root.utrecht; +import static css.WicketComponentsCssReferences.ROOT_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtRootBorder extends Border { @@ -7,4 +10,10 @@ public class UtrechtRootBorder extends Border { public UtrechtRootBorder(String id) { super(id); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(ROOT_HEADER_ITEM); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.java index c6198d04..5ec1781b 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.java @@ -1,5 +1,8 @@ package nl.rotterdam.design_system.wicket.components.unordered_list.utrecht; +import static css.WicketComponentsCssReferences.UNORDERED_LIST_HEADER_ITEM; + +import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.panel.Panel; public class UtrechtUnorderedList extends Panel { @@ -7,4 +10,10 @@ public class UtrechtUnorderedList extends Panel { public UtrechtUnorderedList(String id) { super(id); } + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + response.render(UNORDERED_LIST_HEADER_ITEM); + } } diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java index 2cbe36c0..c5a3dfa2 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java @@ -51,27 +51,5 @@ public void renderHead(IHeaderResponse response) { response.render(DOCS_CSS_HEADER_ITEM); response.render(ROOT_HEADER_ITEM); response.render(BODY_HEADER_ITEM); - response.render(PAGE_BODY_HEADER_ITEM); - response.render(PAGE_HEADER_HEADER_ITEM); - response.render(PAGE_FOOTER_HEADER_ITEM); - response.render(PAGE_LAYOUT_HEADER_ITEM); - response.render(HTML_CONTENT_HEADER_ITEM); - response.render(FORM_LABEL_HEADER_ITEM); - response.render(NUMBER_BADGE_HEADER_ITEM); - response.render(BUTTON_GROUP_HEADER_ITEM); - response.render(ALERT_HEADER_ITEM); - response.render(BADGE_LIST_HEADER_ITEM); - response.render(SEPARATOR_HEADER_ITEM); - response.render(ORDERED_LIST_HEADER_ITEM); - response.render(UNORDERED_LIST_HEADER_ITEM); - response.render(ICON_HEADER_ITEM); - response.render(COLUMN_LAYOUT_HEADER_ITEM); - response.render(HEADING_GROUP_HEADER_ITEM); - response.render(LOGO_HEADER_ITEM); - response.render(FORM_FIELD_HEADER_ITEM); - response.render(FORM_FIELD_DESCRIPTION_HEADER_ITEM); - response.render(FORM_FIELD_ERROR_MESSAGE_HEADER_ITEM); - response.render(CHECKBOX_HEADER_ITEM); - response.render(CUSTOM_CHECKBOX_HEADER_ITEM); } } From cc604ecf7895825a1316924b0aff44ce314d0230 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Fri, 29 Nov 2024 12:09:21 +0100 Subject: [PATCH 07/75] Ignore some stuff --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index dbc48664..a4f8b446 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,6 @@ pnpm-lock.yaml # Ignore generated files from Stencil components.d.ts + +# Ignore generated files from Apache Wicket +*.iml From d90f012c6d92eff1936b7cdb285a27a4c9000a09 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Fri, 29 Nov 2024 11:24:30 +0100 Subject: [PATCH 08/75] Add ordered list with children, links --- .../rotterdam/wicket/docs/ComponentsPage.html | 10 +++++ .../rotterdam/wicket/docs/ComponentsPage.java | 43 ++++++++++++++++++- .../wicket/docs/unordered_list/Kind.java | 6 +++ 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/Kind.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index 4f4a7c92..ec8b2f8f 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -43,7 +43,17 @@

      Hello world

      Buttons go here +
      + +

      Utrecht ordered list

      +
        +
      1. + Example label +
      2. +
      +

      End ordered list

      + kinderen = List.of( + new Kind("Jan", 2000, 123456789), + new Kind("Storm", 2001, 123456790), + new Kind("Fatima", 2002, 123456791) + ); + + + pageBody.add(new WebMarkupContainer("utrechtOrderedListWebMarkupContainer") { + @Override + protected void onInitialize() { + super.onInitialize(); + + add(new UtrechtOrderedListBehavior()); // TODO should be singleton + add(new ListView("listItem", kinderen) { + + @Override + protected void populateItem(ListItem item) { + Kind kind = item.getModelObject(); + item.add(new UtrechtOrderedListItemBehavior()); // TODO: should be singleton + item.add(new ExternalLink("link", + "https://concern.ir.rotterdam.nl/example/kind/" + kind.administratienummer(), + kind.naam() + " - " + kind.geboortejaar()) + ); + + } + } + ); + } + }); + // RepeatingView listItems = new RepeatingView("utrechtOrderedListItem"); // listItems.add(new Label(listItems.newChildId(), "green")); // listItems.add(new Label(listItems.newChildId(), "blue")); diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/Kind.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/Kind.java new file mode 100644 index 00000000..e92da387 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/Kind.java @@ -0,0 +1,6 @@ +package nl.rotterdam.wicket.docs.unordered_list; + +import java.io.Serializable; + +public record Kind(String naam, int geboortejaar, long administratienummer) implements Serializable { +} From 60225f67b730dcf4d0bcbb6d6fca91ca0326458f Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Fri, 29 Nov 2024 13:56:38 +0100 Subject: [PATCH 09/75] Minor optimization --- wicket/components-wicket/src/main/java/css/HTMLUtil.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/wicket/components-wicket/src/main/java/css/HTMLUtil.java b/wicket/components-wicket/src/main/java/css/HTMLUtil.java index 8a928e1b..85637ee5 100644 --- a/wicket/components-wicket/src/main/java/css/HTMLUtil.java +++ b/wicket/components-wicket/src/main/java/css/HTMLUtil.java @@ -1,5 +1,6 @@ package css; + import java.util.Arrays; import java.util.stream.Collectors; @@ -14,8 +15,8 @@ public static String idRefs(String... classes) { } public static String joinTokens(String... classes) { - return Arrays.asList(classes) - .stream() + return Arrays + .stream(classes) .filter(className -> className != null && !className.trim().isEmpty()) .collect(Collectors.joining(" ")); } From 75126284003007488fde81d9cf07c6b4b1d96e32 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Fri, 29 Nov 2024 14:05:21 +0100 Subject: [PATCH 10/75] Utrecht alert without :container but with div for maximum flexibility --- .../components/alert/utrecht/UtrechtAlert.html | 2 -- .../components/alert/utrecht/UtrechtAlert.java | 17 ++--------------- .../alert/utrecht/UtrechtAlertBehavior.java | 9 +++++---- .../rotterdam/wicket/docs/ComponentsPage.html | 9 +++++---- 4 files changed, 12 insertions(+), 25 deletions(-) diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.html index b22569a6..450e7e4b 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.html +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.html @@ -1,7 +1,5 @@ -
      -
      diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.java index 4888c9e1..caaa4e75 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlert.java @@ -1,7 +1,5 @@ package nl.rotterdam.design_system.wicket.components.alert.utrecht; -import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; @@ -12,18 +10,7 @@ public class UtrechtAlert extends Panel { public UtrechtAlert(String id, IModel textContent, UtrechtAlertType type) { super(id); - WebMarkupContainer container = new WebMarkupContainer("alert") { - @Override - public void onComponentTag(ComponentTag tag) { - super.onComponentTag(tag); - - if (!tag.isClose()) { - tag.append("class", "utrecht-alert--" + type.type, " "); - } - } - }; - add(container); - container.add(UtrechtAlertBehavior.utrechtAlert(type)); - container.add(new Label(SLOT_ID, textContent)); + add(UtrechtAlertBehavior.utrechtAlert(type)); + add(new Label(SLOT_ID, textContent)); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java index 8d1fd098..97736262 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java @@ -1,15 +1,16 @@ package nl.rotterdam.design_system.wicket.components.alert.utrecht; -import static css.WicketComponentsCssReferences.ALERT_HEADER_ITEM; - import css.HTMLUtil; -import java.util.Map; import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.head.HeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; +import java.util.Map; + +import static css.WicketComponentsCssReferences.ALERT_HEADER_ITEM; + public class UtrechtAlertBehavior extends Behavior { public static Behavior utrechtAlert(UtrechtAlertType type) { @@ -59,7 +60,7 @@ public void onComponentTag(Component component, ComponentTag tag) { } if (!tag.isClose()) { - tag.put("class", HTMLUtil.className(this.className, "utrecht-alert--" + type.type)); + tag.put("class", HTMLUtil.className(this.className, "utrecht-alert utrecht-alert--" + type.type)); } } diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index ec8b2f8f..eb2b89f6 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -36,10 +36,11 @@

      Hello world

      - - - - + +
      +
      +
      +
      Buttons go here From 0d6bbe5b1640af02011f93df4a03a0e0a2981e26 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Fri, 29 Nov 2024 14:11:39 +0100 Subject: [PATCH 11/75] No noise --- .../badge_list/utrecht/UtrechtBadgeListBorder.html | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.html index 098eadfe..621dfe63 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.html +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.html @@ -1,9 +1,6 @@ - - - -
      - -
      -
      - + +
      + +
      +
      From c7fde6de0f29722343ba75d5695906bc634d337a Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Fri, 29 Nov 2024 14:12:06 +0100 Subject: [PATCH 12/75] No fields for components --- .../components/form_label/utrecht/UtrechtFormLabel.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java index 8d0bbc4f..17b2a22e 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java @@ -1,21 +1,19 @@ package nl.rotterdam.design_system.wicket.components.form_label.utrecht; -import static css.WicketComponentsCssReferences.FORM_LABEL_HEADER_ITEM; - import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; +import static css.WicketComponentsCssReferences.FORM_LABEL_HEADER_ITEM; + public class UtrechtFormLabel extends Panel { public static final String SLOT_ID = "slot"; - private final Label label; public UtrechtFormLabel(String id, IModel textContent) { super(id); - label = new Label(SLOT_ID, textContent); - add(label); + add(new Label(SLOT_ID, textContent)); } @Override From 9b291d117f1c892e717fdcb90ae21f25b7d48b08 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Tue, 3 Dec 2024 22:08:16 +0100 Subject: [PATCH 13/75] build: more helpful Apache Wicket dev server startup logs --- package.json | 2 +- .../rotterdam/wicket/nl_design/docs/Start.java | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 0be09dea..f13b43a6 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,7 @@ "wicket:install-and-build": "mvn --no-transfer-progress clean install", "wicket:clean": "mvn clean", "wicket:install": "mvn --no-transfer-progress dependency:go-offline", - "wicket:dev": "mvn exec:java -pl :docs-wicket" + "wicket:dev": "mvn exec:java@runDocs -pl :docs-wicket" }, "dependencies": { "http-server": "14.1.1" diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/Start.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/Start.java index 1f4269c1..5bdab64d 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/Start.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/Start.java @@ -34,11 +34,25 @@ public static void main(final String[] args) { try { System.out.println( - ">>> STARTING EMBEDDED JETTY SERVER on http://localhost:" + PORT + " PRESS ANY KEY TO STOP" + """ + ╭──────────────────────────────────────────────────────────────────────────────────────────╮ + │ │ + │ Development server has started for: │ + │ NL Design System community components for Apache Wicket │ + │ │ + │ Local: http://localhost:1234/ │ + │ │ + │ Restart this server to see any changes you have made to components or design tokens. │ + │ │ + │ Read the latest documentation: │ + │ https://github.com/nl-design-system/rotterdam/blob/main/wicket/README.md │ + │ │ + ╰──────────────────────────────────────────────────────────────────────────────────────────╯ + """.replace("1234", Integer.toString(PORT)) ); server.start(); System.in.read(); - System.out.println(">>> STOPPING EMBEDDED JETTY SERVER"); + System.out.println(">>> Stopping development server..."); server.stop(); server.join(); } catch (final Exception e) { From e0ba5fb4fa28866ea06373ea86cf54cefd911870 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 00:12:54 +0100 Subject: [PATCH 14/75] refactor: automatically include all Apache Wicket components --- package.json | 5 +- packages/storybook/config/main.ts | 2 +- packages/storybook/package.json | 1 + .../src/documentation/wicket-heading.mdx | 6 - pnpm-lock.yaml | 9 +- wicket/docs-wicket/package.json | 6 + .../GenerateMarkdownAndStorybookExamples.java | 9 + .../HtmlDocumentationExtractor.java | 23 ++- ...arkdownDocumentationExamplesGenerator.java | 174 +++++++----------- 9 files changed, 103 insertions(+), 132 deletions(-) delete mode 100644 packages/storybook/src/documentation/wicket-heading.mdx diff --git a/package.json b/package.json index f13b43a6..04ef6fb6 100644 --- a/package.json +++ b/package.json @@ -78,8 +78,9 @@ "update-major": "npm-check-updates --configFileName .ncurc.major.cjs", "watch:storybook": "pnpm --filter @gemeente-rotterdam/storybook run storybook", "watch:style-dictionary": "pnpm --filter @gemeente-rotterdam/design-tokens run watch", - "wicket:build": "mvn --no-transfer-progress --offline clean install", - "wicket:install-and-build": "mvn --no-transfer-progress clean install", + "wicket:build": "mvn --no-transfer-progress --offline clean install && pnpm run wicket:build-docs", + "wicket:install-and-build": "mvn --no-transfer-progress clean install && pnpm run wicket:build-docs", + "wicket:build-docs": "mvn exec:java@generateStoryBook -pl :docs-wicket", "wicket:clean": "mvn clean", "wicket:install": "mvn --no-transfer-progress dependency:go-offline", "wicket:dev": "mvn exec:java@runDocs -pl :docs-wicket" diff --git a/packages/storybook/config/main.ts b/packages/storybook/config/main.ts index 2a8464c2..aa3db89e 100644 --- a/packages/storybook/config/main.ts +++ b/packages/storybook/config/main.ts @@ -22,7 +22,7 @@ const config: StorybookConfig = { options: {}, }, staticDirs: ['../../../proprietary/assets/src'], - stories: ['../src/**/*stories.@(js|jsx|ts|tsx)', '../src/**/*.mdx'], + stories: ['../src/**/*stories.@(js|jsx|ts|tsx)', '../src/**/*.mdx', '../../../wicket/docs-wicket/stories/*.mdx'], }; export default config; diff --git a/packages/storybook/package.json b/packages/storybook/package.json index b44a31f9..41b3f10e 100644 --- a/packages/storybook/package.json +++ b/packages/storybook/package.json @@ -25,6 +25,7 @@ "@gemeente-rotterdam/assets": "workspace:*", "@gemeente-rotterdam/components-css": "workspace:*", "@gemeente-rotterdam/design-tokens": "workspace:*", + "@gemeente-rotterdam/docs-wicket": "workspace:*", "@gemeente-rotterdam/font": "workspace:*", "@gemeente-rotterdam/icon": "workspace:*", "@gemeente-rotterdam/mendix-css": "workspace:*", diff --git a/packages/storybook/src/documentation/wicket-heading.mdx b/packages/storybook/src/documentation/wicket-heading.mdx deleted file mode 100644 index bd22750d..00000000 --- a/packages/storybook/src/documentation/wicket-heading.mdx +++ /dev/null @@ -1,6 +0,0 @@ -import { Markdown, Meta } from "@storybook/blocks"; -import markdown from "../../../../wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht//README.md?raw"; - - - -{markdown} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3990058c..37e5f473 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -367,6 +367,9 @@ importers: '@gemeente-rotterdam/design-tokens': specifier: workspace:* version: link:../../proprietary/design-tokens + '@gemeente-rotterdam/docs-wicket': + specifier: workspace:* + version: link:../../wicket/docs-wicket '@gemeente-rotterdam/font': specifier: workspace:* version: link:../../proprietary/font @@ -705,7 +708,11 @@ importers: specifier: 1.0.0-alpha.35 version: 1.0.0-alpha.35 - wicket/docs-wicket: {} + wicket/docs-wicket: + devDependencies: + rimraf: + specifier: 6.0.1 + version: 6.0.1 packages: diff --git a/wicket/docs-wicket/package.json b/wicket/docs-wicket/package.json index 57ad7f26..6d54f0cc 100644 --- a/wicket/docs-wicket/package.json +++ b/wicket/docs-wicket/package.json @@ -13,5 +13,11 @@ "type": "git+ssh", "url": "git@github.com:nl-design-system/rotterdam.git", "directory": "wicket/components-wicket" + }, + "devDependencies": { + "rimraf": "6.0.1" + }, + "scripts": { + "clean": "rimraf stories/* target" } } diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 77f5c820..1e82e6e3 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -37,6 +37,15 @@ void generateHeadingComponent() { ).generate(); } + @Test + void generateHeading2Component() { + new MarkdownDocumentationExamplesGenerator( + HeadingExamplesPanel.class, + UtrechtHeading.class, + "heading" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/HtmlDocumentationExtractor.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/HtmlDocumentationExtractor.java index 74956049..18198029 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/HtmlDocumentationExtractor.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/HtmlDocumentationExtractor.java @@ -1,15 +1,14 @@ package nl.rotterdam.wicket.nl_design.docs.storybook_generator; -import com.google.common.base.Charsets; -import org.jsoup.Jsoup; -import org.jsoup.nodes.Document; -import org.jsoup.nodes.Element; +import static com.google.common.base.Preconditions.checkNotNull; +import com.google.common.base.Charsets; import java.io.IOException; import java.nio.file.Path; import java.util.Optional; - -import static com.google.common.base.Preconditions.checkNotNull; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; public class HtmlDocumentationExtractor { @@ -24,16 +23,16 @@ public HtmlDocumentationExtractor(Path path) { } public WicketHtmlExampleSnippet extractExample(String wicketId) { - Element element = document.selectFirst( - "[data-example-container-for=" + wicketId + "]" - ); + Element element = document.selectFirst("[data-example-container-for=" + wicketId + "]"); checkNotNull(element, "No element found for: " + wicketId); return new WicketHtmlExampleSnippet( - checkNotNull(element.selectFirst(".example-container__header"), wicketId + "mus have header").html(), - Optional.ofNullable(element.selectFirst(".example-container__documentation")).map(Element::html).orElse(null), - checkNotNull(element.selectFirst(".example-container__code"), wicketId + "mus have code").html() + checkNotNull(element.selectFirst(".example-container__header"), wicketId + "must have header").html(), + Optional.ofNullable(element.selectFirst(".example-container__documentation")) + .map(Element::html) + .orElse(null), + checkNotNull(element.selectFirst(".example-container__code"), wicketId + "must have code").html() ); } diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java index 7609159d..1e72f58a 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java @@ -1,15 +1,11 @@ package nl.rotterdam.wicket.nl_design.docs.storybook_generator; +import static nl.rotterdam.wicket.nl_design.docs.ModuleRootResolver.resolveModuleRootPath; + import com.github.javaparser.JavaParser; import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.body.MethodDeclaration; import com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter; -import nl.rotterdam.wicket.docs.ComponentExample; -import org.apache.wicket.Component; -import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.util.string.Strings; -import org.junit.platform.commons.support.ModifierSupport; - import java.io.File; import java.io.IOException; import java.lang.reflect.Method; @@ -18,8 +14,11 @@ import java.util.Comparator; import java.util.List; import java.util.stream.IntStream; - -import static nl.rotterdam.wicket.nl_design.docs.ModuleRootResolver.resolveModuleRootPath; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.util.string.Strings; +import org.junit.platform.commons.support.ModifierSupport; public class MarkdownDocumentationExamplesGenerator { @@ -30,12 +29,11 @@ public class MarkdownDocumentationExamplesGenerator { private final String componentName; private final String componentNameCapitalized; private final HtmlDocumentationExtractor documentationExtractor; - private final String relativePathInComponentsWicketFromModuleRoot; + private final String gitHubExamplePath; private final String gitHubComponentPath; public MarkdownDocumentationExamplesGenerator( Class examplePanelClass, - /* When you have a Behavior and a component, put them in the same package. */ @@ -45,41 +43,32 @@ public MarkdownDocumentationExamplesGenerator( this.componentName = componentName; this.componentNameCapitalized = Strings.capitalize(componentName); - String moduleRootPath = resolveModuleRootPath( - GenerateMarkdownAndStorybookExamples.class - ).getAbsolutePath(); + String moduleRootPath = resolveModuleRootPath(GenerateMarkdownAndStorybookExamples.class).getAbsolutePath(); - String relativePathInDocsWicketFromModuleRoot = "/src/main/java/" + - examplePanelClass.getPackageName().replace(".", "/") + "/"; + String relativePathInDocsWicketFromModuleRoot = + "/src/main/java/" + examplePanelClass.getPackageName().replace(".", "/") + "/"; String basePathInDocs = moduleRootPath + relativePathInDocsWicketFromModuleRoot; - - relativePathInComponentsWicketFromModuleRoot = "src/main/java/" + - componentClass.getPackageName().replace(".", "/") + "/"; - - String basePathInWicketComponent = moduleRootPath + "/../components-wicket/" + relativePathInComponentsWicketFromModuleRoot; - - String exampleFilenameWithoutExtension = - basePathInDocs + examplePanelClass.getSimpleName(); + String exampleFilenameWithoutExtension = basePathInDocs + examplePanelClass.getSimpleName(); exampleJavaFile = new File(exampleFilenameWithoutExtension + ".java"); documentationExtractor = new HtmlDocumentationExtractor( new File(exampleFilenameWithoutExtension + ".html").toPath() ); - markdownReadmeFile = new File(basePathInWicketComponent + "README.md"); - markdownStorybookFile = new File( - moduleRootPath + - "/../../packages/storybook/src/documentation/wicket-" + componentName + ".mdx" - ); + markdownReadmeFile = new File(moduleRootPath + "/stories/" + componentName + ".md"); + markdownStorybookFile = new File(moduleRootPath + "/stories/" + componentName + ".mdx"); - gitHubComponentPath = "https://github.com/nl-design-system/rotterdam/blob/main/wicket/docs-wicket/" + relativePathInDocsWicketFromModuleRoot; + gitHubComponentPath = + "https://github.com/nl-design-system/rotterdam/blob/main/wicket/components-wicket/" + + relativePathInDocsWicketFromModuleRoot; + gitHubExamplePath = + "https://github.com/nl-design-system/rotterdam/blob/main/wicket/docs-wicket/" + + relativePathInDocsWicketFromModuleRoot; try { - headingPanel = examplePanelClass - .getConstructor(String.class) - .newInstance("panelId"); + headingPanel = examplePanelClass.getConstructor(String.class).newInstance("panelId"); } catch (Exception e) { throw new RuntimeException(e); } @@ -94,12 +83,7 @@ private static String removeSemicolon(String statement) { } private static String extractJavaCode(MethodDeclaration x) { - String temp = x - .getBody() - .orElseThrow() - .toString() - .replaceFirst("return", "") - .replaceFirst("\\{", ""); + String temp = x.getBody().orElseThrow().toString().replaceFirst("return", "").replaceFirst("\\{", ""); temp = temp.substring(0, temp.lastIndexOf("}")); return temp.trim(); } @@ -120,26 +104,15 @@ private void generateWithCheckedExceptions() throws Exception { writeResultsToFiles(results); } - private List collectExamples() - throws Exception { - CompilationUnit compilationUnit = new JavaParser() - .parse(exampleJavaFile) - .getResult() - .orElseThrow(); - - List exampleComponentMethods = - compilationUnit.findAll(MethodDeclaration.class, m -> - m - .getAnnotationByName(ComponentExample.class.getSimpleName()) - .isPresent() - ); + private List collectExamples() throws Exception { + CompilationUnit compilationUnit = new JavaParser().parse(exampleJavaFile).getResult().orElseThrow(); - exampleComponentMethods.sort( - Comparator.comparing(declaration -> - declaration.getName().getIdentifier() - ) + List exampleComponentMethods = compilationUnit.findAll(MethodDeclaration.class, m -> + m.getAnnotationByName(ComponentExample.class.getSimpleName()).isPresent() ); + exampleComponentMethods.sort(Comparator.comparing(declaration -> declaration.getName().getIdentifier())); + return exampleComponentMethods .stream() .map(method -> { @@ -152,8 +125,7 @@ private List collectExamples() .toList(); } - private void writeResultsToFiles(List results) - throws IOException { + private void writeResultsToFiles(List results) throws IOException { writeWicketComponentsReadme(results); writeStoryBookFile(); @@ -162,28 +134,32 @@ private void writeResultsToFiles(List results) private void writeStoryBookFile() throws IOException { String content = String.format( """ - import { Markdown, Meta } from "@storybook/blocks"; - import markdown from "../../../../wicket/components-wicket/%s/README.md?raw"; - - - - {markdown} - """, - relativePathInComponentsWicketFromModuleRoot, + {/* @license CC0-1.0 */} + + import { Markdown, Meta } from "@storybook/blocks"; + import markdown from "./%s.md?raw"; + + + + {markdown} + """, + componentName, Strings.capitalize(componentName) ); Files.write(markdownStorybookFile.toPath(), content.getBytes()); } - private void writeWicketComponentsReadme( - List results - ) throws IOException { + private void writeWicketComponentsReadme(List results) throws IOException { List lines = new ArrayList<>( List.of( + "", + "", "# " + componentNameCapitalized + " component voor Apache Wicket", "", - "[Voorbeeld sourcecode](" + gitHubComponentPath + ")", + "[Broncode van dit voorbeeld](" + gitHubExamplePath + ")", + "", + "[Broncode van de component](" + gitHubComponentPath + ")", "", convertToMarkdown(documentationExtractor.extractHeader()), "Hieronder volgen verschillende voorbeelden van het gebruik van het component in Apache Wicket." @@ -192,20 +168,10 @@ private void writeWicketComponentsReadme( IntStream.range(0, results.size()).forEach(i -> { WicketComponentExample example = results.get(i); - lines.addAll( - List.of( - "", - "## " + example.htmlSnippet().headerHtml(), - "") - ); + lines.addAll(List.of("", "## " + example.htmlSnippet().headerHtml(), "")); if (example.htmlSnippet().documentationHtml() != null) { - lines.addAll( - List.of( - convertToMarkdown(example.htmlSnippet().documentationHtml()), - "" - ) - ); + lines.addAll(List.of(convertToMarkdown(example.htmlSnippet().documentationHtml()), "")); } lines.addAll( @@ -231,26 +197,24 @@ private String convertToMarkdown(String html) { private String wrapInDemoJavaPanelWithOnInitialize(String statement) { return String.format( """ - public class NlDesignSystemWicketDemoPanel extends Panel { - - public NlDesignSystemWicketDemoPanel(String id) { - super(id); - } - - @Override - protected void onInitialize() { - super.onInitialize(); - add(%s); - } - }""", + public class ExamplePanel extends Panel { + + public ExamplePanel(String id) { + super(id); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + add(%s); + } + }""", removeSemicolon(statement) ); } - private WicketComponentExample generateMethodUnchecked( - MethodDeclaration methodDeclaration, - Panel headingPanel - ) throws Exception { + private WicketComponentExample generateMethodUnchecked(MethodDeclaration methodDeclaration, Panel headingPanel) + throws Exception { String wicketId = getWicketId(headingPanel, methodDeclaration); return new WicketComponentExample( @@ -260,11 +224,8 @@ private WicketComponentExample generateMethodUnchecked( ); } - private String getWicketId(Panel panel, MethodDeclaration declaration) - throws Exception { - Method method = panel - .getClass() - .getDeclaredMethod(declaration.getName().asString()); + private String getWicketId(Panel panel, MethodDeclaration declaration) throws Exception { + Method method = panel.getClass().getDeclaredMethod(declaration.getName().asString()); method.setAccessible(true); @@ -274,13 +235,6 @@ private String getWicketId(Panel panel, MethodDeclaration declaration) return result.getId(); } - } -record WicketComponentExample( - String javaCode, - WicketHtmlExampleSnippet htmlSnippet, - String wicketId -) { - -} +record WicketComponentExample(String javaCode, WicketHtmlExampleSnippet htmlSnippet, String wicketId) {} From a8c7f782c80f8dab59081bdd8ef009076474fa21 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 00:48:49 +0100 Subject: [PATCH 15/75] feat: simplify Apache Wicket stories HTML structure --- .../docs/heading/HeadingExamplesPanel.html | 238 +++++++++--------- .../HtmlDocumentationExtractor.java | 12 +- 2 files changed, 123 insertions(+), 127 deletions(-) diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading/HeadingExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading/HeadingExamplesPanel.html index 349960e6..fd1e49f0 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading/HeadingExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading/HeadingExamplesPanel.html @@ -1,124 +1,122 @@ - + - - -
      -

      Heading component

      -
      -

      Koptekst die in de koppenstructuur ingesteld kan worden op het juiste niveau.

      -

      NL Design System Heading documentatie

      - -

      Mogelijkheden om Kopteksten te maken in Wicket:

      -
        -
      1. UtrechtHeading: een Label component om een waarde of Model te tonen
      2. -
      3. UtrechtHeadingBehavior: pas de Utrecht Heading style toe op een ander Wicket component
      4. -
      -
      - -

      Je kunt het component gebruiken met de correcte hx HTML-tags:

      - -
      -

      Kop 1

      -
      -

      Gebruik h1 maximaal één keer per pagina.

      -
      -
      -

      Gebruik maximaal één h1 per pagina

      -
      -
      - -
      -

      Kop 2

      -
      -

      Header 2

      -
      -
      - - -
      -

      Kop 3

      -
      -

      Header 3

      -
      -
      - -
      -

      Kop 4

      -
      -

      Header 4

      -
      -
      - -
      -

      Kop 5

      -
      -
      Header 5
      -
      -
      - - -
      -

      Kop 6

      -
      -
      Header 6
      -
      -
      - -
      -

      Tags worden vervangen

      -
      -

      Het Wicket component vervangt automatisch een div door de juiste kop-tag:

      -
      -
      -
      Utrecht label 3 met div wordt door Wicket bij het renderen vervangen. + + +
      +

      Heading component

      +
      +

      Koptekst die in de koppenstructuur ingesteld kan worden op het juiste niveau.

      +

      NL Design System Heading documentatie

      + +

      Mogelijkheden om Kopteksten te maken in Wicket:

      +
        +
      1. UtrechtHeading: een Label component om een waarde of Model te tonen
      2. +
      3. UtrechtHeadingBehavior: pas de Utrecht Heading style toe op een ander Wicket component
      4. +
      -
      -
      - -
      -

      Behoud bestaande CSS class

      -
      -

      Bestaande CSS-class wordt behouden:

      -
      -
      -

      De bestaande class blijft behouden

      -
      -
      - -
      -

      Model constructor

      -
      -

      Tekst kan gezet worden met model constructor:

      -
      -
      -

      Tekst wordt gezet via model constructor

      -
      -
      - -
      -

      Model via defaultModel

      -
      -

      Tekst kan gezet worden via defaultModel:

      -
      -
      -

      Tekst wordt gezet via defaultModel

      -
      -
      - -
      -

      MarkupContainer met niet-vertaalbare content

      -
      -

      Koptekst die een persoonsnaam bevat, die dus niet vertaald moet worden door vertaalsoftware:

      -
      -
      -

      - Welkom mevrouw - Van Bergenhenegouwen -

      -
      -
      -
      -
      - +

      Je kunt het component gebruiken met de correcte hx HTML-tags:

      + +
      +

      Kop 1

      +
      +

      Gebruik h1 maximaal één keer per pagina.

      +
      + +
      + +
      +

      Kop 2

      + +
      + +
      +

      Kop 3

      + +
      + +
      +

      Kop 4

      + +
      + +
      +

      Kop 5

      + +
      + +
      +

      Kop 6

      + +
      + +
      +

      Tags worden vervangen

      +
      +

      Het Wicket component vervangt automatisch een div door de juiste kop-tag:

      +
      + +
      + +
      +

      Behoud bestaande CSS class

      +
      +

      Bestaande CSS-class wordt behouden:

      +
      + +
      + +
      +

      Model constructor

      +
      +

      Tekst kan gezet worden met model constructor:

      +
      + +
      + +
      +

      Model via defaultModel

      +
      +

      Tekst kan gezet worden via defaultModel:

      +
      + +
      + +
      +

      MarkupContainer met niet-vertaalbare content

      +
      +

      Koptekst die een persoonsnaam bevat, die dus niet vertaald moet worden door vertaalsoftware:

      +
      + +
      + + + diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/HtmlDocumentationExtractor.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/HtmlDocumentationExtractor.java index 18198029..8ce0652a 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/HtmlDocumentationExtractor.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/HtmlDocumentationExtractor.java @@ -23,20 +23,18 @@ public HtmlDocumentationExtractor(Path path) { } public WicketHtmlExampleSnippet extractExample(String wicketId) { - Element element = document.selectFirst("[data-example-container-for=" + wicketId + "]"); + Element element = document.selectFirst("[data-testid=" + wicketId + "]"); checkNotNull(element, "No element found for: " + wicketId); return new WicketHtmlExampleSnippet( - checkNotNull(element.selectFirst(".example-container__header"), wicketId + "must have header").html(), - Optional.ofNullable(element.selectFirst(".example-container__documentation")) - .map(Element::html) - .orElse(null), - checkNotNull(element.selectFirst(".example-container__code"), wicketId + "must have code").html() + checkNotNull(element.selectFirst("h2"), wicketId + "must have header").html(), + Optional.ofNullable(element.selectFirst("h2 + div")).map(Element::html).orElse(null), + checkNotNull(element.selectFirst("template"), wicketId + "must have code").html() ); } public String extractHeader() { - return checkNotNull(document.selectFirst("header")).html(); + return checkNotNull(document.selectFirst("h1 + div")).html(); } } From 5ec601bbba2a44eb33f1163840871c57659e7788 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 00:49:18 +0100 Subject: [PATCH 16/75] test: add Alert stories --- .../wicket/docs/alert/AlertExamplesPanel.html | 53 ++++++++++++++ .../wicket/docs/alert/AlertExamplesPanel.java | 69 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 13 ++-- 3 files changed, 127 insertions(+), 8 deletions(-) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.html new file mode 100644 index 00000000..87f33d05 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.html @@ -0,0 +1,53 @@ + + + + +
      +

      Alert component

      +
      +

      Belangrijk bericht dat informeert over de huidige activiteit van de gebruiker.

      +
      + +
      +

      Alert Alert

      +
      +

      Foo.

      +
      + +
      + +
      +

      Alert Warning

      +
      +

      Foo.

      +
      + +
      + +
      +

      Alert OK

      +
      +

      Foo.

      +
      + +
      + +
      +

      Alert Info

      +
      +

      Foo.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.java new file mode 100644 index 00000000..f6db9ad0 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.java @@ -0,0 +1,69 @@ +package nl.rotterdam.wicket.docs.alert; + +import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlert; +import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlertType; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.Model; + +public class AlertExamplesPanel extends Panel { + + public AlertExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleAlertAlert() { + return new UtrechtAlert( + "utrechtAlertAlert", + Model.of( + "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." + ), + UtrechtAlertType.ERROR + ); + } + + @ComponentExample + private static Component exampleAlertWarning() { + return new UtrechtAlert( + "utrechtAlertWarning", + Model.of( + "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." + ), + UtrechtAlertType.WARNING + ); + } + + @ComponentExample + private static Component exampleAlertOk() { + return new UtrechtAlert( + "utrechtAlertOk", + Model.of( + "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." + ), + UtrechtAlertType.OK + ); + } + + @ComponentExample + private static Component exampleAlertInfo() { + return new UtrechtAlert( + "utrechtAlertInfo", + Model.of( + "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." + ), + UtrechtAlertType.INFO + ); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleAlertAlert()); + add(exampleAlertWarning()); + add(exampleAlertOk()); + add(exampleAlertInfo()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 1e82e6e3..f2c2a0cc 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -1,14 +1,15 @@ package nl.rotterdam.wicket.nl_design.docs.storybook_generator; +import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlert; import nl.rotterdam.design_system.wicket.components.heading.utrecht.UtrechtHeading; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; +import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; - /** * How to update the documentation: * @@ -29,16 +30,12 @@ public class GenerateMarkdownAndStorybookExamples { WicketTester tester = new WicketTester(new DocsApplication()); @Test - void generateHeadingComponent() { - new MarkdownDocumentationExamplesGenerator( - HeadingExamplesPanel.class, - UtrechtHeading.class, - "heading" - ).generate(); + void generateAlertComponent() { + new MarkdownDocumentationExamplesGenerator(AlertExamplesPanel.class, UtrechtAlert.class, "alert").generate(); } @Test - void generateHeading2Component() { + void generateHeadingComponent() { new MarkdownDocumentationExamplesGenerator( HeadingExamplesPanel.class, UtrechtHeading.class, From 7db4ba89a3f74763e9e96ea18b2a52ee018aa487 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 01:00:52 +0100 Subject: [PATCH 17/75] test: add BadgeList stories --- .../badge_list/BadgeListExamplesPanel.html | 21 ++++++++++++++++ .../badge_list/BadgeListExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 3 files changed, 57 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.html new file mode 100644 index 00000000..b8a0530f --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.html @@ -0,0 +1,21 @@ + + + + +
      +

      Badge List component

      +
      +

      Lijst van labels met extra informatie, zoals een categorie of een eigenschap.

      +
      + +
      +

      Badge List

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.java new file mode 100644 index 00000000..9232404f --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.badge_list; + +import nl.rotterdam.design_system.wicket.components.badge_list.utrecht.UtrechtBadgeListBorder; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class BadgeListExamplesPanel extends Panel { + + public BadgeListExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleBadgeList() { + return new UtrechtBadgeListBorder("utrechtBadgeList"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleBadgeList()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index f2c2a0cc..f0b87bd4 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -1,10 +1,12 @@ package nl.rotterdam.wicket.nl_design.docs.storybook_generator; import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlert; +import nl.rotterdam.design_system.wicket.components.badge_list.utrecht.UtrechtBadgeListBorder; import nl.rotterdam.design_system.wicket.components.heading.utrecht.UtrechtHeading; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; +import nl.rotterdam.wicket.docs.badge_list.BadgeListExamplesPanel; import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; @@ -34,6 +36,15 @@ void generateAlertComponent() { new MarkdownDocumentationExamplesGenerator(AlertExamplesPanel.class, UtrechtAlert.class, "alert").generate(); } + @Test + void generateBadgeListComponent() { + new MarkdownDocumentationExamplesGenerator( + BadgeListExamplesPanel.class, + UtrechtBadgeListBorder.class, + "badge-list" + ).generate(); + } + @Test void generateHeadingComponent() { new MarkdownDocumentationExamplesGenerator( From b384eb40eb554191b47500e4d3358b1654f962e4 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 01:05:50 +0100 Subject: [PATCH 18/75] test: add Body stories --- .../wicket/docs/body/BodyExamplesPanel.html | 23 +++++++++++++++++ .../wicket/docs/body/BodyExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 6 +++++ 3 files changed, 54 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/body/BodyExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/body/BodyExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/body/BodyExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/body/BodyExamplesPanel.html new file mode 100644 index 00000000..e209f4e2 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/body/BodyExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Body component

      +
      +

      Component op het niveau van het body HTML-element.

      +
      + +
      +

      Body

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/body/BodyExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/body/BodyExamplesPanel.java new file mode 100644 index 00000000..185f63f1 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/body/BodyExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.body; + +import nl.rotterdam.design_system.wicket.components.body.utrecht.UtrechtBodyBorder; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class BodyExamplesPanel extends Panel { + + public BodyExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleBodyExample() { + return new UtrechtBodyBorder("utrechtBody"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleBodyExample()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index f0b87bd4..81a36475 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -7,6 +7,7 @@ import nl.rotterdam.wicket.docs.DocsApplication; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; import nl.rotterdam.wicket.docs.badge_list.BadgeListExamplesPanel; +import nl.rotterdam.wicket.docs.body.BodyExamplesPanel; import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; @@ -45,6 +46,11 @@ void generateBadgeListComponent() { ).generate(); } + @Test + void generateBodyComponent() { + new MarkdownDocumentationExamplesGenerator(BodyExamplesPanel.class, BodyExamplesPanel.class, "body").generate(); + } + @Test void generateHeadingComponent() { new MarkdownDocumentationExamplesGenerator( From 874848d23aecb1cc3e90cb9e199c7fdcad89df5d Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 01:10:31 +0100 Subject: [PATCH 19/75] test: add Button Group stories --- .../ButtonGroupExamplesPanel.html | 23 +++++++++++++++++ .../ButtonGroupExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 3 files changed, 59 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button_group/ButtonGroupExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button_group/ButtonGroupExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button_group/ButtonGroupExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button_group/ButtonGroupExamplesPanel.html new file mode 100644 index 00000000..3a5a4e9b --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button_group/ButtonGroupExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Button Group component

      +
      +

      Groepeert één of meer gerelateerde acties en verzorgt de lay-out van de content.

      +
      + +
      +

      Button Group

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button_group/ButtonGroupExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button_group/ButtonGroupExamplesPanel.java new file mode 100644 index 00000000..2c450757 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button_group/ButtonGroupExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.button_group; + +import nl.rotterdam.design_system.wicket.components.button_group.utrecht.UtrechtButtonGroupBorder; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class ButtonGroupExamplesPanel extends Panel { + + public ButtonGroupExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleButtonGroup() { + return new UtrechtButtonGroupBorder("utrechtButtonGroup"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleButtonGroup()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 81a36475..4698a2dc 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -2,12 +2,14 @@ import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlert; import nl.rotterdam.design_system.wicket.components.badge_list.utrecht.UtrechtBadgeListBorder; +import nl.rotterdam.design_system.wicket.components.button_group.utrecht.UtrechtButtonGroupBorder; import nl.rotterdam.design_system.wicket.components.heading.utrecht.UtrechtHeading; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; import nl.rotterdam.wicket.docs.badge_list.BadgeListExamplesPanel; import nl.rotterdam.wicket.docs.body.BodyExamplesPanel; +import nl.rotterdam.wicket.docs.button_group.ButtonGroupExamplesPanel; import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; @@ -51,6 +53,15 @@ void generateBodyComponent() { new MarkdownDocumentationExamplesGenerator(BodyExamplesPanel.class, BodyExamplesPanel.class, "body").generate(); } + @Test + void generateButtonGroupComponent() { + new MarkdownDocumentationExamplesGenerator( + ButtonGroupExamplesPanel.class, + UtrechtButtonGroupBorder.class, + "button-group" + ).generate(); + } + @Test void generateHeadingComponent() { new MarkdownDocumentationExamplesGenerator( From f00f11703241fc76824e6f36ec0b3791734a7e07 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 01:16:21 +0100 Subject: [PATCH 20/75] test: add Code Block stories --- .../code_block/CodeBlockExamplesPanel.html | 23 ++++++++++ .../code_block/CodeBlockExamplesPanel.java | 42 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 +++++ 3 files changed, 76 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/code_block/CodeBlockExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/code_block/CodeBlockExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/code_block/CodeBlockExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/code_block/CodeBlockExamplesPanel.html new file mode 100644 index 00000000..a819bd85 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/code_block/CodeBlockExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Code Block component

      +
      +

      Toont één of meerdere regels computercode en behoudt de opmaak van deze code.

      +
      + +
      +

      Code Block

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/code_block/CodeBlockExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/code_block/CodeBlockExamplesPanel.java new file mode 100644 index 00000000..d6a53d2e --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/code_block/CodeBlockExamplesPanel.java @@ -0,0 +1,42 @@ +package nl.rotterdam.wicket.docs.code_block; + +import nl.rotterdam.design_system.wicket.components.code_block.utrecht.UtrechtCodeBlock; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.Model; + +public class CodeBlockExamplesPanel extends Panel { + + public CodeBlockExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleCodeBlock() { + return new UtrechtCodeBlock( + "utrechtCodeBlock", + Model.of( + """ + + + + NL Design System + + + +

      NL Design System

      + + + """ + ) + ); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleCodeBlock()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 4698a2dc..830b501b 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -3,6 +3,7 @@ import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlert; import nl.rotterdam.design_system.wicket.components.badge_list.utrecht.UtrechtBadgeListBorder; import nl.rotterdam.design_system.wicket.components.button_group.utrecht.UtrechtButtonGroupBorder; +import nl.rotterdam.design_system.wicket.components.code_block.utrecht.UtrechtCodeBlock; import nl.rotterdam.design_system.wicket.components.heading.utrecht.UtrechtHeading; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; @@ -10,6 +11,7 @@ import nl.rotterdam.wicket.docs.badge_list.BadgeListExamplesPanel; import nl.rotterdam.wicket.docs.body.BodyExamplesPanel; import nl.rotterdam.wicket.docs.button_group.ButtonGroupExamplesPanel; +import nl.rotterdam.wicket.docs.code_block.CodeBlockExamplesPanel; import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; @@ -62,6 +64,15 @@ void generateButtonGroupComponent() { ).generate(); } + @Test + void generateCodeBlockComponent() { + new MarkdownDocumentationExamplesGenerator( + CodeBlockExamplesPanel.class, + UtrechtCodeBlock.class, + "code-block" + ).generate(); + } + @Test void generateHeadingComponent() { new MarkdownDocumentationExamplesGenerator( From f20a2dd34c55a5ab023e25345befe014518dabd4 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 01:21:10 +0100 Subject: [PATCH 21/75] test: add Column Layout stories --- .../ColumnLayoutExamplesPanel.html | 23 +++++++++++++++++ .../ColumnLayoutExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 3 files changed, 59 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.html new file mode 100644 index 00000000..db76e2e5 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Column Layout component

      +
      +

      Layout van één of meerdere kolommen.

      +
      + +
      +

      Column Layout

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.java new file mode 100644 index 00000000..43ba2545 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.column_layout; + +import nl.rotterdam.design_system.wicket.components.column_layout.utrecht.UtrechtColumnLayoutBorder; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class ColumnLayoutExamplesPanel extends Panel { + + public ColumnLayoutExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleColumnLayout() { + return new UtrechtColumnLayoutBorder("utrechtColumnLayout"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleColumnLayout()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 830b501b..0a3ace8d 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -4,6 +4,7 @@ import nl.rotterdam.design_system.wicket.components.badge_list.utrecht.UtrechtBadgeListBorder; import nl.rotterdam.design_system.wicket.components.button_group.utrecht.UtrechtButtonGroupBorder; import nl.rotterdam.design_system.wicket.components.code_block.utrecht.UtrechtCodeBlock; +import nl.rotterdam.design_system.wicket.components.column_layout.utrecht.UtrechtColumnLayoutBorder; import nl.rotterdam.design_system.wicket.components.heading.utrecht.UtrechtHeading; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; @@ -12,6 +13,7 @@ import nl.rotterdam.wicket.docs.body.BodyExamplesPanel; import nl.rotterdam.wicket.docs.button_group.ButtonGroupExamplesPanel; import nl.rotterdam.wicket.docs.code_block.CodeBlockExamplesPanel; +import nl.rotterdam.wicket.docs.column_layout.ColumnLayoutExamplesPanel; import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; @@ -73,6 +75,15 @@ void generateCodeBlockComponent() { ).generate(); } + @Test + void generateColumnLayoutComponent() { + new MarkdownDocumentationExamplesGenerator( + ColumnLayoutExamplesPanel.class, + UtrechtColumnLayoutBorder.class, + "column-layout" + ).generate(); + } + @Test void generateHeadingComponent() { new MarkdownDocumentationExamplesGenerator( From 773b2f77743b0b5ba5a47ba073e04e393813cf73 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 08:35:19 +0100 Subject: [PATCH 22/75] test: add Form Field Checkbox stories --- .../FormFieldCheckboxExamplesPanel.html | 23 +++++++++++++ .../FormFieldCheckboxExamplesPanel.java | 32 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 +++++++ 3 files changed, 66 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_checkbox/FormFieldCheckboxExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_checkbox/FormFieldCheckboxExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_checkbox/FormFieldCheckboxExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_checkbox/FormFieldCheckboxExamplesPanel.html new file mode 100644 index 00000000..46242446 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_checkbox/FormFieldCheckboxExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Form Field Checkbox component

      +
      +

      Formulierveld om te kiezen tussen "wel" of "niet".

      +
      + +
      +

      Form Field Checkbox

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_checkbox/FormFieldCheckboxExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_checkbox/FormFieldCheckboxExamplesPanel.java new file mode 100644 index 00000000..0caea05e --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_checkbox/FormFieldCheckboxExamplesPanel.java @@ -0,0 +1,32 @@ +package nl.rotterdam.wicket.docs.form_field_checkbox; + +import nl.rotterdam.design_system.wicket.components.form_field_checkbox.utrecht.UtrechtFormFieldCheckbox; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.Model; + +public class FormFieldCheckboxExamplesPanel extends Panel { + + public FormFieldCheckboxExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleFormFieldCheckbox() { + return new UtrechtFormFieldCheckbox( + "utrechtFormFieldCheckbox", + Model.of(false), + Model.of("I agree"), + Model.of("Description"), + Model.of("error") + ); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleFormFieldCheckbox()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 0a3ace8d..b68f3eff 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -5,6 +5,7 @@ import nl.rotterdam.design_system.wicket.components.button_group.utrecht.UtrechtButtonGroupBorder; import nl.rotterdam.design_system.wicket.components.code_block.utrecht.UtrechtCodeBlock; import nl.rotterdam.design_system.wicket.components.column_layout.utrecht.UtrechtColumnLayoutBorder; +import nl.rotterdam.design_system.wicket.components.form_field_checkbox.utrecht.UtrechtFormFieldCheckbox; import nl.rotterdam.design_system.wicket.components.heading.utrecht.UtrechtHeading; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; @@ -14,6 +15,7 @@ import nl.rotterdam.wicket.docs.button_group.ButtonGroupExamplesPanel; import nl.rotterdam.wicket.docs.code_block.CodeBlockExamplesPanel; import nl.rotterdam.wicket.docs.column_layout.ColumnLayoutExamplesPanel; +import nl.rotterdam.wicket.docs.form_field_checkbox.FormFieldCheckboxExamplesPanel; import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; @@ -84,6 +86,15 @@ void generateColumnLayoutComponent() { ).generate(); } + @Test + void generateFormFieldCheckboxComponent() { + new MarkdownDocumentationExamplesGenerator( + FormFieldCheckboxExamplesPanel.class, + UtrechtFormFieldCheckbox.class, + "form-field-checkbox" + ).generate(); + } + @Test void generateHeadingComponent() { new MarkdownDocumentationExamplesGenerator( From aca821520673b9ee2c1359496d72420b68f0414a Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 08:43:25 +0100 Subject: [PATCH 23/75] test: add Form Field Label stories --- .../FormFieldLabelExamplesPanel.html | 27 +++++++++++++++++++ .../FormFieldLabelExamplesPanel.java | 26 ++++++++++++++++++ .../form_label/FormLabelExamplesPanel.html | 26 ------------------ .../form_label/FormLabelExamplesPanel.java | 26 ------------------ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 5 files changed, 64 insertions(+), 52 deletions(-) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_label/FormFieldLabelExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_label/FormFieldLabelExamplesPanel.java delete mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.html delete mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_label/FormFieldLabelExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_label/FormFieldLabelExamplesPanel.html new file mode 100644 index 00000000..caa2fbcb --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_label/FormFieldLabelExamplesPanel.html @@ -0,0 +1,27 @@ + + + + +
      +

      Form Field Label component

      +
      +

      Toont een tekstlabel dat informeert over de in te vullen informatie.

      +
      + +
      +

      Form Field Label

      +
      +
        +
      • Plaats het label voor het invoerveld, behalve voor checkbox options en radio options.
      • +
      • Plaats de checkbox of radio button in de form label.
      • +
      • Koppel de label met de form control met "for" en "id".
      • +
      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_label/FormFieldLabelExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_label/FormFieldLabelExamplesPanel.java new file mode 100644 index 00000000..f8acc551 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_label/FormFieldLabelExamplesPanel.java @@ -0,0 +1,26 @@ +package nl.rotterdam.wicket.docs.form_field_label; + +import nl.rotterdam.design_system.wicket.components.form_label.utrecht.UtrechtFormLabel; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.Model; + +public class FormFieldLabelExamplesPanel extends Panel { + + public FormFieldLabelExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleFormFieldLabel() { + return new UtrechtFormLabel("utrechtFormFieldLabel", Model.of("Voornaam")); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleFormFieldLabel()); + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.html deleted file mode 100644 index 546a68a6..00000000 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - -
      -

      Form Field Label component

      -

      Toont een tekstlabel dat informeert over de in te vullen informatie.

      - -
      -

      Form Label

      -
      -
        -
      • Plaats het label voor het invoerveld, behalve voor checkbox options en radio options.
      • -
      • Plaats de checkbox of radio button in de form label.
      • -
      • Koppel de label met de form control met "for" en "id".
      • -
      -
      -
      - - -
      -
      -
      -
      - - diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.java deleted file mode 100644 index d980a5eb..00000000 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_label/FormLabelExamplesPanel.java +++ /dev/null @@ -1,26 +0,0 @@ -package nl.rotterdam.wicket.docs.form_label; - -import nl.rotterdam.design_system.wicket.components.form_label.utrecht.UtrechtFormLabel; -import org.apache.wicket.Component; -import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.model.Model; - -public class FormLabelExamplesPanel extends Panel { - - public FormLabelExamplesPanel(String id) { - super(id); - } - - // private static Component example1() { - // return new UtrechtFormLabel("utrechtLabel1").setDefaultModel(Model.of("Voornaam")); - // return new UtrechtFormLabel("utrechtLabel1", Model.of("Voornaam")); - // } - - @Override - protected void onInitialize() { - super.onInitialize(); - - // add(example1()); - add(new UtrechtFormLabel("utrechtLabel1", Model.of("Voornaam"))); - } -} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index b68f3eff..c4c4e8f4 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -6,6 +6,7 @@ import nl.rotterdam.design_system.wicket.components.code_block.utrecht.UtrechtCodeBlock; import nl.rotterdam.design_system.wicket.components.column_layout.utrecht.UtrechtColumnLayoutBorder; import nl.rotterdam.design_system.wicket.components.form_field_checkbox.utrecht.UtrechtFormFieldCheckbox; +import nl.rotterdam.design_system.wicket.components.form_label.utrecht.UtrechtFormLabel; import nl.rotterdam.design_system.wicket.components.heading.utrecht.UtrechtHeading; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; @@ -16,6 +17,7 @@ import nl.rotterdam.wicket.docs.code_block.CodeBlockExamplesPanel; import nl.rotterdam.wicket.docs.column_layout.ColumnLayoutExamplesPanel; import nl.rotterdam.wicket.docs.form_field_checkbox.FormFieldCheckboxExamplesPanel; +import nl.rotterdam.wicket.docs.form_field_label.FormFieldLabelExamplesPanel; import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; @@ -95,6 +97,15 @@ void generateFormFieldCheckboxComponent() { ).generate(); } + @Test + void generateFormFieldLabelComponent() { + new MarkdownDocumentationExamplesGenerator( + FormFieldLabelExamplesPanel.class, + UtrechtFormLabel.class, + "form-field-label" + ).generate(); + } + @Test void generateHeadingComponent() { new MarkdownDocumentationExamplesGenerator( From 169cd2c8998bfd09d8871bdb4cde4f373a321f69 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 08:51:15 +0100 Subject: [PATCH 24/75] test: add Heading Group stories --- .../HeadingGroupExamplesPanel.html | 23 +++++++++++++++++ .../HeadingGroupExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 3 files changed, 59 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.html new file mode 100644 index 00000000..91196a47 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Heading group component

      +
      +

      Toont een combinatie van een titel en ondersteunende tekst.

      +
      + +
      +

      Heading Group

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.java new file mode 100644 index 00000000..bb6d8ed1 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.heading_group; + +import nl.rotterdam.design_system.wicket.components.heading_group.utrecht.UtrechtHeadingGroupBorder; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class HeadingGroupExamplesPanel extends Panel { + + public HeadingGroupExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleHeadingGroup() { + return new UtrechtHeadingGroupBorder("utrechtHeadingGroup"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleHeadingGroup()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index c4c4e8f4..48a7a6ed 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -8,6 +8,7 @@ import nl.rotterdam.design_system.wicket.components.form_field_checkbox.utrecht.UtrechtFormFieldCheckbox; import nl.rotterdam.design_system.wicket.components.form_label.utrecht.UtrechtFormLabel; import nl.rotterdam.design_system.wicket.components.heading.utrecht.UtrechtHeading; +import nl.rotterdam.design_system.wicket.components.heading_group.utrecht.UtrechtHeadingGroupBorder; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; @@ -19,6 +20,7 @@ import nl.rotterdam.wicket.docs.form_field_checkbox.FormFieldCheckboxExamplesPanel; import nl.rotterdam.wicket.docs.form_field_label.FormFieldLabelExamplesPanel; import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; +import nl.rotterdam.wicket.docs.heading_group.HeadingGroupExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; @@ -115,6 +117,15 @@ void generateHeadingComponent() { ).generate(); } + @Test + void generateHeadingGroupComponent() { + new MarkdownDocumentationExamplesGenerator( + HeadingGroupExamplesPanel.class, + UtrechtHeadingGroupBorder.class, + "heading-group" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); From 6a82f968fb9a3116689e30e94deae5cafa68211e Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 08:59:53 +0100 Subject: [PATCH 25/75] test: add HTML Content stories --- .../HtmlContentExamplesPanel.html | 23 +++++++++++++++++ .../HtmlContentExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 3 files changed, 59 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.html new file mode 100644 index 00000000..02b05eb9 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      HTML Content component

      +
      +

      Toont HTML-inhoud met de opmaak van het design system.

      +
      + +
      +

      HTML Content

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.java new file mode 100644 index 00000000..abc16b74 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.html_content; + +import nl.rotterdam.design_system.wicket.components.html_content.utrecht.UtrechtHtmlContentBorder; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class HtmlContentExamplesPanel extends Panel { + + public HtmlContentExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleHtmlContent() { + return new UtrechtHtmlContentBorder("utrechtHtmlContent"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleHtmlContent()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 48a7a6ed..138ad3c3 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -9,6 +9,7 @@ import nl.rotterdam.design_system.wicket.components.form_label.utrecht.UtrechtFormLabel; import nl.rotterdam.design_system.wicket.components.heading.utrecht.UtrechtHeading; import nl.rotterdam.design_system.wicket.components.heading_group.utrecht.UtrechtHeadingGroupBorder; +import nl.rotterdam.design_system.wicket.components.html_content.utrecht.UtrechtHtmlContentBorder; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; @@ -21,6 +22,7 @@ import nl.rotterdam.wicket.docs.form_field_label.FormFieldLabelExamplesPanel; import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; import nl.rotterdam.wicket.docs.heading_group.HeadingGroupExamplesPanel; +import nl.rotterdam.wicket.docs.html_content.HtmlContentExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; @@ -126,6 +128,15 @@ void generateHeadingGroupComponent() { ).generate(); } + @Test + void generateHtmlContentComponent() { + new MarkdownDocumentationExamplesGenerator( + HtmlContentExamplesPanel.class, + UtrechtHtmlContentBorder.class, + "html-content" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); From 5313b47ecfd7ba0440b51bb701b8b165bc849f5d Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 09:02:16 +0100 Subject: [PATCH 26/75] test: add Rotterdam Logo Image stories --- .../RotterdamLogoImageExamplesPanel.html | 23 +++++++++++++++++ .../RotterdamLogoImageExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 3 files changed, 59 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo_image/RotterdamLogoImageExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo_image/RotterdamLogoImageExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo_image/RotterdamLogoImageExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo_image/RotterdamLogoImageExamplesPanel.html new file mode 100644 index 00000000..a75f6f96 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo_image/RotterdamLogoImageExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Logo Image van gemeente Rotterdam component

      +
      +

      Logo van gemeente Rotterdam als SVG-afbeelding.

      +
      + +
      +

      Logo Image

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo_image/RotterdamLogoImageExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo_image/RotterdamLogoImageExamplesPanel.java new file mode 100644 index 00000000..76bd93e3 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo_image/RotterdamLogoImageExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.logo_image; + +import nl.rotterdam.design_system.wicket.components.logo_image.rotterdam.RotterdamLogoImage; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class RotterdamLogoImageExamplesPanel extends Panel { + + public RotterdamLogoImageExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleLogoImage() { + return new RotterdamLogoImage("rotterdamLogoImage"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleLogoImage()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 138ad3c3..f2f57c3c 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -10,6 +10,7 @@ import nl.rotterdam.design_system.wicket.components.heading.utrecht.UtrechtHeading; import nl.rotterdam.design_system.wicket.components.heading_group.utrecht.UtrechtHeadingGroupBorder; import nl.rotterdam.design_system.wicket.components.html_content.utrecht.UtrechtHtmlContentBorder; +import nl.rotterdam.design_system.wicket.components.logo_image.rotterdam.RotterdamLogoImage; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; @@ -23,6 +24,7 @@ import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; import nl.rotterdam.wicket.docs.heading_group.HeadingGroupExamplesPanel; import nl.rotterdam.wicket.docs.html_content.HtmlContentExamplesPanel; +import nl.rotterdam.wicket.docs.logo_image.RotterdamLogoImageExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; @@ -137,6 +139,15 @@ void generateHtmlContentComponent() { ).generate(); } + @Test + void generateRotterdamLogoImage() { + new MarkdownDocumentationExamplesGenerator( + RotterdamLogoImageExamplesPanel.class, + RotterdamLogoImage.class, + "rotterdam-logo-image" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); From df2fabb707b08c484351389a3bf7c49a444bf8cc Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 09:27:32 +0100 Subject: [PATCH 27/75] test: add Logo stories --- .../docs/logo/UtrechtLogoExamplesPanel.html | 23 +++++++++++++++++ .../docs/logo/UtrechtLogoExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 3 files changed, 59 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo/UtrechtLogoExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo/UtrechtLogoExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo/UtrechtLogoExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo/UtrechtLogoExamplesPanel.html new file mode 100644 index 00000000..97cfdb3d --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo/UtrechtLogoExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Logo component

      +
      +

      Bevat een afbeelding van een logo de gewenste afmetingen.

      +
      + +
      +

      Logo

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo/UtrechtLogoExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo/UtrechtLogoExamplesPanel.java new file mode 100644 index 00000000..fa95da58 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo/UtrechtLogoExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.logo; + +import nl.rotterdam.design_system.wicket.components.logo.utrecht.UtrechtLogoBorder; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class UtrechtLogoExamplesPanel extends Panel { + + public UtrechtLogoExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleLogo() { + return new UtrechtLogoBorder("utrechtLogo"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleLogo()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index f2f57c3c..94b69bbb 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -10,6 +10,7 @@ import nl.rotterdam.design_system.wicket.components.heading.utrecht.UtrechtHeading; import nl.rotterdam.design_system.wicket.components.heading_group.utrecht.UtrechtHeadingGroupBorder; import nl.rotterdam.design_system.wicket.components.html_content.utrecht.UtrechtHtmlContentBorder; +import nl.rotterdam.design_system.wicket.components.logo.utrecht.UtrechtLogoBorder; import nl.rotterdam.design_system.wicket.components.logo_image.rotterdam.RotterdamLogoImage; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; @@ -24,6 +25,7 @@ import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; import nl.rotterdam.wicket.docs.heading_group.HeadingGroupExamplesPanel; import nl.rotterdam.wicket.docs.html_content.HtmlContentExamplesPanel; +import nl.rotterdam.wicket.docs.logo.UtrechtLogoExamplesPanel; import nl.rotterdam.wicket.docs.logo_image.RotterdamLogoImageExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; @@ -148,6 +150,15 @@ void generateRotterdamLogoImage() { ).generate(); } + @Test + void generateUtrechtLogo() { + new MarkdownDocumentationExamplesGenerator( + UtrechtLogoExamplesPanel.class, + UtrechtLogoBorder.class, + "utrecht-logo" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); From 368cc517ac2089e33abdece2d9bdde5a8ea6e416 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 09:31:49 +0100 Subject: [PATCH 28/75] test: add Icon stories --- .../wicket/docs/icon/IconExamplesPanel.html | 23 +++++++++++++++++ .../wicket/docs/icon/IconExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 3 files changed, 59 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.html new file mode 100644 index 00000000..bee62544 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Icon component

      +
      +

      Toont een SVG icoon.

      +
      + +
      +

      Icon

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.java new file mode 100644 index 00000000..89979539 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.icon; + +import nl.rotterdam.design_system.wicket.components.icon.utrecht.UtrechtIconBorder; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class IconExamplesPanel extends Panel { + + public IconExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleIconComponent() { + return new UtrechtIconBorder("utrechtIcon"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleIconComponent()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 94b69bbb..05f57e22 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -10,6 +10,7 @@ import nl.rotterdam.design_system.wicket.components.heading.utrecht.UtrechtHeading; import nl.rotterdam.design_system.wicket.components.heading_group.utrecht.UtrechtHeadingGroupBorder; import nl.rotterdam.design_system.wicket.components.html_content.utrecht.UtrechtHtmlContentBorder; +import nl.rotterdam.design_system.wicket.components.icon.utrecht.UtrechtIconBorder; import nl.rotterdam.design_system.wicket.components.logo.utrecht.UtrechtLogoBorder; import nl.rotterdam.design_system.wicket.components.logo_image.rotterdam.RotterdamLogoImage; import nl.rotterdam.wicket.docs.ComponentExample; @@ -25,6 +26,7 @@ import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; import nl.rotterdam.wicket.docs.heading_group.HeadingGroupExamplesPanel; import nl.rotterdam.wicket.docs.html_content.HtmlContentExamplesPanel; +import nl.rotterdam.wicket.docs.icon.IconExamplesPanel; import nl.rotterdam.wicket.docs.logo.UtrechtLogoExamplesPanel; import nl.rotterdam.wicket.docs.logo_image.RotterdamLogoImageExamplesPanel; import org.apache.wicket.util.tester.WicketTester; @@ -159,6 +161,15 @@ void generateUtrechtLogo() { ).generate(); } + @Test + void generateUtrechtIcon() { + new MarkdownDocumentationExamplesGenerator( + IconExamplesPanel.class, + UtrechtIconBorder.class, + "utrecht-icon" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); From f359d57f706480e0b5da08656c1869dbfd9a8b00 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Wed, 4 Dec 2024 09:36:50 +0100 Subject: [PATCH 29/75] test: add Number Badge stories --- .../UtrechtNumberBadgeExamplesPanel.html | 23 ++++++++++++++++ .../UtrechtNumberBadgeExamplesPanel.java | 26 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 3 files changed, 60 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/number_badge/UtrechtNumberBadgeExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/number_badge/UtrechtNumberBadgeExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/number_badge/UtrechtNumberBadgeExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/number_badge/UtrechtNumberBadgeExamplesPanel.html new file mode 100644 index 00000000..4f345e96 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/number_badge/UtrechtNumberBadgeExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Number Badge component

      +
      +

      Klein label dat de aandacht trekt informeert over een aantal.

      +
      + +
      +

      Number Badge

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/number_badge/UtrechtNumberBadgeExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/number_badge/UtrechtNumberBadgeExamplesPanel.java new file mode 100644 index 00000000..96c4b649 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/number_badge/UtrechtNumberBadgeExamplesPanel.java @@ -0,0 +1,26 @@ +package nl.rotterdam.wicket.docs.number_badge; + +import nl.rotterdam.design_system.wicket.components.number_badge.utrecht.UtrechtNumberBadge; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.Model; + +public class UtrechtNumberBadgeExamplesPanel extends Panel { + + public UtrechtNumberBadgeExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleNumberBadge() { + return new UtrechtNumberBadge("utrechtNumberBadge", Model.of("42")); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleNumberBadge()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 05f57e22..3757b1fe 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -13,6 +13,7 @@ import nl.rotterdam.design_system.wicket.components.icon.utrecht.UtrechtIconBorder; import nl.rotterdam.design_system.wicket.components.logo.utrecht.UtrechtLogoBorder; import nl.rotterdam.design_system.wicket.components.logo_image.rotterdam.RotterdamLogoImage; +import nl.rotterdam.design_system.wicket.components.number_badge.utrecht.UtrechtNumberBadge; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; @@ -29,6 +30,7 @@ import nl.rotterdam.wicket.docs.icon.IconExamplesPanel; import nl.rotterdam.wicket.docs.logo.UtrechtLogoExamplesPanel; import nl.rotterdam.wicket.docs.logo_image.RotterdamLogoImageExamplesPanel; +import nl.rotterdam.wicket.docs.number_badge.UtrechtNumberBadgeExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; @@ -170,6 +172,15 @@ void generateUtrechtIcon() { ).generate(); } + @Test + void generateUtrechtNumberBadge() { + new MarkdownDocumentationExamplesGenerator( + UtrechtNumberBadgeExamplesPanel.class, + UtrechtNumberBadge.class, + "utrecht-number-badge" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); From a031ed5d31165986d174b8b09f1be648a70b35e9 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 6 Dec 2024 01:36:01 +0100 Subject: [PATCH 30/75] test: add Page Body stories --- .../UtrechtPageBodyExamplesPanel.html | 23 +++++++++++++++++ .../UtrechtPageBodyExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 3 files changed, 59 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_body/UtrechtPageBodyExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_body/UtrechtPageBodyExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_body/UtrechtPageBodyExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_body/UtrechtPageBodyExamplesPanel.html new file mode 100644 index 00000000..33dfb3df --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_body/UtrechtPageBodyExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Page Body component

      +
      +

      Inhoud van de pagina.

      +
      + +
      +

      Page Body

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_body/UtrechtPageBodyExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_body/UtrechtPageBodyExamplesPanel.java new file mode 100644 index 00000000..6dbe5919 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_body/UtrechtPageBodyExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.page_body; + +import nl.rotterdam.design_system.wicket.components.page_body.utrecht.UtrechtPageBodyBorder; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class UtrechtPageBodyExamplesPanel extends Panel { + + public UtrechtPageBodyExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component examplePageBody() { + return new UtrechtPageBodyBorder("utrechtPageBody"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(examplePageBody()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 3757b1fe..b81b4ec5 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -14,6 +14,7 @@ import nl.rotterdam.design_system.wicket.components.logo.utrecht.UtrechtLogoBorder; import nl.rotterdam.design_system.wicket.components.logo_image.rotterdam.RotterdamLogoImage; import nl.rotterdam.design_system.wicket.components.number_badge.utrecht.UtrechtNumberBadge; +import nl.rotterdam.design_system.wicket.components.page_body.utrecht.UtrechtPageBodyBorder; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; @@ -31,6 +32,7 @@ import nl.rotterdam.wicket.docs.logo.UtrechtLogoExamplesPanel; import nl.rotterdam.wicket.docs.logo_image.RotterdamLogoImageExamplesPanel; import nl.rotterdam.wicket.docs.number_badge.UtrechtNumberBadgeExamplesPanel; +import nl.rotterdam.wicket.docs.page_body.UtrechtPageBodyExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; @@ -181,6 +183,15 @@ void generateUtrechtNumberBadge() { ).generate(); } + @Test + void generateUtrechtPageBody() { + new MarkdownDocumentationExamplesGenerator( + UtrechtPageBodyExamplesPanel.class, + UtrechtPageBodyBorder.class, + "utrecht-page-body" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); From cb17a4bf1205f05aee0ce39a213215608dba38b2 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 6 Dec 2024 01:38:09 +0100 Subject: [PATCH 31/75] test: add Page Footer stories --- .../wicket/docs/page_footer/PageFooter | 0 .../page_footer/PageFooterExamplesPanel.html | 0 .../UtrechtPageFooterExamplesPanel.html | 23 +++++++++++++++++ .../UtrechtPageFooterExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 5 files changed, 59 insertions(+) delete mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/PageFooter delete mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/PageFooterExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/UtrechtPageFooterExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/UtrechtPageFooterExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/PageFooter b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/PageFooter deleted file mode 100644 index e69de29b..00000000 diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/PageFooterExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/PageFooterExamplesPanel.html deleted file mode 100644 index e69de29b..00000000 diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/UtrechtPageFooterExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/UtrechtPageFooterExamplesPanel.html new file mode 100644 index 00000000..b74fba26 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/UtrechtPageFooterExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Page Footer component

      +
      +

      Informatie en links onder de pagina.

      +
      + +
      +

      Page Footer

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/UtrechtPageFooterExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/UtrechtPageFooterExamplesPanel.java new file mode 100644 index 00000000..a748e061 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/UtrechtPageFooterExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.page_footer; + +import nl.rotterdam.design_system.wicket.components.page_footer.utrecht.UtrechtPageFooterBorder; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class UtrechtPageFooterExamplesPanel extends Panel { + + public UtrechtPageFooterExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component examplePageFooter() { + return new UtrechtPageFooterBorder("utrechtPageFooter"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(examplePageFooter()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index b81b4ec5..1c37b27d 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -15,6 +15,7 @@ import nl.rotterdam.design_system.wicket.components.logo_image.rotterdam.RotterdamLogoImage; import nl.rotterdam.design_system.wicket.components.number_badge.utrecht.UtrechtNumberBadge; import nl.rotterdam.design_system.wicket.components.page_body.utrecht.UtrechtPageBodyBorder; +import nl.rotterdam.design_system.wicket.components.page_footer.utrecht.UtrechtPageFooterBorder; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; @@ -33,6 +34,7 @@ import nl.rotterdam.wicket.docs.logo_image.RotterdamLogoImageExamplesPanel; import nl.rotterdam.wicket.docs.number_badge.UtrechtNumberBadgeExamplesPanel; import nl.rotterdam.wicket.docs.page_body.UtrechtPageBodyExamplesPanel; +import nl.rotterdam.wicket.docs.page_footer.UtrechtPageFooterExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; @@ -192,6 +194,15 @@ void generateUtrechtPageBody() { ).generate(); } + @Test + void generateUtrechtPageFooter() { + new MarkdownDocumentationExamplesGenerator( + UtrechtPageFooterExamplesPanel.class, + UtrechtPageFooterBorder.class, + "utrecht-page-footer" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); From b61fb766a67b46ef0643b8668dc651c2de9ea238 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 6 Dec 2024 01:40:57 +0100 Subject: [PATCH 32/75] test: add Page Layout stories --- .../page_layout/PageLayoutExamplesPanel.java | 18 ------------- .../UtrechtPageLayoutExamplesPanel.html | 23 +++++++++++++++++ .../UtrechtPageLayoutExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 4 files changed, 59 insertions(+), 18 deletions(-) delete mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/PageLayoutExamplesPanel.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/UtrechtPageLayoutExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/UtrechtPageLayoutExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/PageLayoutExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/PageLayoutExamplesPanel.java deleted file mode 100644 index 56606014..00000000 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/PageLayoutExamplesPanel.java +++ /dev/null @@ -1,18 +0,0 @@ -package nl.rotterdam.wicket.docs.page_layout; - -import nl.rotterdam.design_system.wicket.components.page_layout.utrecht.UtrechtPageLayout; -import org.apache.wicket.markup.html.panel.Panel; - -public class PageLayoutExamplesPanel extends Panel { - - public PageLayoutExamplesPanel(String id) { - super(id); - } - - @Override - protected void onInitialize() { - super.onInitialize(); - - add(new UtrechtPageLayout("utrechtPageLayout1")); - } -} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/UtrechtPageLayoutExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/UtrechtPageLayoutExamplesPanel.html new file mode 100644 index 00000000..a8cba0e4 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/UtrechtPageLayoutExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Page Layout component

      +
      +

      Layout van de paginainhoud, en de informatie en links boven en onder de pagina.

      +
      + +
      +

      Page Layout

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/UtrechtPageLayoutExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/UtrechtPageLayoutExamplesPanel.java new file mode 100644 index 00000000..7e445fd1 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/UtrechtPageLayoutExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.page_layout; + +import nl.rotterdam.design_system.wicket.components.page_layout.utrecht.UtrechtPageLayoutBorder; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class UtrechtPageLayoutExamplesPanel extends Panel { + + public UtrechtPageLayoutExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component examplePageLayout() { + return new UtrechtPageLayoutBorder("utrechtPageLayout"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(examplePageLayout()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 1c37b27d..d3afdc0f 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -16,6 +16,7 @@ import nl.rotterdam.design_system.wicket.components.number_badge.utrecht.UtrechtNumberBadge; import nl.rotterdam.design_system.wicket.components.page_body.utrecht.UtrechtPageBodyBorder; import nl.rotterdam.design_system.wicket.components.page_footer.utrecht.UtrechtPageFooterBorder; +import nl.rotterdam.design_system.wicket.components.page_layout.utrecht.UtrechtPageLayoutBorder; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; @@ -35,6 +36,7 @@ import nl.rotterdam.wicket.docs.number_badge.UtrechtNumberBadgeExamplesPanel; import nl.rotterdam.wicket.docs.page_body.UtrechtPageBodyExamplesPanel; import nl.rotterdam.wicket.docs.page_footer.UtrechtPageFooterExamplesPanel; +import nl.rotterdam.wicket.docs.page_layout.UtrechtPageLayoutExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; @@ -203,6 +205,15 @@ void generateUtrechtPageFooter() { ).generate(); } + @Test + void generateUtrechtPageLayout() { + new MarkdownDocumentationExamplesGenerator( + UtrechtPageLayoutExamplesPanel.class, + UtrechtPageLayoutBorder.class, + "utrecht-page-layout" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); From 0468a55446da3913c57fd427e7798d3c2d51584e Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 6 Dec 2024 01:49:26 +0100 Subject: [PATCH 33/75] test: add Preserve Data stories --- .../UtrechtPreserveDataExamplesPanel.html | 23 ++++++++++++++++ .../UtrechtPreserveDataExamplesPanel.java | 26 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 3 files changed, 60 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/preserve_data/UtrechtPreserveDataExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/preserve_data/UtrechtPreserveDataExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/preserve_data/UtrechtPreserveDataExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/preserve_data/UtrechtPreserveDataExamplesPanel.html new file mode 100644 index 00000000..af93592f --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/preserve_data/UtrechtPreserveDataExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Preserve Data component

      +
      +

      Toont data zoals de is ingevoerd.

      +
      + +
      +

      Preserve Data

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/preserve_data/UtrechtPreserveDataExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/preserve_data/UtrechtPreserveDataExamplesPanel.java new file mode 100644 index 00000000..acad1360 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/preserve_data/UtrechtPreserveDataExamplesPanel.java @@ -0,0 +1,26 @@ +package nl.rotterdam.wicket.docs.preserve_data; + +import nl.rotterdam.design_system.wicket.components.preserve_data.utrecht.UtrechtPreserveDataLabel; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.Model; + +public class UtrechtPreserveDataExamplesPanel extends Panel { + + public UtrechtPreserveDataExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component examplePreserveData() { + return new UtrechtPreserveDataLabel("utrechtPreserveData", Model.of("Mees de Vos")); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(examplePreserveData()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index d3afdc0f..829f9980 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -17,6 +17,7 @@ import nl.rotterdam.design_system.wicket.components.page_body.utrecht.UtrechtPageBodyBorder; import nl.rotterdam.design_system.wicket.components.page_footer.utrecht.UtrechtPageFooterBorder; import nl.rotterdam.design_system.wicket.components.page_layout.utrecht.UtrechtPageLayoutBorder; +import nl.rotterdam.design_system.wicket.components.preserve_data.utrecht.UtrechtPreserveDataLabel; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; @@ -37,6 +38,7 @@ import nl.rotterdam.wicket.docs.page_body.UtrechtPageBodyExamplesPanel; import nl.rotterdam.wicket.docs.page_footer.UtrechtPageFooterExamplesPanel; import nl.rotterdam.wicket.docs.page_layout.UtrechtPageLayoutExamplesPanel; +import nl.rotterdam.wicket.docs.preserve_data.UtrechtPreserveDataExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; @@ -214,6 +216,15 @@ void generateUtrechtPageLayout() { ).generate(); } + @Test + void generateUtrechtPreserveData() { + new MarkdownDocumentationExamplesGenerator( + UtrechtPreserveDataExamplesPanel.class, + UtrechtPreserveDataLabel.class, + "utrecht-preserve-data" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); From 0a0a29f998fc17b007085154b86a14217b045fc5 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 6 Dec 2024 01:52:56 +0100 Subject: [PATCH 34/75] test: add Root stories --- .../docs/root/UtrechtRootExamplesPanel.html | 23 +++++++++++++++++ .../docs/root/UtrechtRootExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 3 files changed, 59 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/root/UtrechtRootExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/root/UtrechtRootExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/root/UtrechtRootExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/root/UtrechtRootExamplesPanel.html new file mode 100644 index 00000000..b16b96a2 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/root/UtrechtRootExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Root component

      +
      +

      Eerste component van de pagina, op het niveau van het html-element.

      +
      + +
      +

      Root

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/root/UtrechtRootExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/root/UtrechtRootExamplesPanel.java new file mode 100644 index 00000000..93ab1501 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/root/UtrechtRootExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.root; + +import nl.rotterdam.design_system.wicket.components.root.utrecht.UtrechtRootBorder; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class UtrechtRootExamplesPanel extends Panel { + + public UtrechtRootExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleRoot() { + return new UtrechtRootBorder("utrechtRoot"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleRoot()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 829f9980..ca607b25 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -18,6 +18,7 @@ import nl.rotterdam.design_system.wicket.components.page_footer.utrecht.UtrechtPageFooterBorder; import nl.rotterdam.design_system.wicket.components.page_layout.utrecht.UtrechtPageLayoutBorder; import nl.rotterdam.design_system.wicket.components.preserve_data.utrecht.UtrechtPreserveDataLabel; +import nl.rotterdam.design_system.wicket.components.root.utrecht.UtrechtRootBorder; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; @@ -39,6 +40,7 @@ import nl.rotterdam.wicket.docs.page_footer.UtrechtPageFooterExamplesPanel; import nl.rotterdam.wicket.docs.page_layout.UtrechtPageLayoutExamplesPanel; import nl.rotterdam.wicket.docs.preserve_data.UtrechtPreserveDataExamplesPanel; +import nl.rotterdam.wicket.docs.root.UtrechtRootExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; @@ -225,6 +227,15 @@ void generateUtrechtPreserveData() { ).generate(); } + @Test + void generateUtrechtRoot() { + new MarkdownDocumentationExamplesGenerator( + UtrechtRootExamplesPanel.class, + UtrechtRootBorder.class, + "utrecht-root" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); From 73526b546f5d0388f3a287eaf6e1446a33e8f9c3 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 6 Dec 2024 02:09:05 +0100 Subject: [PATCH 35/75] test: add Separator stories --- .../UtrechtSeparatorExamplesPanel.html | 26 +++++++++++++++++++ .../UtrechtSeparatorExamplesPanel.java | 25 ++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 3 files changed, 62 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/separator/UtrechtSeparatorExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/separator/UtrechtSeparatorExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/separator/UtrechtSeparatorExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/separator/UtrechtSeparatorExamplesPanel.html new file mode 100644 index 00000000..59ef49b6 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/separator/UtrechtSeparatorExamplesPanel.html @@ -0,0 +1,26 @@ + + + + +
      +

      Separator component

      +
      +

      + Markering van de plek waar de tekst op een nieuwe manier verdergaat, zoals een nieuwe scène of een ander + onderwerp. +

      +
      + +
      +

      Separator

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/separator/UtrechtSeparatorExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/separator/UtrechtSeparatorExamplesPanel.java new file mode 100644 index 00000000..710cd3e8 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/separator/UtrechtSeparatorExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.separator; + +import nl.rotterdam.design_system.wicket.components.separator.utrecht.UtrechtSeparator; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class UtrechtSeparatorExamplesPanel extends Panel { + + public UtrechtSeparatorExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleSeparator() { + return new UtrechtSeparator("utrechtSeparator"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleSeparator()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index ca607b25..db0698a7 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -19,6 +19,7 @@ import nl.rotterdam.design_system.wicket.components.page_layout.utrecht.UtrechtPageLayoutBorder; import nl.rotterdam.design_system.wicket.components.preserve_data.utrecht.UtrechtPreserveDataLabel; import nl.rotterdam.design_system.wicket.components.root.utrecht.UtrechtRootBorder; +import nl.rotterdam.design_system.wicket.components.separator.utrecht.UtrechtSeparator; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; @@ -41,6 +42,7 @@ import nl.rotterdam.wicket.docs.page_layout.UtrechtPageLayoutExamplesPanel; import nl.rotterdam.wicket.docs.preserve_data.UtrechtPreserveDataExamplesPanel; import nl.rotterdam.wicket.docs.root.UtrechtRootExamplesPanel; +import nl.rotterdam.wicket.docs.separator.UtrechtSeparatorExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; @@ -236,6 +238,15 @@ void generateUtrechtRoot() { ).generate(); } + @Test + void generateUtrechtSeparator() { + new MarkdownDocumentationExamplesGenerator( + UtrechtSeparatorExamplesPanel.class, + UtrechtSeparator.class, + "utrecht-separator" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); From 34d16d59558e0d970b4c46863dcd553e82b3245d Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 6 Dec 2024 02:10:28 +0100 Subject: [PATCH 36/75] test: add Ordered List stories --- .../UtrechtOrderedListExamplesPanel.html | 23 +++++++++++++++++ .../UtrechtOrderedListExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 11 ++++++++ 3 files changed, 59 insertions(+) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html new file mode 100644 index 00000000..bf833b46 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Ordered List component

      +
      +

      Lijst waarvan de volgorde van items betekenis heeft.

      +
      + +
      +

      Ordered List

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.java new file mode 100644 index 00000000..1e6f22cf --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.ordered_list; + +import nl.rotterdam.design_system.wicket.components.ordered_list.utrecht.UtrechtOrderedList; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class UtrechtOrderedListExamplesPanel extends Panel { + + public UtrechtOrderedListExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleOrderedList() { + return new UtrechtOrderedList("utrechtOrderedList"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleOrderedList()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index db0698a7..6bab6aeb 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -14,6 +14,7 @@ import nl.rotterdam.design_system.wicket.components.logo.utrecht.UtrechtLogoBorder; import nl.rotterdam.design_system.wicket.components.logo_image.rotterdam.RotterdamLogoImage; import nl.rotterdam.design_system.wicket.components.number_badge.utrecht.UtrechtNumberBadge; +import nl.rotterdam.design_system.wicket.components.ordered_list.utrecht.UtrechtOrderedList; import nl.rotterdam.design_system.wicket.components.page_body.utrecht.UtrechtPageBodyBorder; import nl.rotterdam.design_system.wicket.components.page_footer.utrecht.UtrechtPageFooterBorder; import nl.rotterdam.design_system.wicket.components.page_layout.utrecht.UtrechtPageLayoutBorder; @@ -37,6 +38,7 @@ import nl.rotterdam.wicket.docs.logo.UtrechtLogoExamplesPanel; import nl.rotterdam.wicket.docs.logo_image.RotterdamLogoImageExamplesPanel; import nl.rotterdam.wicket.docs.number_badge.UtrechtNumberBadgeExamplesPanel; +import nl.rotterdam.wicket.docs.ordered_list.UtrechtOrderedListExamplesPanel; import nl.rotterdam.wicket.docs.page_body.UtrechtPageBodyExamplesPanel; import nl.rotterdam.wicket.docs.page_footer.UtrechtPageFooterExamplesPanel; import nl.rotterdam.wicket.docs.page_layout.UtrechtPageLayoutExamplesPanel; @@ -247,6 +249,15 @@ void generateUtrechtSeparator() { ).generate(); } + @Test + void generateUtrechtOrderedList() { + new MarkdownDocumentationExamplesGenerator( + UtrechtOrderedListExamplesPanel.class, + UtrechtOrderedList.class, + "utrecht-ordered-list" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); From 57a7477322589cf1ed9684fca8e50eaab6716251 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 6 Dec 2024 02:13:50 +0100 Subject: [PATCH 37/75] test: add Unordered List stories --- .../wicket/docs/unordered_list/Kind.java | 6 ----- .../UtrechtUnorderedListExamplesPanel.html | 23 +++++++++++++++++ .../UtrechtUnorderedListExamplesPanel.java | 25 +++++++++++++++++++ .../GenerateMarkdownAndStorybookExamples.java | 9 +++++++ 4 files changed, 57 insertions(+), 6 deletions(-) delete mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/Kind.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/Kind.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/Kind.java deleted file mode 100644 index e92da387..00000000 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/Kind.java +++ /dev/null @@ -1,6 +0,0 @@ -package nl.rotterdam.wicket.docs.unordered_list; - -import java.io.Serializable; - -public record Kind(String naam, int geboortejaar, long administratienummer) implements Serializable { -} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.html new file mode 100644 index 00000000..549b5f22 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.html @@ -0,0 +1,23 @@ + + + + +
      +

      Unordered List component

      +
      +

      Opsomming waar de volgorde van items in de lijst niet van belang is.

      +
      + +
      +

      Unordered List

      +
      +

      Voorbeeld.

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.java new file mode 100644 index 00000000..a7d463f3 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.java @@ -0,0 +1,25 @@ +package nl.rotterdam.wicket.docs.unordered_list; + +import nl.rotterdam.design_system.wicket.components.unordered_list.utrecht.UtrechtUnorderedList; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class UtrechtUnorderedListExamplesPanel extends Panel { + + public UtrechtUnorderedListExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleUnorderedList() { + return new UtrechtUnorderedList("utrechtUnorderedList"); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleUnorderedList()); + } +} diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 6bab6aeb..a33894bb 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -258,6 +258,15 @@ void generateUtrechtOrderedList() { ).generate(); } + @Test + void generateUtrechtUnorderedList() { + new MarkdownDocumentationExamplesGenerator( + UtrechtOrderedListExamplesPanel.class, + UtrechtOrderedList.class, + "utrecht-unordered-list" + ).generate(); + } + @AfterEach void tearDown() { tester.destroy(); From 390a38ef567301523ceb1a1654fb046d704080e4 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 6 Dec 2024 02:16:28 +0100 Subject: [PATCH 38/75] docs: improve Apache Wicket stories --- .../MarkdownDocumentationExamplesGenerator.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java index 1e72f58a..f9f3944e 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java @@ -157,12 +157,11 @@ private void writeWicketComponentsReadme(List results) t "", "# " + componentNameCapitalized + " component voor Apache Wicket", "", - "[Broncode van dit voorbeeld](" + gitHubExamplePath + ")", + convertToMarkdown(documentationExtractor.extractHeader()), "", - "[Broncode van de component](" + gitHubComponentPath + ")", + "[Broncode van dit voorbeeld](" + gitHubExamplePath + ")", "", - convertToMarkdown(documentationExtractor.extractHeader()), - "Hieronder volgen verschillende voorbeelden van het gebruik van het component in Apache Wicket." + "[Broncode van de component](" + gitHubComponentPath + ")" ) ); @@ -177,7 +176,10 @@ private void writeWicketComponentsReadme(List results) t lines.addAll( List.of( "```html", - example.htmlSnippet().codeHTML(), + "", + // TODO: Indent each line of codeHTML, not only the first + " " + example.htmlSnippet().codeHTML(), + "", "```", "", "```java", From c9f9ba749004fa7f9dbb3c07d0e3f6849e87ab9a Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 6 Dec 2024 09:04:59 +0100 Subject: [PATCH 39/75] docs: add component examples to dev server --- .../rotterdam/wicket/docs/ComponentsPage.html | 31 ++++- .../rotterdam/wicket/docs/ComponentsPage.java | 111 +++++++++++++----- .../rotterdam/wicket/docs/ComponentsPage.js | 2 + .../wicket/docs/alert/AlertExamplesPanel.html | 40 ++++--- .../badge_list/BadgeListExamplesPanel.html | 6 +- .../wicket/docs/body/BodyExamplesPanel.html | 8 +- .../ButtonGroupExamplesPanel.html | 6 +- .../code_block/CodeBlockExamplesPanel.html | 6 +- .../ColumnLayoutExamplesPanel.html | 6 +- .../FormFieldCheckboxExamplesPanel.html | 6 +- .../FormFieldLabelExamplesPanel.html | 6 +- .../docs/heading/HeadingExamplesPanel.html | 98 ++++++++++------ .../HeadingGroupExamplesPanel.html | 6 +- .../HtmlContentExamplesPanel.html | 6 +- .../wicket/docs/icon/IconExamplesPanel.html | 6 +- .../docs/logo/UtrechtLogoExamplesPanel.html | 6 +- .../RotterdamLogoImageExamplesPanel.html | 6 +- .../UtrechtNumberBadgeExamplesPanel.html | 6 +- .../UtrechtOrderedListExamplesPanel.html | 6 +- .../UtrechtPageBodyExamplesPanel.html | 6 +- .../UtrechtPageFooterExamplesPanel.html | 6 +- .../UtrechtPageLayoutExamplesPanel.html | 6 +- .../UtrechtPreserveDataExamplesPanel.html | 6 +- .../wicket/docs/rods-story-canvas.js | 42 +++++++ .../docs/root/UtrechtRootExamplesPanel.html | 6 +- .../UtrechtSeparatorExamplesPanel.html | 6 +- .../UtrechtUnorderedListExamplesPanel.html | 6 +- 27 files changed, 303 insertions(+), 149 deletions(-) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/rods-story-canvas.js diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index eb2b89f6..c488312b 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -19,6 +19,29 @@

      Components

      + + + + + + + + + + + + + + + + + + + + + + +

      Code Block

      @@ -26,7 +49,7 @@

      Code Block

      - + 42

      Link to trigger Wicket stateful page refresh

      @@ -37,10 +60,10 @@

      Hello world

      -
      + Buttons go here @@ -101,7 +124,7 @@

      Heading in a heading group

      Page footer + - >>>>>>> 7de5dcc (feat: add many new Wicket components) diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java index 5fe68613..94322c96 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java @@ -1,8 +1,10 @@ package nl.rotterdam.wicket.docs; import css.DesignSystemTheme; -import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlert; -import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlertType; +import java.util.Arrays; +import java.util.List; +// import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlert; +// import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlertType; import nl.rotterdam.design_system.wicket.components.button_group.utrecht.UtrechtButtonGroupBorder; import nl.rotterdam.design_system.wicket.components.code_block.utrecht.UtrechtCodeBlock; import nl.rotterdam.design_system.wicket.components.column_layout.utrecht.UtrechtColumnLayoutBorder; @@ -22,13 +24,36 @@ import nl.rotterdam.design_system.wicket.components.page_layout.utrecht.UtrechtPageLayoutBorder; import nl.rotterdam.design_system.wicket.components.separator.utrecht.UtrechtSeparator; import nl.rotterdam.design_system.wicket.components.unordered_list.utrecht.UtrechtUnorderedList; -import nl.rotterdam.wicket.docs.form_label.FormLabelExamplesPanel; +import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; +import nl.rotterdam.wicket.docs.badge_list.BadgeListExamplesPanel; +import nl.rotterdam.wicket.docs.body.BodyExamplesPanel; +import nl.rotterdam.wicket.docs.button_group.ButtonGroupExamplesPanel; +import nl.rotterdam.wicket.docs.code_block.CodeBlockExamplesPanel; +import nl.rotterdam.wicket.docs.column_layout.ColumnLayoutExamplesPanel; +import nl.rotterdam.wicket.docs.form_field_checkbox.FormFieldCheckboxExamplesPanel; +import nl.rotterdam.wicket.docs.form_field_label.FormFieldLabelExamplesPanel; +// import nl.rotterdam.wicket.docs.form_label.FormLabelExamplesPanel; import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; +import nl.rotterdam.wicket.docs.heading_group.HeadingGroupExamplesPanel; +import nl.rotterdam.wicket.docs.html_content.HtmlContentExamplesPanel; +import nl.rotterdam.wicket.docs.icon.IconExamplesPanel; +import nl.rotterdam.wicket.docs.logo.UtrechtLogoExamplesPanel; +import nl.rotterdam.wicket.docs.logo_image.RotterdamLogoImageExamplesPanel; +import nl.rotterdam.wicket.docs.number_badge.UtrechtNumberBadgeExamplesPanel; +import nl.rotterdam.wicket.docs.ordered_list.UtrechtOrderedListExamplesPanel; +import nl.rotterdam.wicket.docs.page_body.UtrechtPageBodyExamplesPanel; +import nl.rotterdam.wicket.docs.page_footer.UtrechtPageFooterExamplesPanel; +import nl.rotterdam.wicket.docs.page_layout.UtrechtPageLayoutExamplesPanel; +import nl.rotterdam.wicket.docs.preserve_data.UtrechtPreserveDataExamplesPanel; +import nl.rotterdam.wicket.docs.root.UtrechtRootExamplesPanel; +import nl.rotterdam.wicket.docs.separator.UtrechtSeparatorExamplesPanel; import nl.rotterdam.wicket.docs.unordered_list.Kind; +import nl.rotterdam.wicket.docs.unordered_list.UtrechtUnorderedListExamplesPanel; import org.apache.wicket.Component; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.JavaScriptHeaderItem; import org.apache.wicket.markup.head.JavaScriptReferenceHeaderItem; +import org.apache.wicket.markup.head.JavaScriptReferenceType; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.DropDownChoice; @@ -42,9 +67,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Arrays; -import java.util.List; - public class ComponentsPage extends BasePage { private static final Logger LOGGER = LoggerFactory.getLogger(ComponentsPage.class); @@ -83,6 +105,8 @@ private static Component createActiveThemeChoice() { @Override protected void onInitialize() { super.onInitialize(); + + // Build up the page layout pageLayout = new UtrechtPageLayoutBorder("utrechtPageLayout"); add(pageLayout); @@ -102,11 +126,37 @@ protected void onInitialize() { pageBody.add(new UtrechtCodeBlock("code-block-example", Model.of("Reload Page"))); + // Add the component stories + pageBody.add(new AlertExamplesPanel("alertExamplesPanel")); + pageBody.add(new BadgeListExamplesPanel("badgeListExamplesPanel")); + pageBody.add(new BodyExamplesPanel("bodyExamplesPanel")); + pageBody.add(new ButtonGroupExamplesPanel("buttonGroupExamplesPanel")); + pageBody.add(new CodeBlockExamplesPanel("codeBlockExamplesPanel")); + pageBody.add(new ColumnLayoutExamplesPanel("columnLayoutExamplesPanel")); + pageBody.add(new FormFieldCheckboxExamplesPanel("formFieldCheckboxExamplesPanel")); + pageBody.add(new FormFieldLabelExamplesPanel("formFieldLabelExamplesPanel")); + pageBody.add(new HeadingExamplesPanel("headingExamplesPanel")); + pageBody.add(new HeadingGroupExamplesPanel("headingGroupExamplesPanel")); + pageBody.add(new HtmlContentExamplesPanel("htmlContentExamplesPanel")); + pageBody.add(new IconExamplesPanel("iconExamplesPanel")); + pageBody.add(new RotterdamLogoImageExamplesPanel("rotterdamLogoImageExamplesPanel")); + pageBody.add(new UtrechtLogoExamplesPanel("logoExamplesPanel")); + pageBody.add(new UtrechtNumberBadgeExamplesPanel("numberBadgeExamplesPanel")); + pageBody.add(new UtrechtOrderedListExamplesPanel("orderedListExamplesPanel")); + pageBody.add(new UtrechtPageBodyExamplesPanel("pageBodyExamplesPanel")); + pageBody.add(new UtrechtPageFooterExamplesPanel("pageFooterExamplesPanel")); + pageBody.add(new UtrechtPageLayoutExamplesPanel("pageLayoutExamplesPanel")); + pageBody.add(new UtrechtPreserveDataExamplesPanel("preserveDataExamplesPanel")); + pageBody.add(new UtrechtRootExamplesPanel("rootExamplesPanel")); + pageBody.add(new UtrechtSeparatorExamplesPanel("separatorExamplesPanel")); + pageBody.add(new UtrechtUnorderedListExamplesPanel("unorderedListExamplesPanel")); + pageBody.add(new HeadingExamplesPanel("headingComponents")); // add(new HeadingPanel("labelComponents")); - pageBody.add(new FormLabelExamplesPanel("labelComponents")); + // pageBody.add(new FormFieldLabelExamplesPanel("labelComponents")); pageBody.add(new UtrechtHtmlContentBorder("utrechtHtmlContent")); pageBody.add(new UtrechtNumberBadge("utrechtNumberBadge", Model.of("42"))); + /* pageBody.add( new UtrechtAlert( "utrechtAlertInfo", @@ -143,6 +193,7 @@ protected void onInitialize() { UtrechtAlertType.OK ) ); + */ pageBody.add(new UtrechtSeparator("utrechtSeparator")); pageBody.add(new UtrechtButtonGroupBorder("utrechtButtonGroup")); orderedList = new UtrechtOrderedList("utrechtOrderedList"); @@ -173,36 +224,38 @@ protected void onInitialize() { // } // ); - List kinderen = List.of( new Kind("Jan", 2000, 123456789), new Kind("Storm", 2001, 123456790), new Kind("Fatima", 2002, 123456791) ); + pageBody.add( + new WebMarkupContainer("utrechtOrderedListWebMarkupContainer") { + @Override + protected void onInitialize() { + super.onInitialize(); - pageBody.add(new WebMarkupContainer("utrechtOrderedListWebMarkupContainer") { - @Override - protected void onInitialize() { - super.onInitialize(); - - add(new UtrechtOrderedListBehavior()); // TODO should be singleton - add(new ListView("listItem", kinderen) { - - @Override - protected void populateItem(ListItem item) { - Kind kind = item.getModelObject(); - item.add(new UtrechtOrderedListItemBehavior()); // TODO: should be singleton - item.add(new ExternalLink("link", - "https://concern.ir.rotterdam.nl/example/kind/" + kind.administratienummer(), - kind.naam() + " - " + kind.geboortejaar()) - ); - + add(new UtrechtOrderedListBehavior()); // TODO should be singleton + add( + new ListView("listItem", kinderen) { + @Override + protected void populateItem(ListItem item) { + Kind kind = item.getModelObject(); + item.add(new UtrechtOrderedListItemBehavior()); // TODO: should be singleton + item.add( + new ExternalLink( + "link", + "https://concern.ir.rotterdam.nl/example/kind/" + kind.administratienummer(), + kind.naam() + " - " + kind.geboortejaar() + ) + ); + } } - } - ); + ); + } } - }); + ); // RepeatingView listItems = new RepeatingView("utrechtOrderedListItem"); // listItems.add(new Label(listItems.newChildId(), "green")); @@ -227,6 +280,8 @@ protected void populateItem(ListItem item) { @Override public void renderHead(IHeaderResponse response) { super.renderHead(response); + + COMPONENTS_JS_HEADER_ITEM.setType(JavaScriptReferenceType.MODULE); response.render(COMPONENTS_JS_HEADER_ITEM); } diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.js b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.js index e479da20..02eba734 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.js +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.js @@ -1,4 +1,6 @@ /* eslint-env browser:true */ +import './rods-story-canvas.js'; + document.addEventListener('DOMContentLoaded', function () { function updateTheme(newTheme) { const htmlElement = document.documentElement; // Get the element diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.html index 87f33d05..c78dfc96 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.html @@ -11,41 +11,49 @@

      Alert component

      Alert Alert

      -

      Foo.

      +

      Voorbeeld

      - +

      Alert Warning

      -

      Foo.

      +

      Voorbeeld.

      - +

      Alert OK

      -

      Foo.

      +

      Voorbeeld.

      - +

      Alert Info

      -

      Foo.

      +

      Voorbeeld.

      - +
      diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.html index b8a0530f..d282c6a3 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.html @@ -11,9 +11,9 @@

      Badge List component

      Badge List

      - + +
      diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/body/BodyExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/body/BodyExamplesPanel.html index e209f4e2..90eed4b2 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/body/BodyExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/body/BodyExamplesPanel.html @@ -13,9 +13,11 @@

      Body

      Voorbeeld.

      - + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button_group/ButtonGroupExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button_group/ButtonGroupExamplesPanel.html index 3a5a4e9b..66ec8d72 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button_group/ButtonGroupExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button_group/ButtonGroupExamplesPanel.html @@ -13,9 +13,9 @@

      Button Group

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/code_block/CodeBlockExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/code_block/CodeBlockExamplesPanel.html index a819bd85..d5993f78 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/code_block/CodeBlockExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/code_block/CodeBlockExamplesPanel.html @@ -13,9 +13,9 @@

      Code Block

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.html index db76e2e5..342ec020 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.html @@ -13,9 +13,9 @@

      Column Layout

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_checkbox/FormFieldCheckboxExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_checkbox/FormFieldCheckboxExamplesPanel.html index 46242446..556a2bf4 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_checkbox/FormFieldCheckboxExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_checkbox/FormFieldCheckboxExamplesPanel.html @@ -13,9 +13,9 @@

      Form Field Checkbox

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_label/FormFieldLabelExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_label/FormFieldLabelExamplesPanel.html index caa2fbcb..32458484 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_label/FormFieldLabelExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_label/FormFieldLabelExamplesPanel.html @@ -17,9 +17,9 @@

      Form Field Label

    • Koppel de label met de form control met "for" en "id".
    • - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading/HeadingExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading/HeadingExamplesPanel.html index fd1e49f0..bc75b2b4 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading/HeadingExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading/HeadingExamplesPanel.html @@ -22,44 +22,56 @@

      Kop 1

      Gebruik h1 maximaal één keer per pagina.

      - +

      Kop 2

      - +

      Kop 3

      - +

      Kop 4

      - +

      Kop 5

      - +

      Kop 6

      - +
      @@ -67,11 +79,13 @@

      Tags worden vervangen

      Het Wicket component vervangt automatisch een div door de juiste kop-tag:

      - +
      @@ -79,9 +93,11 @@

      Behoud bestaande CSS class

      Bestaande CSS-class wordt behouden:

      - +
      @@ -89,9 +105,11 @@

      Model constructor

      Tekst kan gezet worden met model constructor:

      - +
      @@ -99,9 +117,11 @@

      Model via defaultModel

      Tekst kan gezet worden via defaultModel:

      - +
      @@ -109,12 +129,14 @@

      MarkupContainer met niet-vertaalbare content

      Koptekst die een persoonsnaam bevat, die dus niet vertaald moet worden door vertaalsoftware:

      - +
      diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.html index 91196a47..6676ee2e 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.html @@ -13,9 +13,9 @@

      Heading Group

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.html index 02b05eb9..c98aec7c 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.html @@ -13,9 +13,9 @@

      HTML Content

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.html index bee62544..b427e654 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.html @@ -13,9 +13,9 @@

      Icon

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo/UtrechtLogoExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo/UtrechtLogoExamplesPanel.html index 97cfdb3d..6b90891f 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo/UtrechtLogoExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo/UtrechtLogoExamplesPanel.html @@ -13,9 +13,9 @@

      Logo

      Voorbeeld.

      - + + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo_image/RotterdamLogoImageExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo_image/RotterdamLogoImageExamplesPanel.html index a75f6f96..027495ae 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo_image/RotterdamLogoImageExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/logo_image/RotterdamLogoImageExamplesPanel.html @@ -13,9 +13,9 @@

      Logo Image

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/number_badge/UtrechtNumberBadgeExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/number_badge/UtrechtNumberBadgeExamplesPanel.html index 4f345e96..6dc1449d 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/number_badge/UtrechtNumberBadgeExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/number_badge/UtrechtNumberBadgeExamplesPanel.html @@ -13,9 +13,9 @@

      Number Badge

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html index bf833b46..1739fd4f 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html @@ -13,9 +13,9 @@

      Ordered List

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_body/UtrechtPageBodyExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_body/UtrechtPageBodyExamplesPanel.html index 33dfb3df..5d44179d 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_body/UtrechtPageBodyExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_body/UtrechtPageBodyExamplesPanel.html @@ -13,9 +13,9 @@

      Page Body

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/UtrechtPageFooterExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/UtrechtPageFooterExamplesPanel.html index b74fba26..87e127a3 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/UtrechtPageFooterExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_footer/UtrechtPageFooterExamplesPanel.html @@ -13,9 +13,9 @@

      Page Footer

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/UtrechtPageLayoutExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/UtrechtPageLayoutExamplesPanel.html index a8cba0e4..0b51629e 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/UtrechtPageLayoutExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/page_layout/UtrechtPageLayoutExamplesPanel.html @@ -13,9 +13,9 @@

      Page Layout

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/preserve_data/UtrechtPreserveDataExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/preserve_data/UtrechtPreserveDataExamplesPanel.html index af93592f..a7ff86e8 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/preserve_data/UtrechtPreserveDataExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/preserve_data/UtrechtPreserveDataExamplesPanel.html @@ -13,9 +13,9 @@

      Preserve Data

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/rods-story-canvas.js b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/rods-story-canvas.js new file mode 100644 index 00000000..36979bbd --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/rods-story-canvas.js @@ -0,0 +1,42 @@ +const stylesheet = new CSSStyleSheet(); + +stylesheet.replace(` +.rods-story-canvas { + background-color: white; + border-color: rgb(0 0 0 / 10%); + border-radius: 4px; + border-style: solid; + border-width: 1px; + box-shadow: rgb(0 0 0 / 10%) 0 1px 3px 0; + margin-block-end: 40px; + margin-block-start: 25px; + padding-block-end: 30px; + padding-block-start: 30px; + padding-inline-end: 20px; + padding-inline-start: 20px; + position: relative; +}`); + +class RodsStoryElement extends HTMLElement { + static name = 'rods-story-canvas'; + + static define = (registry = customElements) => registry.define(RodsStoryElement.name, RodsStoryElement); + + constructor() { + super(); + } + + connectedCallback() { + const shadow = this.attachShadow({ mode: 'closed' }); + shadow.adoptedStyleSheets = [stylesheet]; + const template = this.querySelector('template'); + const div = this.ownerDocument.createElement('div'); + div.classList.add('rods-story-canvas'); + shadow.appendChild(div); + if (template) { + div.appendChild(template.content.cloneNode(true)); + } + } +} + +RodsStoryElement.define(); diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/root/UtrechtRootExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/root/UtrechtRootExamplesPanel.html index b16b96a2..31d95fa9 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/root/UtrechtRootExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/root/UtrechtRootExamplesPanel.html @@ -13,9 +13,9 @@

      Root

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/separator/UtrechtSeparatorExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/separator/UtrechtSeparatorExamplesPanel.html index 59ef49b6..aa199776 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/separator/UtrechtSeparatorExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/separator/UtrechtSeparatorExamplesPanel.html @@ -16,9 +16,9 @@

      Separator

      Voorbeeld.

      - + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.html index 549b5f22..9ced1d9a 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.html @@ -13,9 +13,9 @@

      Unordered List

      Voorbeeld.

      - + + From 3d77c8de2a9f9051dec12d43bc4ea7b6783677c8 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 6 Dec 2024 10:27:06 +0100 Subject: [PATCH 40/75] refactor: use Behaviors for all the things --- pnpm-lock.yaml | 8 + wicket/components-wicket/package.json | 1 + wicket/components-wicket/pom.xml | 215 +++++++++++++++++- .../css/WicketComponentsCssReferences.java | 80 ------- .../alert/utrecht/UtrechtAlertBehavior.java | 18 +- .../utrecht/UtrechtBadgeListBehavior.java | 22 ++ .../utrecht/UtrechtBadgeListBorder.java | 10 +- .../body/utrecht/UtrechtBodyBehavior.java | 22 ++ .../body/utrecht/UtrechtBodyBorder.java | 10 +- .../utrecht/UtrechtButtonGroupBehavior.java | 22 ++ .../utrecht/UtrechtButtonGroupBorder.java | 10 +- .../utrecht/UtrechtCheckboxBehavior.java | 27 +++ .../code_block/utrecht/UtrechtCodeBlock.java | 10 +- .../utrecht/UtrechtCodeBlockBehavior.java | 22 ++ .../utrecht/UtrechtColumnLayoutBehavior.java | 22 ++ .../utrecht/UtrechtColumnLayoutBorder.java | 10 +- .../utrecht/UtrechtFormFieldBehavior.java | 22 ++ .../utrecht/UtrechtFormFieldCheckbox.java | 30 +-- .../UtrechtFormFieldDescriptionBehavior.java | 25 ++ .../UtrechtFormFieldErrorMessageBehavior.java | 25 ++ .../form_label/utrecht/UtrechtFormLabel.java | 10 +- .../utrecht/UtrechtFormLabelBehavior.java | 22 ++ .../utrecht/UtrechtHeadingBehavior.java | 24 +- .../utrecht/UtrechtHeadingGroupBehavior.java | 22 ++ .../utrecht/UtrechtHeadingGroupBorder.java | 10 +- .../utrecht/UtrechtHtmlContentBehavior.java | 22 ++ .../utrecht/UtrechtHtmlContentBorder.java | 10 +- .../icon/utrecht/UtrechtIconBehavior.java | 22 ++ .../icon/utrecht/UtrechtIconBorder.java | 10 +- .../logo/utrecht/UtrechtLogoBehavior.java | 22 ++ .../logo/utrecht/UtrechtLogoBorder.java | 10 +- .../utrecht/UtrechtNumberBadgeBehavior.java | 14 +- .../utrecht/UtrechtOrderedListBehavior.java | 14 +- .../UtrechtOrderedListItemBehavior.java | 6 - .../utrecht/UtrechtPageBodyBehavior.java | 22 ++ .../utrecht/UtrechtPageBodyBorder.java | 1 + .../utrecht/UtrechtPageFooterBehavior.java | 22 ++ .../utrecht/UtrechtPageFooterBorder.java | 10 +- .../utrecht/UtrechtPageHeaderBehavior.java | 22 ++ .../utrecht/UtrechtPageHeaderBorder.java | 10 +- .../utrecht/UtrechtPageLayout.java | 4 +- .../utrecht/UtrechtPageLayoutBehavior.java | 22 ++ .../UtrechtPageLayoutBehavior.java-disabled | 36 --- .../utrecht/UtrechtPageLayoutBorder.java | 10 +- .../utrecht/UtrechtPreserveDataBehavior.java | 22 ++ .../utrecht/UtrechtPreserveDataLabel.java | 10 +- .../root/utrecht/UtrechtRootBehavior.java | 22 ++ .../root/utrecht/UtrechtRootBorder.java | 10 +- .../separator/utrecht/UtrechtSeparator.java | 10 +- .../utrecht/UtrechtSeparatorBehavior.java | 22 ++ .../utrecht/UtrechtUnorderedList.java | 10 +- .../utrecht/UtrechtUnorderedListBehavior.java | 14 +- .../nl/rotterdam/wicket/docs/BasePage.java | 30 +-- .../wicket/docs/ESMReferenceHeaderItem.java | 14 ++ .../wicket/docs/rods-story-canvas.js | 3 +- .../wicket/docs/unordered_list/Kind.java | 6 + 56 files changed, 807 insertions(+), 354 deletions(-) create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/checkbox/utrecht/UtrechtCheckboxBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlockBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field/utrecht/UtrechtFormFieldBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_description/utrecht/UtrechtFormFieldDescriptionBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_error_message/utrecht/UtrechtFormFieldErrorMessageBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabelBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java delete mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java-disabled create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparatorBehavior.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ESMReferenceHeaderItem.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/Kind.java diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 37e5f473..58c63a58 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -608,6 +608,9 @@ importers: '@utrecht/button-group-css': specifier: 1.4.0 version: 1.4.0 + '@utrecht/code-block-css': + specifier: 1.4.0 + version: 1.4.0 '@utrecht/column-layout-css': specifier: 1.5.0 version: 1.5.0 @@ -2888,6 +2891,9 @@ packages: react: '18' react-dom: '18' + '@utrecht/code-block-css@1.4.0': + resolution: {integrity: sha512-jZF2CeGvNQfaTAgh8r0tZPQsMrzqcyUFkmWg0pz9Gt66R8y3d3Le3UgfIp5KKN0yFm35kuZvXsjRIUwvPQly/A==} + '@utrecht/column-layout-css@1.5.0': resolution: {integrity: sha512-XnhA/CscHCwy5i35dOORgagmi0Ajhu/56Zr6ghRP42D8r2pcTL5YCYRAJ3qXozeQ+2QbDqzoGsVkYtmcuaJAFg==} @@ -10536,6 +10542,8 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@utrecht/code-block-css@1.4.0': {} + '@utrecht/column-layout-css@1.5.0': {} '@utrecht/combobox-react@0.0.5(@babel/runtime@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': diff --git a/wicket/components-wicket/package.json b/wicket/components-wicket/package.json index 9dd0ba60..5004f98a 100644 --- a/wicket/components-wicket/package.json +++ b/wicket/components-wicket/package.json @@ -26,6 +26,7 @@ "@utrecht/body-css": "1.1.0", "@utrecht/button-css": "1.1.0", "@utrecht/button-group-css": "1.4.0", + "@utrecht/code-block-css": "1.4.0", "@utrecht/column-layout-css": "1.5.0", "@utrecht/custom-checkbox-css": "1.1.1", "@utrecht/form-field-css": "1.5.0", diff --git a/wicket/components-wicket/pom.xml b/wicket/components-wicket/pom.xml index 9d7c9a0e..288daaa4 100644 --- a/wicket/components-wicket/pom.xml +++ b/wicket/components-wicket/pom.xml @@ -86,10 +86,223 @@ @nl-design-system-unstable/voorbeeld-design-tokens/dist/theme.css @nl-design-system-candidate/paragraph-css/dist/paragraph.css - @utrecht/*-css/dist/*.css css + + false + node_modules/ + + @utrecht/alert-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/alert/utrecht + + + false + node_modules/ + + @utrecht/badge-list-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/badge_list/utrecht + + + false + node_modules/ + + @utrecht/body-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/body/utrecht + + + false + node_modules/ + + @utrecht/button-group-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/button_group/utrecht + + + false + node_modules/ + + @utrecht/checkbox-css/dist/*.css + @utrecht/custom-checkbox-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/checkbox/utrecht + + + false + node_modules/ + + @utrecht/code-block-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/code_block/utrecht + + + false + node_modules/ + + @utrecht/column-layout-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/column_layout/utrecht + + + false + node_modules/ + + @utrecht/form-field-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/form_field/utrecht + + + false + node_modules/ + + @utrecht/form-field-description-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/form_field_description/utrecht + + + false + node_modules/ + + @utrecht/form-field-error-message-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/form_field_error_message/utrecht + + + false + node_modules/ + + @utrecht/form-label-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/form_label/utrecht + + + false + node_modules/ + + @utrecht/heading-1-css/dist/*.css + @utrecht/heading-2-css/dist/*.css + @utrecht/heading-3-css/dist/*.css + @utrecht/heading-4-css/dist/*.css + @utrecht/heading-5-css/dist/*.css + @utrecht/heading-6-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/heading/utrecht + + + false + node_modules/ + + @utrecht/heading-group-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/heading_group/utrecht + + + false + node_modules/ + + @utrecht/html-content-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/html_content/utrecht + + + false + node_modules/ + + @utrecht/icon/dist/*.css + + nl/rotterdam/design_system/wicket/components/icon/utrecht + + + false + node_modules/ + + @utrecht/logo-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/logo/utrecht + + + false + node_modules/ + + @utrecht/number-badge-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/number_badge/utrecht + + + false + node_modules/ + + @utrecht/ordered-list-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/ordered_list/utrecht + + + false + node_modules/ + + @utrecht/page-body-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/page_body/utrecht + + + false + node_modules/ + + @utrecht/page-footer-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/page_footer/utrecht + + + false + node_modules/ + + @utrecht/page-header-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/page_header/utrecht + + + false + node_modules/ + + @utrecht/page-layout-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/page_layout/utrecht + + + false + node_modules/ + + @utrecht/preserve-data-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/preserve-data/utrecht + + + false + node_modules/ + + @utrecht/root-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/root/utrecht + + + false + node_modules/ + + @utrecht/separator-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/separator/utrecht + + + false + node_modules/ + + @utrecht/unordered-list-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/unordered_list/utrecht + false src/main/java diff --git a/wicket/components-wicket/src/main/java/css/WicketComponentsCssReferences.java b/wicket/components-wicket/src/main/java/css/WicketComponentsCssReferences.java index 1b60d1a7..f31dce4c 100644 --- a/wicket/components-wicket/src/main/java/css/WicketComponentsCssReferences.java +++ b/wicket/components-wicket/src/main/java/css/WicketComponentsCssReferences.java @@ -6,13 +6,6 @@ public class WicketComponentsCssReferences { - public static final HeaderItem UTRECHT_HEADING_1_HEADER_ITEM = makeUtrechtHeadingCss(1); - public static final HeaderItem UTRECHT_HEADING_2_HEADER_ITEM = makeUtrechtHeadingCss(2); - public static final HeaderItem UTRECHT_HEADING_3_HEADER_ITEM = makeUtrechtHeadingCss(3); - public static final HeaderItem UTRECHT_HEADING_4_HEADER_ITEM = makeUtrechtHeadingCss(4); - public static final HeaderItem UTRECHT_HEADING_5_HEADER_ITEM = makeUtrechtHeadingCss(5); - public static final HeaderItem UTRECHT_HEADING_6_HEADER_ITEM = makeUtrechtHeadingCss(6); - /** * Use this theme if your organization doesn't have its own theme yet (based on Design System tokens). * @@ -21,84 +14,11 @@ public class WicketComponentsCssReferences { public static final HeaderItem THEME_VOORBEELD_GEMEENTE_CSS_HEADER_ITEM = makeHeaderItemForCss( "@nl-design-system-unstable/voorbeeld-design-tokens/dist/theme.css" ); - public static final HeaderItem THEME_CSS_HEADER_ITEM = makeHeaderItemForCss("theme.css"); - public static final HeaderItem ROOT_HEADER_ITEM = makeHeaderItemForCss("@utrecht/root-css/dist/index.css"); - public static final HeaderItem BODY_HEADER_ITEM = makeHeaderItemForCss("@utrecht/body-css/dist/index.css"); - public static final HeaderItem CHECKBOX_HEADER_ITEM = makeHeaderItemForCss("@utrecht/checkbox-css/dist/index.css"); - public static final HeaderItem CUSTOM_CHECKBOX_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/custom-checkbox-css/dist/index.css" - ); - public static final HeaderItem FORM_FIELD_ERROR_MESSAGE_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/form-field-error-message-css/dist/index.css" - ); - public static final HeaderItem FORM_FIELD_DESCRIPTION_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/form-description-css/dist/index.css" - ); - public static final HeaderItem FORM_FIELD_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/form-field-css/dist/index.css" - ); - public static final HeaderItem FORM_LABEL_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/form-label-css/dist/index.css" - ); - public static final HeaderItem PAGE_HEADER_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/page-header-css/dist/index.css" - ); - public static final HeaderItem PAGE_BODY_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/page-body-css/dist/index.css" - ); - public static final HeaderItem PAGE_FOOTER_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/page-footer-css/dist/index.css" - ); - public static final HeaderItem PAGE_LAYOUT_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/page-layout-css/dist/index.css" - ); - public static final HeaderItem HTML_CONTENT_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/html-content-css/dist/index.css" - ); - public static final HeaderItem NUMBER_BADGE_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/number-badge-css/dist/index.css" - ); - public static final HeaderItem SEPARATOR_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/separator-css/dist/index.css" - ); - public static final HeaderItem BUTTON_GROUP_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/button-group-css/dist/index.css" - ); - public static final HeaderItem ORDERED_LIST_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/ordered-list-css/dist/index.css" - ); - public static final HeaderItem UNORDERED_LIST_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/unordered-list-css/dist/index.css" - ); - public static final HeaderItem ALERT_HEADER_ITEM = makeHeaderItemForCss("@utrecht/alert-css/dist/index.css"); - - public static final HeaderItem BADGE_LIST_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/badge-list-css/dist/index.css" - ); - public static final HeaderItem COLUMN_LAYOUT_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/column-layout-css/dist/index.css" - ); - public static final HeaderItem HEADING_GROUP_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/heading-group-css/dist/index.css" - ); - public static final HeaderItem CODE_BLOCK_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/code-block-css/dist/index.css" - ); - public static final HeaderItem LOGO_HEADER_ITEM = makeHeaderItemForCss("@utrecht/logo-css/dist/index.css"); - public static final HeaderItem ICON_HEADER_ITEM = makeHeaderItemForCss("@utrecht/icon/dist/index.css"); - public static final HeaderItem PRESERVE_DATA_HEADER_ITEM = makeHeaderItemForCss( - "@utrecht/preserve-data-css/dist/index.css" - ); - // TODO: support dependencies, and know which dependencies are there private static CssResourceReference makeReference(String file) { return new CssResourceReference(WicketComponentsCssReferences.class, file); } - private static HeaderItem makeUtrechtHeadingCss(int level) { - return makeHeaderItemForCss("@utrecht/heading-" + level + "-css/dist/index.css"); - } - private static HeaderItem makeHeaderItemForCss(String cssName) { return CssHeaderItem.forReference(makeReference(cssName)); } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java index 97736262..8a53f8b6 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java @@ -1,15 +1,15 @@ package nl.rotterdam.design_system.wicket.components.alert.utrecht; import css.HTMLUtil; +import java.util.Map; +import nl.rotterdam.design_system.wicket.components.badge_list.utrecht.UtrechtBadgeListBehavior; import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.head.HeaderItem; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; - -import java.util.Map; - -import static css.WicketComponentsCssReferences.ALERT_HEADER_ITEM; +import org.apache.wicket.request.resource.CssResourceReference; public class UtrechtAlertBehavior extends Behavior { @@ -39,15 +39,17 @@ public static Behavior utrechtAlert(UtrechtAlertType type) { UTRECHT_ALERT_OK ); + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtAlertBehavior.class, "@utrecht/alert-css/dist/index.css") + ); + private final String expectedTagName; private final String className; - private final HeaderItem cssHeaderItem; private final UtrechtAlertType type; private UtrechtAlertBehavior(UtrechtAlertType type) { this.expectedTagName = "div"; this.className = "utrecht-alert"; - this.cssHeaderItem = ALERT_HEADER_ITEM; this.type = type; } @@ -67,6 +69,6 @@ public void onComponentTag(Component component, ComponentTag tag) { @Override public void renderHead(Component component, IHeaderResponse response) { super.renderHead(component, response); - response.render(cssHeaderItem); + response.render(CSS); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBehavior.java new file mode 100644 index 00000000..8ca423fa --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.badge_list.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtBadgeListBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtBadgeListBehavior.class, "@utrecht/badge-list-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.java index ae57463b..dc186304 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBorder.java @@ -1,19 +1,11 @@ package nl.rotterdam.design_system.wicket.components.badge_list.utrecht; -import static css.WicketComponentsCssReferences.BADGE_LIST_HEADER_ITEM; - -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtBadgeListBorder extends Border { public UtrechtBadgeListBorder(String id) { super(id); - } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(BADGE_LIST_HEADER_ITEM); + add(new UtrechtBadgeListBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBehavior.java new file mode 100644 index 00000000..a9e52803 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.body.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtBodyBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtBodyBehavior.class, "@utrecht/body-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.java index 3123a814..c8dc7e94 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBorder.java @@ -1,19 +1,11 @@ package nl.rotterdam.design_system.wicket.components.body.utrecht; -import static css.WicketComponentsCssReferences.BODY_HEADER_ITEM; - -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtBodyBorder extends Border { public UtrechtBodyBorder(String id) { super(id); - } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(BODY_HEADER_ITEM); + add(new UtrechtBodyBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java new file mode 100644 index 00000000..388a63b1 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.button_group.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtButtonGroupBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtButtonGroupBehavior.class, "@utrecht/button-group-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.java index 6d528451..231b0749 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.java @@ -1,19 +1,11 @@ package nl.rotterdam.design_system.wicket.components.button_group.utrecht; -import static css.WicketComponentsCssReferences.BUTTON_GROUP_HEADER_ITEM; - -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtButtonGroupBorder extends Border { public UtrechtButtonGroupBorder(String id) { super(id); - } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(BUTTON_GROUP_HEADER_ITEM); + add(new UtrechtButtonGroupBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/checkbox/utrecht/UtrechtCheckboxBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/checkbox/utrecht/UtrechtCheckboxBehavior.java new file mode 100644 index 00000000..f65f819a --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/checkbox/utrecht/UtrechtCheckboxBehavior.java @@ -0,0 +1,27 @@ +package nl.rotterdam.design_system.wicket.components.checkbox.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtCheckboxBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtCheckboxBehavior.class, "@utrecht/checkbox-css/dist/index.css") + ); + + public static final CssReferenceHeaderItem CSS2 = CssHeaderItem.forReference( + new CssResourceReference(UtrechtCheckboxBehavior.class, "@utrecht/custom-checkbox-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + response.render(CSS2); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.java index 9d210bb2..18e6a196 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.java @@ -1,8 +1,5 @@ package nl.rotterdam.design_system.wicket.components.code_block.utrecht; -import static css.WicketComponentsCssReferences.CODE_BLOCK_HEADER_ITEM; - -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; @@ -16,11 +13,6 @@ public UtrechtCodeBlock(String id, IModel textContent) { super(id); label = new Label(SLOT_ID, textContent); add(label); - } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(CODE_BLOCK_HEADER_ITEM); + add(new UtrechtCodeBlockBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlockBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlockBehavior.java new file mode 100644 index 00000000..15545e08 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlockBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.code_block.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtCodeBlockBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtCodeBlockBehavior.class, "@utrecht/code-block-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBehavior.java new file mode 100644 index 00000000..076da87d --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.column_layout.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtColumnLayoutBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtColumnLayoutBehavior.class, "@utrecht/column-layout-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.java index d5938a97..61cae38f 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBorder.java @@ -1,19 +1,11 @@ package nl.rotterdam.design_system.wicket.components.column_layout.utrecht; -import static css.WicketComponentsCssReferences.COLUMN_LAYOUT_HEADER_ITEM; - -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtColumnLayoutBorder extends Border { public UtrechtColumnLayoutBorder(String id) { super(id); - } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(COLUMN_LAYOUT_HEADER_ITEM); + add(new UtrechtColumnLayoutBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field/utrecht/UtrechtFormFieldBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field/utrecht/UtrechtFormFieldBehavior.java new file mode 100644 index 00000000..2f0b7677 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field/utrecht/UtrechtFormFieldBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.form_field.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtFormFieldBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtFormFieldBehavior.class, "@utrecht/form-field-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java index fe0bb665..fe87be3f 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java @@ -1,16 +1,13 @@ package nl.rotterdam.design_system.wicket.components.form_field_checkbox.utrecht; -import static css.WicketComponentsCssReferences.CHECKBOX_HEADER_ITEM; -import static css.WicketComponentsCssReferences.CUSTOM_CHECKBOX_HEADER_ITEM; -import static css.WicketComponentsCssReferences.FORM_FIELD_DESCRIPTION_HEADER_ITEM; -import static css.WicketComponentsCssReferences.FORM_FIELD_ERROR_MESSAGE_HEADER_ITEM; -import static css.WicketComponentsCssReferences.FORM_FIELD_HEADER_ITEM; -import static css.WicketComponentsCssReferences.FORM_LABEL_HEADER_ITEM; - import css.HTMLUtil; import java.util.UUID; +import nl.rotterdam.design_system.wicket.components.checkbox.utrecht.UtrechtCheckboxBehavior; +import nl.rotterdam.design_system.wicket.components.form_field.utrecht.UtrechtFormFieldBehavior; +import nl.rotterdam.design_system.wicket.components.form_field_description.utrecht.UtrechtFormFieldDescriptionBehavior; +import nl.rotterdam.design_system.wicket.components.form_field_error_message.utrecht.UtrechtFormFieldErrorMessageBehavior; +import nl.rotterdam.design_system.wicket.components.form_label.utrecht.UtrechtFormLabelBehavior; import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.panel.Panel; @@ -53,6 +50,12 @@ public UtrechtFormFieldCheckbox( IModel errorModel ) { super(id); + add(new UtrechtFormFieldBehavior()); + add(new UtrechtFormLabelBehavior()); + add(new UtrechtFormFieldDescriptionBehavior()); + add(new UtrechtFormFieldErrorMessageBehavior()); + add(new UtrechtCheckboxBehavior()); + errorMessageModel = errorModel; // Generate unique IDs `for` and `aria-describedby` ID references @@ -187,17 +190,6 @@ protected void onComponentTag(ComponentTag tag) { ); } - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(CHECKBOX_HEADER_ITEM); - response.render(CUSTOM_CHECKBOX_HEADER_ITEM); - response.render(FORM_FIELD_DESCRIPTION_HEADER_ITEM); - response.render(FORM_FIELD_ERROR_MESSAGE_HEADER_ITEM); - response.render(FORM_FIELD_HEADER_ITEM); - response.render(FORM_LABEL_HEADER_ITEM); - } - public UtrechtFormFieldCheckbox setRequired(boolean required) { checkbox.setRequired(required); return this; diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_description/utrecht/UtrechtFormFieldDescriptionBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_description/utrecht/UtrechtFormFieldDescriptionBehavior.java new file mode 100644 index 00000000..dc66d935 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_description/utrecht/UtrechtFormFieldDescriptionBehavior.java @@ -0,0 +1,25 @@ +package nl.rotterdam.design_system.wicket.components.form_field_description.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtFormFieldDescriptionBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference( + UtrechtFormFieldDescriptionBehavior.class, + "@utrecht/form-field-description-css/dist/index.css" + ) + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_error_message/utrecht/UtrechtFormFieldErrorMessageBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_error_message/utrecht/UtrechtFormFieldErrorMessageBehavior.java new file mode 100644 index 00000000..b7250845 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_error_message/utrecht/UtrechtFormFieldErrorMessageBehavior.java @@ -0,0 +1,25 @@ +package nl.rotterdam.design_system.wicket.components.form_field_error_message.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtFormFieldErrorMessageBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference( + UtrechtFormFieldErrorMessageBehavior.class, + "@utrecht/form-field-error-message-css/dist/index.css" + ) + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java index 17b2a22e..5a97e62a 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabel.java @@ -1,24 +1,16 @@ package nl.rotterdam.design_system.wicket.components.form_label.utrecht; -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.IModel; -import static css.WicketComponentsCssReferences.FORM_LABEL_HEADER_ITEM; - public class UtrechtFormLabel extends Panel { public static final String SLOT_ID = "slot"; public UtrechtFormLabel(String id, IModel textContent) { super(id); + add(new UtrechtFormLabelBehavior()); add(new Label(SLOT_ID, textContent)); } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(FORM_LABEL_HEADER_ITEM); - } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabelBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabelBehavior.java new file mode 100644 index 00000000..63b6f8a2 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabelBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.form_label.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtFormLabelBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtFormLabelBehavior.class, "@utrecht/form-label-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeadingBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeadingBehavior.java index cb0927a5..08b0f1fc 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeadingBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeadingBehavior.java @@ -1,16 +1,36 @@ package nl.rotterdam.design_system.wicket.components.heading.utrecht; -import static css.WicketComponentsCssReferences.*; - import java.util.Map; import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.HeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; public class UtrechtHeadingBehavior extends Behavior { + public static final CssReferenceHeaderItem UTRECHT_HEADING_1_HEADER_ITEM = CssHeaderItem.forReference( + new CssResourceReference(UtrechtHeadingBehavior.class, "@utrecht/heading-1-css/dist/index.css") + ); + public static final CssReferenceHeaderItem UTRECHT_HEADING_2_HEADER_ITEM = CssHeaderItem.forReference( + new CssResourceReference(UtrechtHeadingBehavior.class, "@utrecht/heading-2-css/dist/index.css") + ); + public static final CssReferenceHeaderItem UTRECHT_HEADING_3_HEADER_ITEM = CssHeaderItem.forReference( + new CssResourceReference(UtrechtHeadingBehavior.class, "@utrecht/heading-3-css/dist/index.css") + ); + public static final CssReferenceHeaderItem UTRECHT_HEADING_4_HEADER_ITEM = CssHeaderItem.forReference( + new CssResourceReference(UtrechtHeadingBehavior.class, "@utrecht/heading-4-css/dist/index.css") + ); + public static final CssReferenceHeaderItem UTRECHT_HEADING_5_HEADER_ITEM = CssHeaderItem.forReference( + new CssResourceReference(UtrechtHeadingBehavior.class, "@utrecht/heading-5-css/dist/index.css") + ); + public static final CssReferenceHeaderItem UTRECHT_HEADING_6_HEADER_ITEM = CssHeaderItem.forReference( + new CssResourceReference(UtrechtHeadingBehavior.class, "@utrecht/heading-6-css/dist/index.css") + ); + public static Behavior heading(int level) { Behavior behavior = behaviors.get(level); diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBehavior.java new file mode 100644 index 00000000..ffb82d6a --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.heading_group.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtHeadingGroupBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtHeadingGroupBehavior.class, "@utrecht/heading-group-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.java index cf736e6c..a7916726 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBorder.java @@ -1,19 +1,11 @@ package nl.rotterdam.design_system.wicket.components.heading_group.utrecht; -import static css.WicketComponentsCssReferences.HEADING_GROUP_HEADER_ITEM; - -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtHeadingGroupBorder extends Border { public UtrechtHeadingGroupBorder(String id) { super(id); - } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(HEADING_GROUP_HEADER_ITEM); + add(new UtrechtHeadingGroupBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBehavior.java new file mode 100644 index 00000000..f062dd33 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.html_content.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtHtmlContentBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtHtmlContentBehavior.class, "@utrecht/html-content-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.java index ba92737f..43a77a16 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBorder.java @@ -1,19 +1,11 @@ package nl.rotterdam.design_system.wicket.components.html_content.utrecht; -import static css.WicketComponentsCssReferences.HTML_CONTENT_HEADER_ITEM; - -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtHtmlContentBorder extends Border { public UtrechtHtmlContentBorder(String id) { super(id); - } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(HTML_CONTENT_HEADER_ITEM); + add(new UtrechtHtmlContentBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBehavior.java new file mode 100644 index 00000000..d5c70d2b --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.icon.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtIconBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtIconBehavior.class, "@utrecht/icon/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.java index 3062d13d..345abc99 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBorder.java @@ -1,19 +1,11 @@ package nl.rotterdam.design_system.wicket.components.icon.utrecht; -import static css.WicketComponentsCssReferences.ICON_HEADER_ITEM; - -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtIconBorder extends Border { public UtrechtIconBorder(String id) { super(id); - } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(ICON_HEADER_ITEM); + add(new UtrechtIconBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBehavior.java new file mode 100644 index 00000000..b7b4e190 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.logo.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtLogoBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtLogoBehavior.class, "@utrecht/logo-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.java index 566a3fa1..b924ef6b 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBorder.java @@ -1,19 +1,11 @@ package nl.rotterdam.design_system.wicket.components.logo.utrecht; -import static css.WicketComponentsCssReferences.LOGO_HEADER_ITEM; - -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtLogoBorder extends Border { public UtrechtLogoBorder(String id) { super(id); - } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(LOGO_HEADER_ITEM); + add(new UtrechtLogoBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadgeBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadgeBehavior.java index ab99c503..ce854aa2 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadgeBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadgeBehavior.java @@ -1,23 +1,25 @@ package nl.rotterdam.design_system.wicket.components.number_badge.utrecht; -import static css.WicketComponentsCssReferences.NUMBER_BADGE_HEADER_ITEM; - import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.head.HeaderItem; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; public class UtrechtNumberBadgeBehavior extends Behavior { + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtNumberBadgeBehavior.class, "@utrecht/number-badge-css/dist/index.css") + ); + private final String expectedTagName; private final String className; - private final HeaderItem cssHeaderItem; public UtrechtNumberBadgeBehavior() { this.expectedTagName = "data"; this.className = "utrecht-number-badge"; - this.cssHeaderItem = NUMBER_BADGE_HEADER_ITEM; } @Override @@ -36,6 +38,6 @@ public void onComponentTag(Component component, ComponentTag tag) { @Override public void renderHead(Component component, IHeaderResponse response) { super.renderHead(component, response); - response.render(cssHeaderItem); + response.render(CSS); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListBehavior.java index be2f2e0a..356b2731 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListBehavior.java @@ -1,23 +1,25 @@ package nl.rotterdam.design_system.wicket.components.ordered_list.utrecht; -import static css.WicketComponentsCssReferences.ORDERED_LIST_HEADER_ITEM; - import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.head.HeaderItem; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; public class UtrechtOrderedListBehavior extends Behavior { + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtOrderedListBehavior.class, "@utrecht/ordered-list-css/dist/index.css") + ); + private final String expectedTagName; private final String className; - private final HeaderItem cssHeaderItem; public UtrechtOrderedListBehavior() { this.expectedTagName = "ol"; this.className = "utrecht-ordered-list"; - this.cssHeaderItem = ORDERED_LIST_HEADER_ITEM; } @Override @@ -37,6 +39,6 @@ public void onComponentTag(Component component, ComponentTag tag) { @Override public void renderHead(Component component, IHeaderResponse response) { super.renderHead(component, response); - response.render(cssHeaderItem); + response.render(CSS); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListItemBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListItemBehavior.java index c8effb5a..8d889455 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListItemBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListItemBehavior.java @@ -1,23 +1,17 @@ package nl.rotterdam.design_system.wicket.components.ordered_list.utrecht; -import static css.WicketComponentsCssReferences.ORDERED_LIST_HEADER_ITEM; - import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.head.HeaderItem; -import org.apache.wicket.markup.head.IHeaderResponse; public class UtrechtOrderedListItemBehavior extends Behavior { private final String expectedTagName; private final String className; - private final HeaderItem cssHeaderItem; public UtrechtOrderedListItemBehavior() { this.expectedTagName = "li"; this.className = "utrecht-ordered-list__item utrecht-ordered-list__item"; - this.cssHeaderItem = ORDERED_LIST_HEADER_ITEM; } @Override diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBehavior.java new file mode 100644 index 00000000..a06f29b8 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.page_body.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtPageBodyBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtPageBodyBehavior.class, "@utrecht/page-body-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBorder.java index e953c139..98adfec3 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBorder.java @@ -6,5 +6,6 @@ public class UtrechtPageBodyBorder extends Border { public UtrechtPageBodyBorder(String id) { super(id); + add(new UtrechtPageBodyBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBehavior.java new file mode 100644 index 00000000..a02d6b87 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.page_footer.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtPageFooterBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtPageFooterBehavior.class, "@utrecht/page-footer-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.java index 19615aa9..97846649 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBorder.java @@ -1,19 +1,11 @@ package nl.rotterdam.design_system.wicket.components.page_footer.utrecht; -import static css.WicketComponentsCssReferences.PAGE_FOOTER_HEADER_ITEM; - -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtPageFooterBorder extends Border { public UtrechtPageFooterBorder(String id) { super(id); - } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(PAGE_FOOTER_HEADER_ITEM); + add(new UtrechtPageFooterBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBehavior.java new file mode 100644 index 00000000..6958c1f8 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.page_header.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtPageHeaderBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtPageHeaderBehavior.class, "@utrecht/page-header-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.java index fb3f4608..eb7748b6 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBorder.java @@ -1,19 +1,11 @@ package nl.rotterdam.design_system.wicket.components.page_header.utrecht; -import static css.WicketComponentsCssReferences.PAGE_HEADER_HEADER_ITEM; - -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtPageHeaderBorder extends Border { public UtrechtPageHeaderBorder(String id) { super(id); - } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(PAGE_HEADER_HEADER_ITEM); + add(new UtrechtPageHeaderBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.java index a1a41f44..e9132762 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayout.java @@ -1,7 +1,5 @@ package nl.rotterdam.design_system.wicket.components.page_layout.utrecht; -import static css.WicketComponentsCssReferences.PAGE_LAYOUT_HEADER_ITEM; - import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.panel.Panel; @@ -16,6 +14,6 @@ public UtrechtPageLayout(String id) { @Override public void renderHead(IHeaderResponse response) { super.renderHead(response); - response.render(PAGE_LAYOUT_HEADER_ITEM); + add(new UtrechtPageLayoutBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java new file mode 100644 index 00000000..db0ba894 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.page_layout.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtPageLayoutBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtPageLayoutBehavior.class, "@utrecht/page-layout-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java-disabled b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java-disabled deleted file mode 100644 index c0bacb96..00000000 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java-disabled +++ /dev/null @@ -1,36 +0,0 @@ -package nl.rotterdam.design_system.wicket.components.page_layout.utrecht; - -import static css.WicketComponentsCssReferences.UTRECHT_PAGE_LAYOUT_HEADER_ITEM; - -import java.util.Map; -import org.apache.wicket.Component; -import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.head.HeaderItem; -import org.apache.wicket.markup.head.IHeaderResponse; - -public class UtrechtPageLayoutBehavior extends Behavior { - - private final String className; - private final HeaderItem cssHeaderItem = UTRECHT_PAGE_LAYOUT_HEADER_ITEM; - - private UtrechtPageLayoutBehavior(HeaderItem cssHeaderItem) { - this.className = "utrecht-page-layout"; - this.cssHeaderItem = cssHeaderItem; - } - - @Override - public void onComponentTag(Component component, ComponentTag tag) { - super.onComponentTag(component, tag); - - if (!tag.isClose()) { - tag.append("class", className, " "); - } - } - - @Override - public void renderHead(Component component, IHeaderResponse response) { - super.renderHead(component, response); - response.render(cssHeaderItem); - } -} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.java index cd96776c..264fb45f 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBorder.java @@ -1,19 +1,11 @@ package nl.rotterdam.design_system.wicket.components.page_layout.utrecht; -import static css.WicketComponentsCssReferences.PAGE_LAYOUT_HEADER_ITEM; - -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtPageLayoutBorder extends Border { public UtrechtPageLayoutBorder(String id) { super(id); - } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(PAGE_LAYOUT_HEADER_ITEM); + add(new UtrechtPageLayoutBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataBehavior.java new file mode 100644 index 00000000..4eae7d5e --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.preserve_data.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtPreserveDataBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtPreserveDataBehavior.class, "@utrecht/preserve-data-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataLabel.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataLabel.java index 2b2de167..7b4275a2 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataLabel.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataLabel.java @@ -1,10 +1,7 @@ package nl.rotterdam.design_system.wicket.components.preserve_data.utrecht; -import static css.WicketComponentsCssReferences.PRESERVE_DATA_HEADER_ITEM; - import org.apache.wicket.AttributeModifier; import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.model.IModel; @@ -17,6 +14,7 @@ public class UtrechtPreserveDataLabel extends Label { public UtrechtPreserveDataLabel(String id, IModel model) { super(id, model); + add(new UtrechtPreserveDataBehavior()); } @Override @@ -31,10 +29,4 @@ protected void onInitialize() { add(AttributeModifier.replace("translate", "no")); add(AttributeModifier.append("class", "utrecht-preserve-data")); } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(PRESERVE_DATA_HEADER_ITEM); - } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBehavior.java new file mode 100644 index 00000000..322684ec --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.root.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtRootBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtRootBehavior.class, "@utrecht/root-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.java index 553f6307..08a0bc48 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBorder.java @@ -1,19 +1,11 @@ package nl.rotterdam.design_system.wicket.components.root.utrecht; -import static css.WicketComponentsCssReferences.ROOT_HEADER_ITEM; - -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.border.Border; public class UtrechtRootBorder extends Border { public UtrechtRootBorder(String id) { super(id); - } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(ROOT_HEADER_ITEM); + add(new UtrechtRootBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.java index 424cd496..28f13572 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparator.java @@ -1,15 +1,13 @@ package nl.rotterdam.design_system.wicket.components.separator.utrecht; -import static css.WicketComponentsCssReferences.SEPARATOR_HEADER_ITEM; - import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.WebComponent; public class UtrechtSeparator extends WebComponent { public UtrechtSeparator(String id) { super(id); + add(new UtrechtSeparatorBehavior()); } @Override @@ -18,10 +16,4 @@ protected void onComponentTag(ComponentTag tag) { tag.setName("hr"); tag.put("class", "utrecht-separator"); } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(SEPARATOR_HEADER_ITEM); - } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparatorBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparatorBehavior.java new file mode 100644 index 00000000..96ffa36d --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparatorBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.separator.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtSeparatorBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtSeparatorBehavior.class, "@utrecht/separator-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.java index 5ec1781b..7d1e429c 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedList.java @@ -1,19 +1,11 @@ package nl.rotterdam.design_system.wicket.components.unordered_list.utrecht; -import static css.WicketComponentsCssReferences.UNORDERED_LIST_HEADER_ITEM; - -import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.panel.Panel; public class UtrechtUnorderedList extends Panel { public UtrechtUnorderedList(String id) { super(id); - } - - @Override - public void renderHead(IHeaderResponse response) { - super.renderHead(response); - response.render(UNORDERED_LIST_HEADER_ITEM); + add(new UtrechtUnorderedListBehavior()); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListBehavior.java index 49ec537c..879463a7 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListBehavior.java @@ -1,23 +1,25 @@ package nl.rotterdam.design_system.wicket.components.unordered_list.utrecht; -import static css.WicketComponentsCssReferences.UNORDERED_LIST_HEADER_ITEM; - import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.head.HeaderItem; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; public class UtrechtUnorderedListBehavior extends Behavior { + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtUnorderedListBehavior.class, "@utrecht/unordered-list-css/dist/index.css") + ); + private final String expectedTagName; private final String className; - private final HeaderItem cssHeaderItem; public UtrechtUnorderedListBehavior() { this.expectedTagName = "ul"; this.className = "utrecht-unordered-list"; - this.cssHeaderItem = UNORDERED_LIST_HEADER_ITEM; } @Override @@ -37,6 +39,6 @@ public void onComponentTag(Component component, ComponentTag tag) { @Override public void renderHead(Component component, IHeaderResponse response) { super.renderHead(component, response); - response.render(cssHeaderItem); + response.render(CSS); } } diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java index c5a3dfa2..79a9a7d9 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java @@ -1,31 +1,7 @@ package nl.rotterdam.wicket.docs; import static css.DesignTokensWicketCssReference.THEME_ROTTERDAM_RODS_CSS_HEADER_ITEM; -import static css.WicketComponentsCssReferences.ALERT_HEADER_ITEM; -import static css.WicketComponentsCssReferences.BADGE_LIST_HEADER_ITEM; -import static css.WicketComponentsCssReferences.BODY_HEADER_ITEM; -import static css.WicketComponentsCssReferences.BUTTON_GROUP_HEADER_ITEM; -import static css.WicketComponentsCssReferences.CHECKBOX_HEADER_ITEM; -import static css.WicketComponentsCssReferences.COLUMN_LAYOUT_HEADER_ITEM; -import static css.WicketComponentsCssReferences.CUSTOM_CHECKBOX_HEADER_ITEM; -import static css.WicketComponentsCssReferences.FORM_FIELD_DESCRIPTION_HEADER_ITEM; -import static css.WicketComponentsCssReferences.FORM_FIELD_ERROR_MESSAGE_HEADER_ITEM; -import static css.WicketComponentsCssReferences.FORM_FIELD_HEADER_ITEM; -import static css.WicketComponentsCssReferences.FORM_LABEL_HEADER_ITEM; -import static css.WicketComponentsCssReferences.HEADING_GROUP_HEADER_ITEM; -import static css.WicketComponentsCssReferences.HTML_CONTENT_HEADER_ITEM; -import static css.WicketComponentsCssReferences.ICON_HEADER_ITEM; -import static css.WicketComponentsCssReferences.LOGO_HEADER_ITEM; -import static css.WicketComponentsCssReferences.NUMBER_BADGE_HEADER_ITEM; -import static css.WicketComponentsCssReferences.ORDERED_LIST_HEADER_ITEM; -import static css.WicketComponentsCssReferences.PAGE_BODY_HEADER_ITEM; -import static css.WicketComponentsCssReferences.PAGE_FOOTER_HEADER_ITEM; -import static css.WicketComponentsCssReferences.PAGE_HEADER_HEADER_ITEM; -import static css.WicketComponentsCssReferences.PAGE_LAYOUT_HEADER_ITEM; -import static css.WicketComponentsCssReferences.ROOT_HEADER_ITEM; -import static css.WicketComponentsCssReferences.SEPARATOR_HEADER_ITEM; import static css.WicketComponentsCssReferences.THEME_VOORBEELD_GEMEENTE_CSS_HEADER_ITEM; -import static css.WicketComponentsCssReferences.UNORDERED_LIST_HEADER_ITEM; import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; @@ -40,7 +16,9 @@ public abstract class BasePage extends WebPage { new CssResourceReference(BasePage.class, "docs.css") ); - public BasePage() {} + public BasePage() { + super(); + } @Override public void renderHead(IHeaderResponse response) { @@ -49,7 +27,5 @@ public void renderHead(IHeaderResponse response) { response.render(THEME_ROTTERDAM_RODS_CSS_HEADER_ITEM); response.render(THEME_VOORBEELD_GEMEENTE_CSS_HEADER_ITEM); response.render(DOCS_CSS_HEADER_ITEM); - response.render(ROOT_HEADER_ITEM); - response.render(BODY_HEADER_ITEM); } } diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ESMReferenceHeaderItem.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ESMReferenceHeaderItem.java new file mode 100644 index 00000000..942cb739 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ESMReferenceHeaderItem.java @@ -0,0 +1,14 @@ +package nl.rotterdam.wicket.docs; + +import org.apache.wicket.markup.head.JavaScriptReferenceHeaderItem; +import org.apache.wicket.markup.head.JavaScriptReferenceType; +import org.apache.wicket.request.mapper.parameter.PageParameters; +import org.apache.wicket.request.resource.ResourceReference; + +public class ESMReferenceHeaderItem extends JavaScriptReferenceHeaderItem { + + public ESMReferenceHeaderItem(ResourceReference reference, PageParameters pageParameters, String id) { + super(reference, pageParameters, id); + this.setType(JavaScriptReferenceType.MODULE); + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/rods-story-canvas.js b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/rods-story-canvas.js index 36979bbd..98d2ea6b 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/rods-story-canvas.js +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/rods-story-canvas.js @@ -31,10 +31,11 @@ class RodsStoryElement extends HTMLElement { shadow.adoptedStyleSheets = [stylesheet]; const template = this.querySelector('template'); const div = this.ownerDocument.createElement('div'); + div.appendChild(this.ownerDocument.createElement('slot')); div.classList.add('rods-story-canvas'); shadow.appendChild(div); if (template) { - div.appendChild(template.content.cloneNode(true)); + this.appendChild(template.content.cloneNode(true)); } } } diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/Kind.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/Kind.java new file mode 100644 index 00000000..e92da387 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/Kind.java @@ -0,0 +1,6 @@ +package nl.rotterdam.wicket.docs.unordered_list; + +import java.io.Serializable; + +public record Kind(String naam, int geboortejaar, long administratienummer) implements Serializable { +} From acb40562ef71f21b60070fa90ce9274d31b7e243 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Fri, 6 Dec 2024 15:45:35 +0100 Subject: [PATCH 41/75] Child labels don't have to be fields --- .../components/code_block/utrecht/UtrechtCodeBlock.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.java index 18e6a196..b966b4e8 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.java @@ -7,12 +7,10 @@ public class UtrechtCodeBlock extends Panel { public static final String SLOT_ID = "slot"; - private final Label label; public UtrechtCodeBlock(String id, IModel textContent) { super(id); - label = new Label(SLOT_ID, textContent); - add(label); + add(new Label(SLOT_ID, textContent)); add(new UtrechtCodeBlockBehavior()); } } From 5dd9134154627d224e75636dabb12fce940f5ae1 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Fri, 6 Dec 2024 15:57:43 +0100 Subject: [PATCH 42/75] Centralize logic for creating css header items --- .../components/CssReferenceHeaderItems.java | 11 ++++++ .../alert/utrecht/UtrechtAlertBehavior.java | 13 +++---- .../utrecht/UtrechtBadgeListBehavior.java | 8 ++-- .../body/utrecht/UtrechtBodyBehavior.java | 9 ++--- .../utrecht/UtrechtButtonGroupBehavior.java | 9 ++--- .../utrecht/UtrechtCodeBlockBehavior.java | 9 ++--- .../utrecht/UtrechtColumnLayoutBehavior.java | 9 ++--- .../utrecht/UtrechtFormLabelBehavior.java | 9 ++--- .../utrecht/UtrechtHeadingBehavior.java | 37 ++++++++----------- .../utrecht/UtrechtHeadingGroupBehavior.java | 9 ++--- .../utrecht/UtrechtHtmlContentBehavior.java | 9 ++--- .../icon/utrecht/UtrechtIconBehavior.java | 9 ++--- .../logo/utrecht/UtrechtLogoBehavior.java | 9 ++--- .../utrecht/UtrechtNumberBadgeBehavior.java | 9 ++--- .../utrecht/UtrechtOrderedListBehavior.java | 9 ++--- .../utrecht/UtrechtPageBodyBehavior.java | 9 ++--- .../utrecht/UtrechtPageFooterBehavior.java | 9 ++--- .../utrecht/UtrechtPageHeaderBehavior.java | 9 ++--- .../utrecht/UtrechtPageLayoutBehavior.java | 9 ++--- .../utrecht/UtrechtPreserveDataBehavior.java | 9 ++--- .../root/utrecht/UtrechtRootBehavior.java | 9 ++--- .../utrecht/UtrechtSeparatorBehavior.java | 9 ++--- .../utrecht/UtrechtUnorderedListBehavior.java | 9 ++--- 23 files changed, 112 insertions(+), 128 deletions(-) create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/CssReferenceHeaderItems.java diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/CssReferenceHeaderItems.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/CssReferenceHeaderItems.java new file mode 100644 index 00000000..01f24f88 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/CssReferenceHeaderItems.java @@ -0,0 +1,11 @@ +package nl.rotterdam.design_system.wicket.components; + +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.request.resource.CssResourceReference; + +public class CssReferenceHeaderItems { + + public static CssReferenceHeaderItem cssReferenceHeaderItem(Class scope, String name) { + return CssReferenceHeaderItem.forReference(new CssResourceReference(scope, name)); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java index 8a53f8b6..479f54cf 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java @@ -1,15 +1,15 @@ package nl.rotterdam.design_system.wicket.components.alert.utrecht; import css.HTMLUtil; -import java.util.Map; -import nl.rotterdam.design_system.wicket.components.badge_list.utrecht.UtrechtBadgeListBehavior; import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import java.util.Map; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtAlertBehavior extends Behavior { @@ -39,9 +39,8 @@ public static Behavior utrechtAlert(UtrechtAlertType type) { UTRECHT_ALERT_OK ); - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtAlertBehavior.class, "@utrecht/alert-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem(UtrechtAlertBehavior.class, "@utrecht/alert-css/dist/index.css"); + private final String expectedTagName; private final String className; diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBehavior.java index 8ca423fa..b5dcb27d 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBehavior.java @@ -2,16 +2,14 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtBadgeListBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtBadgeListBehavior.class, "@utrecht/badge-list-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem(UtrechtBadgeListBehavior.class, "@utrecht/badge-list-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBehavior.java index a9e52803..6de4e4c0 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/body/utrecht/UtrechtBodyBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtBodyBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtBodyBehavior.class, "@utrecht/body-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtBodyBehavior.class, "@utrecht/body-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java index 388a63b1..1459901c 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtButtonGroupBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtButtonGroupBehavior.class, "@utrecht/button-group-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtButtonGroupBehavior.class, "@utrecht/button-group-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlockBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlockBehavior.java index 15545e08..023b6323 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlockBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlockBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtCodeBlockBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtCodeBlockBehavior.class, "@utrecht/code-block-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtCodeBlockBehavior.class, "@utrecht/code-block-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBehavior.java index 076da87d..e54f502a 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/column_layout/utrecht/UtrechtColumnLayoutBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtColumnLayoutBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtColumnLayoutBehavior.class, "@utrecht/column-layout-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtColumnLayoutBehavior.class, "@utrecht/column-layout-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabelBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabelBehavior.java index 63b6f8a2..48d1cdee 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabelBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_label/utrecht/UtrechtFormLabelBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtFormLabelBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtFormLabelBehavior.class, "@utrecht/form-label-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtFormLabelBehavior.class, "@utrecht/form-label-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeadingBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeadingBehavior.java index 08b0f1fc..cf246ce9 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeadingBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading/utrecht/UtrechtHeadingBehavior.java @@ -1,35 +1,30 @@ package nl.rotterdam.design_system.wicket.components.heading.utrecht; -import java.util.Map; import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.HeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import java.util.Map; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtHeadingBehavior extends Behavior { - public static final CssReferenceHeaderItem UTRECHT_HEADING_1_HEADER_ITEM = CssHeaderItem.forReference( - new CssResourceReference(UtrechtHeadingBehavior.class, "@utrecht/heading-1-css/dist/index.css") - ); - public static final CssReferenceHeaderItem UTRECHT_HEADING_2_HEADER_ITEM = CssHeaderItem.forReference( - new CssResourceReference(UtrechtHeadingBehavior.class, "@utrecht/heading-2-css/dist/index.css") - ); - public static final CssReferenceHeaderItem UTRECHT_HEADING_3_HEADER_ITEM = CssHeaderItem.forReference( - new CssResourceReference(UtrechtHeadingBehavior.class, "@utrecht/heading-3-css/dist/index.css") - ); - public static final CssReferenceHeaderItem UTRECHT_HEADING_4_HEADER_ITEM = CssHeaderItem.forReference( - new CssResourceReference(UtrechtHeadingBehavior.class, "@utrecht/heading-4-css/dist/index.css") - ); - public static final CssReferenceHeaderItem UTRECHT_HEADING_5_HEADER_ITEM = CssHeaderItem.forReference( - new CssResourceReference(UtrechtHeadingBehavior.class, "@utrecht/heading-5-css/dist/index.css") - ); - public static final CssReferenceHeaderItem UTRECHT_HEADING_6_HEADER_ITEM = CssHeaderItem.forReference( - new CssResourceReference(UtrechtHeadingBehavior.class, "@utrecht/heading-6-css/dist/index.css") - ); + public static final CssReferenceHeaderItem UTRECHT_HEADING_1_HEADER_ITEM = + cssReferenceHeaderItem(UtrechtHeadingBehavior.class, "@utrecht/heading-1-css/dist/index.css"); + public static final CssReferenceHeaderItem UTRECHT_HEADING_2_HEADER_ITEM = + cssReferenceHeaderItem(UtrechtHeadingBehavior.class, "@utrecht/heading-2-css/dist/index.css"); + public static final CssReferenceHeaderItem UTRECHT_HEADING_3_HEADER_ITEM = + cssReferenceHeaderItem(UtrechtHeadingBehavior.class, "@utrecht/heading-3-css/dist/index.css"); + public static final CssReferenceHeaderItem UTRECHT_HEADING_4_HEADER_ITEM = + cssReferenceHeaderItem(UtrechtHeadingBehavior.class, "@utrecht/heading-4-css/dist/index.css"); + public static final CssReferenceHeaderItem UTRECHT_HEADING_5_HEADER_ITEM = + cssReferenceHeaderItem(UtrechtHeadingBehavior.class, "@utrecht/heading-5-css/dist/index.css"); + public static final CssReferenceHeaderItem UTRECHT_HEADING_6_HEADER_ITEM = + cssReferenceHeaderItem(UtrechtHeadingBehavior.class, "@utrecht/heading-6-css/dist/index.css"); public static Behavior heading(int level) { Behavior behavior = behaviors.get(level); diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBehavior.java index ffb82d6a..9a5c31e1 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/heading_group/utrecht/UtrechtHeadingGroupBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtHeadingGroupBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtHeadingGroupBehavior.class, "@utrecht/heading-group-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtHeadingGroupBehavior.class, "@utrecht/heading-group-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBehavior.java index f062dd33..558a056d 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/html_content/utrecht/UtrechtHtmlContentBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtHtmlContentBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtHtmlContentBehavior.class, "@utrecht/html-content-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtHtmlContentBehavior.class, "@utrecht/html-content-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBehavior.java index d5c70d2b..e0231919 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/utrecht/UtrechtIconBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtIconBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtIconBehavior.class, "@utrecht/icon/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtIconBehavior.class, "@utrecht/icon/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBehavior.java index b7b4e190..7a1e4b49 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/logo/utrecht/UtrechtLogoBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtLogoBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtLogoBehavior.class, "@utrecht/logo-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtLogoBehavior.class, "@utrecht/logo-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadgeBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadgeBehavior.java index ce854aa2..bb961c3a 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadgeBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/number_badge/utrecht/UtrechtNumberBadgeBehavior.java @@ -3,16 +3,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtNumberBadgeBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtNumberBadgeBehavior.class, "@utrecht/number-badge-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtNumberBadgeBehavior.class, "@utrecht/number-badge-css/dist/index.css"); private final String expectedTagName; private final String className; diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListBehavior.java index 356b2731..67a1fd59 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/ordered_list/utrecht/UtrechtOrderedListBehavior.java @@ -3,16 +3,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtOrderedListBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtOrderedListBehavior.class, "@utrecht/ordered-list-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtOrderedListBehavior.class, "@utrecht/ordered-list-css/dist/index.css"); private final String expectedTagName; private final String className; diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBehavior.java index a06f29b8..b1568930 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_body/utrecht/UtrechtPageBodyBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtPageBodyBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtPageBodyBehavior.class, "@utrecht/page-body-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtPageBodyBehavior.class, "@utrecht/page-body-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBehavior.java index a02d6b87..e8562519 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_footer/utrecht/UtrechtPageFooterBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtPageFooterBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtPageFooterBehavior.class, "@utrecht/page-footer-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtPageFooterBehavior.class, "@utrecht/page-footer-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBehavior.java index 6958c1f8..7a45e582 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_header/utrecht/UtrechtPageHeaderBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtPageHeaderBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtPageHeaderBehavior.class, "@utrecht/page-header-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtPageHeaderBehavior.class, "@utrecht/page-header-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java index db0ba894..222a62de 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/page_layout/utrecht/UtrechtPageLayoutBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtPageLayoutBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtPageLayoutBehavior.class, "@utrecht/page-layout-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtPageLayoutBehavior.class, "@utrecht/page-layout-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataBehavior.java index 4eae7d5e..7b005d42 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/preserve_data/utrecht/UtrechtPreserveDataBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtPreserveDataBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtPreserveDataBehavior.class, "@utrecht/preserve-data-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtPreserveDataBehavior.class, "@utrecht/preserve-data-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBehavior.java index 322684ec..ef759f24 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/root/utrecht/UtrechtRootBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtRootBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtRootBehavior.class, "@utrecht/root-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtRootBehavior.class, "@utrecht/root-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparatorBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparatorBehavior.java index 96ffa36d..734cef77 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparatorBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/separator/utrecht/UtrechtSeparatorBehavior.java @@ -2,16 +2,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtSeparatorBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtSeparatorBehavior.class, "@utrecht/separator-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtSeparatorBehavior.class, "@utrecht/separator-css/dist/index.css"); @Override public void renderHead(Component component, IHeaderResponse response) { diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListBehavior.java index 879463a7..5021e497 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListBehavior.java @@ -3,16 +3,15 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import org.apache.wicket.request.resource.CssResourceReference; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; public class UtrechtUnorderedListBehavior extends Behavior { - public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( - new CssResourceReference(UtrechtUnorderedListBehavior.class, "@utrecht/unordered-list-css/dist/index.css") - ); + public static final CssReferenceHeaderItem CSS = + cssReferenceHeaderItem(UtrechtUnorderedListBehavior.class, "@utrecht/unordered-list-css/dist/index.css"); private final String expectedTagName; private final String className; From 71ead76b007f1f47f010eab3bdb8bc7784158152 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Fri, 6 Dec 2024 16:09:57 +0100 Subject: [PATCH 43/75] Do not use container div to make adding classes and attributes possible when using the component --- .../alert/utrecht/UtrechtAlertBehavior.java | 12 +++++------- .../utrecht/UtrechtButtonGroupBehavior.java | 17 +++++++++++++++++ .../utrecht/UtrechtButtonGroupBorder.html | 2 -- .../rotterdam/wicket/docs/ComponentsPage.html | 2 +- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java index 479f54cf..0dcf8ffa 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java @@ -41,14 +41,12 @@ public static Behavior utrechtAlert(UtrechtAlertType type) { public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem(UtrechtAlertBehavior.class, "@utrecht/alert-css/dist/index.css"); + private static final String EXPECTED_TAG_NAME = "div"; + private static final String CLASS_NAME = "utrecht-alert"; - private final String expectedTagName; - private final String className; private final UtrechtAlertType type; private UtrechtAlertBehavior(UtrechtAlertType type) { - this.expectedTagName = "div"; - this.className = "utrecht-alert"; this.type = type; } @@ -56,12 +54,12 @@ private UtrechtAlertBehavior(UtrechtAlertType type) { public void onComponentTag(Component component, ComponentTag tag) { super.onComponentTag(component, tag); - if (!expectedTagName.equals(tag.getName())) { - tag.setName(expectedTagName); + if (!EXPECTED_TAG_NAME.equals(tag.getName())) { + tag.setName(EXPECTED_TAG_NAME); } if (!tag.isClose()) { - tag.put("class", HTMLUtil.className(this.className, "utrecht-alert utrecht-alert--" + type.type)); + tag.put("class", HTMLUtil.className(CLASS_NAME, "utrecht-alert utrecht-alert--" + type.type)); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java index 1459901c..76d43222 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java @@ -2,6 +2,7 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; @@ -12,10 +13,26 @@ public class UtrechtButtonGroupBehavior extends Behavior { public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem(UtrechtButtonGroupBehavior.class, "@utrecht/button-group-css/dist/index.css"); + private static final String EXPECTED_TAG_NAME = "div"; + private static final String CLASS_NAME = "utrecht-button-group"; + @Override public void renderHead(Component component, IHeaderResponse response) { super.renderHead(component, response); response.render(CSS); } + + @Override + public void onComponentTag(Component component, ComponentTag tag) { + super.onComponentTag(component, tag); + + if (!EXPECTED_TAG_NAME.equals(tag.getName())) { + tag.setName(EXPECTED_TAG_NAME); + } + + if (!tag.isClose()) { + tag.put("class", CLASS_NAME); + } + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.html index 80c5d9c4..c912e562 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.html +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBorder.html @@ -2,8 +2,6 @@ -
      -
      diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index c488312b..1944ecca 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -64,7 +64,7 @@

      Hello world

      --> - Buttons go here +
      Buttons go here
      From 7fed86c65c199fc32d60630a89aaf8c22e2b7adb Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Fri, 6 Dec 2024 16:10:32 +0100 Subject: [PATCH 44/75] No warnings --- .../nl/rotterdam/wicket/nl_design/docs/Start.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/Start.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/Start.java index 5bdab64d..de36cf77 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/Start.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/Start.java @@ -1,19 +1,25 @@ package nl.rotterdam.wicket.nl_design.docs; -import static nl.rotterdam.wicket.nl_design.docs.ModuleRootResolver.resolveModuleRootPath; - -import java.time.Duration; +import nl.rotterdam.wicket.nl_design.docs.storybook_generator.GenerateMarkdownAndStorybookExamplesMain; import org.eclipse.jetty.ee10.webapp.WebAppContext; import org.eclipse.jetty.server.HttpConfiguration; import org.eclipse.jetty.server.HttpConnectionFactory; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; +import java.time.Duration; + +import static nl.rotterdam.wicket.nl_design.docs.ModuleRootResolver.resolveModuleRootPath; + public class Start { public static final int PORT = 8945; + @SuppressWarnings({"CallToPrintStackTrace", "ResultOfMethodCallIgnored"}) public static void main(final String[] args) { + + GenerateMarkdownAndStorybookExamplesMain.main(args); + final int timeout = (int) Duration.ofHours(1L).toMillis(); final Server server = new Server(); From 90adcd1d7430d0baa8c41013a5283d910276706f Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Fri, 6 Dec 2024 16:15:59 +0100 Subject: [PATCH 45/75] Base class for behaviors to make it easier to add new components --- .../alert/utrecht/UtrechtAlertBehavior.java | 22 ++------------- .../base/TagNameClassComponentBehavior.java | 28 +++++++++++++++++++ .../utrecht/UtrechtButtonGroupBehavior.java | 22 ++++----------- 3 files changed, 37 insertions(+), 35 deletions(-) create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java index 0dcf8ffa..6ed0c9b1 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java @@ -1,9 +1,8 @@ package nl.rotterdam.design_system.wicket.components.alert.utrecht; -import css.HTMLUtil; +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; @@ -11,7 +10,7 @@ import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; -public class UtrechtAlertBehavior extends Behavior { +public class UtrechtAlertBehavior extends TagNameClassComponentBehavior { public static Behavior utrechtAlert(UtrechtAlertType type) { Behavior behavior = types.get(type); @@ -44,23 +43,8 @@ public static Behavior utrechtAlert(UtrechtAlertType type) { private static final String EXPECTED_TAG_NAME = "div"; private static final String CLASS_NAME = "utrecht-alert"; - private final UtrechtAlertType type; - private UtrechtAlertBehavior(UtrechtAlertType type) { - this.type = type; - } - - @Override - public void onComponentTag(Component component, ComponentTag tag) { - super.onComponentTag(component, tag); - - if (!EXPECTED_TAG_NAME.equals(tag.getName())) { - tag.setName(EXPECTED_TAG_NAME); - } - - if (!tag.isClose()) { - tag.put("class", HTMLUtil.className(CLASS_NAME, "utrecht-alert utrecht-alert--" + type.type)); - } + super(EXPECTED_TAG_NAME, CLASS_NAME, "utrecht-alert--" + type.type); } @Override diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java new file mode 100644 index 00000000..1d1b14e4 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java @@ -0,0 +1,28 @@ +package nl.rotterdam.design_system.wicket.components.base; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.ComponentTag; + +public abstract class TagNameClassComponentBehavior extends Behavior { + + private final String expectedTagName; + private final String[] classNames; + + public TagNameClassComponentBehavior(String expectedTagName, String... classNames) { + this.expectedTagName = expectedTagName; + this.classNames = classNames; + } + + public void onComponentTag(Component component, ComponentTag tag) { + super.onComponentTag(component, tag); + + if (!expectedTagName.equals(tag.getName())) { + tag.setName(expectedTagName); + } + + if (!tag.isClose()) { + tag.put("class", String.join(" ", classNames)); + } + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java index 76d43222..c170888c 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java @@ -1,14 +1,13 @@ package nl.rotterdam.design_system.wicket.components.button_group.utrecht; +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; import org.apache.wicket.Component; -import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; -public class UtrechtButtonGroupBehavior extends Behavior { +public class UtrechtButtonGroupBehavior extends TagNameClassComponentBehavior { public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem(UtrechtButtonGroupBehavior.class, "@utrecht/button-group-css/dist/index.css"); @@ -16,23 +15,14 @@ public class UtrechtButtonGroupBehavior extends Behavior { private static final String EXPECTED_TAG_NAME = "div"; private static final String CLASS_NAME = "utrecht-button-group"; + public UtrechtButtonGroupBehavior() { + super(EXPECTED_TAG_NAME, CLASS_NAME); + } + @Override public void renderHead(Component component, IHeaderResponse response) { super.renderHead(component, response); response.render(CSS); } - - @Override - public void onComponentTag(Component component, ComponentTag tag) { - super.onComponentTag(component, tag); - - if (!EXPECTED_TAG_NAME.equals(tag.getName())) { - tag.setName(EXPECTED_TAG_NAME); - } - - if (!tag.isClose()) { - tag.put("class", CLASS_NAME); - } - } } From 1ba017d4883fba6a8820071723466e0c28fd82f2 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Fri, 6 Dec 2024 16:21:41 +0100 Subject: [PATCH 46/75] Keep existing classes --- .../wicket/components/base/TagNameClassComponentBehavior.java | 2 +- .../java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java index 1d1b14e4..082aa176 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java @@ -22,7 +22,7 @@ public void onComponentTag(Component component, ComponentTag tag) { } if (!tag.isClose()) { - tag.put("class", String.join(" ", classNames)); + tag.append("class", String.join(" ", classNames), " "); } } } diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.html index c78dfc96..31adb0a7 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/alert/AlertExamplesPanel.html @@ -15,7 +15,7 @@

      Alert Alert

      From 32d411d38152e7aa2ba3098a4d1eba1b98dce289 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 6 Dec 2024 16:36:11 +0100 Subject: [PATCH 47/75] feat: add Form Field Textbox component --- wicket/components-wicket/pom.xml | 8 + .../utrecht/UtrechtFormFieldTextbox.html | 11 + .../utrecht/UtrechtFormFieldTextbox.java | 196 ++++++++++++++++++ .../utrecht/UtrechtTextboxBehavior.java | 22 ++ .../rotterdam/wicket/docs/ComponentsPage.html | 1 + .../rotterdam/wicket/docs/ComponentsPage.java | 3 + .../UtrechtFormFieldTextboxExamplesPanel.html | 43 ++++ .../UtrechtFormFieldTextboxExamplesPanel.java | 64 ++++++ 8 files changed, 348 insertions(+) create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_textbox/utrecht/UtrechtFormFieldTextbox.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_textbox/utrecht/UtrechtFormFieldTextbox.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/textbox/utrecht/UtrechtTextboxBehavior.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_textbox/UtrechtFormFieldTextboxExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_textbox/UtrechtFormFieldTextboxExamplesPanel.java diff --git a/wicket/components-wicket/pom.xml b/wicket/components-wicket/pom.xml index 288daaa4..0c175302 100644 --- a/wicket/components-wicket/pom.xml +++ b/wicket/components-wicket/pom.xml @@ -295,6 +295,14 @@ nl/rotterdam/design_system/wicket/components/separator/utrecht
      + + false + node_modules/ + + @utrecht/textbox-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/textbox/utrecht + false node_modules/ diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_textbox/utrecht/UtrechtFormFieldTextbox.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_textbox/utrecht/UtrechtFormFieldTextbox.html new file mode 100644 index 00000000..34a360b0 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_textbox/utrecht/UtrechtFormFieldTextbox.html @@ -0,0 +1,11 @@ + +
      +
      + + + +
      +
      +
      +
      +
      diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_textbox/utrecht/UtrechtFormFieldTextbox.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_textbox/utrecht/UtrechtFormFieldTextbox.java new file mode 100644 index 00000000..b37205a3 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_textbox/utrecht/UtrechtFormFieldTextbox.java @@ -0,0 +1,196 @@ +package nl.rotterdam.design_system.wicket.components.form_field_textbox.utrecht; + +import css.HTMLUtil; +import java.util.UUID; +import nl.rotterdam.design_system.wicket.components.form_field.utrecht.UtrechtFormFieldBehavior; +import nl.rotterdam.design_system.wicket.components.form_field_description.utrecht.UtrechtFormFieldDescriptionBehavior; +import nl.rotterdam.design_system.wicket.components.form_field_error_message.utrecht.UtrechtFormFieldErrorMessageBehavior; +import nl.rotterdam.design_system.wicket.components.form_label.utrecht.UtrechtFormLabelBehavior; +import nl.rotterdam.design_system.wicket.components.textbox.utrecht.UtrechtTextboxBehavior; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.form.TextField; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; + +public class UtrechtFormFieldTextbox extends Panel { + + private static final long serialVersionUID = 1L; + + private final TextField control; + private final Label description; + private final IModel errorMessageModel; + private final Label errorMessage; + private final String controlId; + private final String fieldId; + private final String descriptionId; + private final String errorMessageId; + + public static final String FORM_FIELD_CLASSNAME = "utrecht-form-field"; + public static final String FORM_FIELD_INVALID_CLASSNAME = "utrecht-form-field--invalid"; + public static final String FORM_LABEL_CLASSNAME = "utrecht-form-label"; + public static final String FORM_LABEL_DISABLED_CLASSNAME = "utrecht-form-label--disabled"; + public static final String TEXTBOX_CLASSNAME = "utrecht-textbox utrecht-textbox--html-input"; + public static final String CHECKBOX_DISABLED_CLASSNAME = "utrecht-textbox--disabled"; + public static final String INVALID_CLASSNAME = "utrecht-textbox--invalid"; + public static final String FORM_FIELD_INPUT_CLASSNAME = "utrecht-form-field__input"; + + public UtrechtFormFieldTextbox(String id, IModel model, String labelText) { + this(id, model, Model.of(labelText), null, null); + } + + public UtrechtFormFieldTextbox( + String id, + IModel model, + IModel labelModel, + IModel descriptionModel, + IModel errorModel + ) { + super(id); + add(new UtrechtFormFieldBehavior()); + add(new UtrechtFormLabelBehavior()); + add(new UtrechtFormFieldDescriptionBehavior()); + add(new UtrechtFormFieldErrorMessageBehavior()); + add(new UtrechtTextboxBehavior()); + errorMessageModel = errorModel; + + // Generate unique IDs `for` and `aria-describedby` ID references + fieldId = UUID.randomUUID().toString(); + controlId = UUID.randomUUID().toString(); + descriptionId = UUID.randomUUID().toString(); + errorMessageId = UUID.randomUUID().toString(); + + // TODO: Implement disabled state + Boolean disabled = false; + + // TODO: Implement indeterminate state, when someone needs it. + + // Create the text input + control = new TextField("control", model) { + @Override + protected void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + control.setMarkupId(controlId); + tag.put( + "class", + HTMLUtil.className( + UtrechtFormFieldTextbox.TEXTBOX_CLASSNAME, + UtrechtFormFieldTextbox.FORM_FIELD_INPUT_CLASSNAME, + disabled ? UtrechtFormFieldTextbox.CHECKBOX_DISABLED_CLASSNAME : null, + isInvalid() ? UtrechtFormFieldTextbox.INVALID_CLASSNAME : null + ) + ); + + String ariaDescribedBy = HTMLUtil.idRefs( + descriptionModel != null && descriptionModel.getObject() != null ? descriptionId : null, + isInvalid() ? errorMessageId : null + ); + + // Do not render an empty `aria-describedby` attribute. + if (!ariaDescribedBy.isEmpty()) { + tag.put("aria-describedby", ariaDescribedBy); + } + + if (isRequired()) { + tag.put("aria-required", "true"); + } + if (isInvalid()) { + tag.put("aria-invalid", "true"); + } + } + + protected void onDisabled(final ComponentTag tag) { + tag.put("disabled", "disabled"); + // TODO: Add `CHECKBOX_DISABLED_CLASSNAME` class name + } + }; + + // Create the label + Label label = new Label("label", labelModel) { + @Override + protected void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + tag.put("for", controlId); + tag.put( + "class", + HTMLUtil.className( + UtrechtFormFieldTextbox.FORM_LABEL_CLASSNAME, + disabled ? UtrechtFormFieldTextbox.FORM_LABEL_DISABLED_CLASSNAME : null + ) + ); + } + }; + + Label labelText = new Label("labelText", labelModel) { + @Override + protected void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + } + }; + + // Create description and error message + description = new Label("description", descriptionModel) { + @Override + protected void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + tag.put("id", descriptionId); + } + + @Override + public boolean isVisible() { + return getDefaultModelObject() != null; + } + }; + + errorMessage = new Label("error", errorModel) { + @Override + protected void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + tag.put("id", errorMessageId); + } + + @Override + public boolean isVisible() { + return getDefaultModelObject() != null; + } + }; + + // Add all components + add(control); + add(label); + add(labelText); + add(description); + add(errorMessage); + } + + protected boolean isInvalid() { + return errorMessageModel != null && errorMessageModel.getObject() != null; + } + + protected boolean isRequired() { + return control.isRequired(); + } + + @Override + protected void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + tag.put("id", fieldId); + tag.put( + "class", + HTMLUtil.className( + UtrechtFormFieldTextbox.FORM_FIELD_CLASSNAME, + isInvalid() ? UtrechtFormFieldTextbox.FORM_FIELD_INVALID_CLASSNAME : null + ) + ); + } + + public UtrechtFormFieldTextbox setRequired(boolean required) { + control.setRequired(required); + return this; + } + + public TextField getTextField() { + return control; + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/textbox/utrecht/UtrechtTextboxBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/textbox/utrecht/UtrechtTextboxBehavior.java new file mode 100644 index 00000000..2e732ffa --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/textbox/utrecht/UtrechtTextboxBehavior.java @@ -0,0 +1,22 @@ +package nl.rotterdam.design_system.wicket.components.textbox.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.request.resource.CssResourceReference; + +public class UtrechtTextboxBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = CssHeaderItem.forReference( + new CssResourceReference(UtrechtTextboxBehavior.class, "@utrecht/textbox-css/dist/index.css") + ); + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + response.render(CSS); + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index 1944ecca..567a72d4 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -27,6 +27,7 @@

      Components

      + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java index 94322c96..ad1d06e1 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java @@ -9,6 +9,7 @@ import nl.rotterdam.design_system.wicket.components.code_block.utrecht.UtrechtCodeBlock; import nl.rotterdam.design_system.wicket.components.column_layout.utrecht.UtrechtColumnLayoutBorder; import nl.rotterdam.design_system.wicket.components.form_field_checkbox.utrecht.UtrechtFormFieldCheckbox; +import nl.rotterdam.design_system.wicket.components.form_field_textbox.utrecht.UtrechtFormFieldTextbox; import nl.rotterdam.design_system.wicket.components.heading_group.utrecht.UtrechtHeadingGroupBorder; import nl.rotterdam.design_system.wicket.components.html_content.utrecht.UtrechtHtmlContentBorder; import nl.rotterdam.design_system.wicket.components.icon.utrecht.UtrechtIconBorder; @@ -32,6 +33,7 @@ import nl.rotterdam.wicket.docs.column_layout.ColumnLayoutExamplesPanel; import nl.rotterdam.wicket.docs.form_field_checkbox.FormFieldCheckboxExamplesPanel; import nl.rotterdam.wicket.docs.form_field_label.FormFieldLabelExamplesPanel; +import nl.rotterdam.wicket.docs.form_field_textbox.UtrechtFormFieldTextboxExamplesPanel; // import nl.rotterdam.wicket.docs.form_label.FormLabelExamplesPanel; import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; import nl.rotterdam.wicket.docs.heading_group.HeadingGroupExamplesPanel; @@ -135,6 +137,7 @@ protected void onInitialize() { pageBody.add(new ColumnLayoutExamplesPanel("columnLayoutExamplesPanel")); pageBody.add(new FormFieldCheckboxExamplesPanel("formFieldCheckboxExamplesPanel")); pageBody.add(new FormFieldLabelExamplesPanel("formFieldLabelExamplesPanel")); + pageBody.add(new UtrechtFormFieldTextboxExamplesPanel("formFieldTextboxExamplesPanel")); pageBody.add(new HeadingExamplesPanel("headingExamplesPanel")); pageBody.add(new HeadingGroupExamplesPanel("headingGroupExamplesPanel")); pageBody.add(new HtmlContentExamplesPanel("htmlContentExamplesPanel")); diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_textbox/UtrechtFormFieldTextboxExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_textbox/UtrechtFormFieldTextboxExamplesPanel.html new file mode 100644 index 00000000..e4a86833 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_textbox/UtrechtFormFieldTextboxExamplesPanel.html @@ -0,0 +1,43 @@ + + + + +
      +

      Form Field Textbox component

      +
      +

      Biedt de mogelijkheid om één regel aan tekens in te vullen.

      +
      + +
      +

      Form Field Textbox

      +
      +

      Voorbeeld.

      +
      + + +
      + +
      +

      Form Field Textbox Required

      +
      +

      Voorbeeld.

      +
      + + +
      + +
      +

      Form Field Textbox Disabled

      +
      +

      Voorbeeld.

      +
      + + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_textbox/UtrechtFormFieldTextboxExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_textbox/UtrechtFormFieldTextboxExamplesPanel.java new file mode 100644 index 00000000..f69a0700 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/form_field_textbox/UtrechtFormFieldTextboxExamplesPanel.java @@ -0,0 +1,64 @@ +package nl.rotterdam.wicket.docs.form_field_textbox; + +import nl.rotterdam.design_system.wicket.components.form_field_textbox.utrecht.UtrechtFormFieldTextbox; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.Model; + +public class UtrechtFormFieldTextboxExamplesPanel extends Panel { + + public UtrechtFormFieldTextboxExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleFormFieldTextbox() { + return new UtrechtFormFieldTextbox( + "utrechtFormFieldTextbox", + Model.of("Hello world!"), + Model.of("I agree"), + Model.of("Description"), + Model.of("error") + ); + } + + @ComponentExample + private static Component exampleFormFieldTextboxRequired() { + UtrechtFormFieldTextbox formField = new UtrechtFormFieldTextbox( + "utrechtFormFieldTextboxRequired", + Model.of("Hello world!"), + Model.of("I agree"), + Model.of("Description"), + Model.of("error") + ); + + formField.setRequired(true); + + return formField; + } + + @ComponentExample + private static Component exampleFormFieldTextboxDisabled() { + UtrechtFormFieldTextbox formField = new UtrechtFormFieldTextbox( + "utrechtFormFieldTextboxDisabled", + Model.of("Hello world!"), + Model.of("I agree"), + Model.of("Description"), + Model.of("error") + ); + + // formField.setDisabled(true); + + return formField; + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleFormFieldTextbox()); + add(exampleFormFieldTextboxRequired()); + add(exampleFormFieldTextboxDisabled()); + } +} From 958a0a22dc477c553c1f625075e71af227e8c5be Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Fri, 6 Dec 2024 16:36:36 +0100 Subject: [PATCH 48/75] renderHead can now be omitted for most components by adding css header items to base class --- .../alert/utrecht/UtrechtAlertBehavior.java | 17 ++++------------ .../base/TagNameClassComponentBehavior.java | 20 +++++++++++++++++++ .../utrecht/UtrechtButtonGroupBehavior.java | 15 ++------------ .../code_block/utrecht/UtrechtCodeBlock.html | 2 +- .../utrecht/UtrechtCodeBlockBehavior.java | 14 +++++-------- 5 files changed, 32 insertions(+), 36 deletions(-) diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java index 6ed0c9b1..66bd2b47 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/alert/utrecht/UtrechtAlertBehavior.java @@ -1,10 +1,8 @@ package nl.rotterdam.design_system.wicket.components.alert.utrecht; import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; -import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.head.CssReferenceHeaderItem; -import org.apache.wicket.markup.head.IHeaderResponse; import java.util.Map; @@ -12,6 +10,8 @@ public class UtrechtAlertBehavior extends TagNameClassComponentBehavior { + private static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem(UtrechtAlertBehavior.class, "@utrecht/alert-css/dist/index.css"); + public static Behavior utrechtAlert(UtrechtAlertType type) { Behavior behavior = types.get(type); @@ -38,18 +38,9 @@ public static Behavior utrechtAlert(UtrechtAlertType type) { UTRECHT_ALERT_OK ); - public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem(UtrechtAlertBehavior.class, "@utrecht/alert-css/dist/index.css"); - - private static final String EXPECTED_TAG_NAME = "div"; - private static final String CLASS_NAME = "utrecht-alert"; private UtrechtAlertBehavior(UtrechtAlertType type) { - super(EXPECTED_TAG_NAME, CLASS_NAME, "utrecht-alert--" + type.type); - } - - @Override - public void renderHead(Component component, IHeaderResponse response) { - super.renderHead(component, response); - response.render(CSS); + super("div", "utrecht-alert", "utrecht-alert--" + type.type); + addHeaderItem(CSS); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java index 082aa176..6cb2c7bd 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java @@ -3,17 +3,31 @@ import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; + +import java.util.ArrayList; +import java.util.List; public abstract class TagNameClassComponentBehavior extends Behavior { private final String expectedTagName; private final String[] classNames; + private final List headerItems = new ArrayList<>(); + public TagNameClassComponentBehavior(String expectedTagName, String... classNames) { this.expectedTagName = expectedTagName; this.classNames = classNames; } + public void addHeaderItem(CssReferenceHeaderItem headerItem) { + if (headerItem == null) { + throw new RuntimeException("Header item cannot be null"); + } + headerItems.add(headerItem); + } + public void onComponentTag(Component component, ComponentTag tag) { super.onComponentTag(component, tag); @@ -25,4 +39,10 @@ public void onComponentTag(Component component, ComponentTag tag) { tag.append("class", String.join(" ", classNames), " "); } } + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + headerItems.forEach(response::render); + } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java index c170888c..406460bd 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button_group/utrecht/UtrechtButtonGroupBehavior.java @@ -1,9 +1,7 @@ package nl.rotterdam.design_system.wicket.components.button_group.utrecht; import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; -import org.apache.wicket.Component; import org.apache.wicket.markup.head.CssReferenceHeaderItem; -import org.apache.wicket.markup.head.IHeaderResponse; import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; @@ -12,17 +10,8 @@ public class UtrechtButtonGroupBehavior extends TagNameClassComponentBehavior { public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem(UtrechtButtonGroupBehavior.class, "@utrecht/button-group-css/dist/index.css"); - private static final String EXPECTED_TAG_NAME = "div"; - private static final String CLASS_NAME = "utrecht-button-group"; - public UtrechtButtonGroupBehavior() { - super(EXPECTED_TAG_NAME, CLASS_NAME); - } - - @Override - public void renderHead(Component component, IHeaderResponse response) { - super.renderHead(component, response); - - response.render(CSS); + super("div", "utrecht-button-group"); + addHeaderItem(CSS); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.html index 33867804..23400cd1 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.html +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlock.html @@ -1,3 +1,3 @@ -
      +
      diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlockBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlockBehavior.java index 023b6323..178a9236 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlockBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/code_block/utrecht/UtrechtCodeBlockBehavior.java @@ -1,21 +1,17 @@ package nl.rotterdam.design_system.wicket.components.code_block.utrecht; -import org.apache.wicket.Component; -import org.apache.wicket.behavior.Behavior; +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; import org.apache.wicket.markup.head.CssReferenceHeaderItem; -import org.apache.wicket.markup.head.IHeaderResponse; import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; -public class UtrechtCodeBlockBehavior extends Behavior { +public class UtrechtCodeBlockBehavior extends TagNameClassComponentBehavior { public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem(UtrechtCodeBlockBehavior.class, "@utrecht/code-block-css/dist/index.css"); - @Override - public void renderHead(Component component, IHeaderResponse response) { - super.renderHead(component, response); - - response.render(CSS); + public UtrechtCodeBlockBehavior() { + super("pre", "utrecht-code-block"); + addHeaderItem(CSS); } } From 91ed9a71799eb68edb0067f3c86d73d1b713e26d Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Fri, 6 Dec 2024 17:03:54 +0100 Subject: [PATCH 49/75] Add ability to include rendered markup instead of source markup --- .../GenerateMarkdownAndStorybookExamples.java | 59 +++++++++---------- .../HtmlDocumentationExtractor.java | 15 +++-- ...arkdownDocumentationExamplesGenerator.java | 39 +++++++----- 3 files changed, 61 insertions(+), 52 deletions(-) diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index a33894bb..ead3f452 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -75,10 +75,15 @@ void generateAlertComponent() { @Test void generateBadgeListComponent() { + + tester.startComponentInPage(BadgeListExamplesPanel.class); + String renderedHtml = tester.getLastResponseAsString(); + new MarkdownDocumentationExamplesGenerator( BadgeListExamplesPanel.class, UtrechtBadgeListBorder.class, - "badge-list" + "badge-list", + renderedHtml ).generate(); } @@ -92,8 +97,7 @@ void generateButtonGroupComponent() { new MarkdownDocumentationExamplesGenerator( ButtonGroupExamplesPanel.class, UtrechtButtonGroupBorder.class, - "button-group" - ).generate(); + "button-group").generate(); } @Test @@ -134,10 +138,15 @@ void generateFormFieldLabelComponent() { @Test void generateHeadingComponent() { + + tester.startComponentInPage(HeadingExamplesPanel.class); + String renderedHtml = tester.getLastResponseAsString(); + new MarkdownDocumentationExamplesGenerator( HeadingExamplesPanel.class, UtrechtHeading.class, - "heading" + "heading", + renderedHtml ).generate(); } @@ -146,8 +155,7 @@ void generateHeadingGroupComponent() { new MarkdownDocumentationExamplesGenerator( HeadingGroupExamplesPanel.class, UtrechtHeadingGroupBorder.class, - "heading-group" - ).generate(); + "heading-group").generate(); } @Test @@ -155,8 +163,7 @@ void generateHtmlContentComponent() { new MarkdownDocumentationExamplesGenerator( HtmlContentExamplesPanel.class, UtrechtHtmlContentBorder.class, - "html-content" - ).generate(); + "html-content").generate(); } @Test @@ -164,8 +171,7 @@ void generateRotterdamLogoImage() { new MarkdownDocumentationExamplesGenerator( RotterdamLogoImageExamplesPanel.class, RotterdamLogoImage.class, - "rotterdam-logo-image" - ).generate(); + "rotterdam-logo-image").generate(); } @Test @@ -173,8 +179,7 @@ void generateUtrechtLogo() { new MarkdownDocumentationExamplesGenerator( UtrechtLogoExamplesPanel.class, UtrechtLogoBorder.class, - "utrecht-logo" - ).generate(); + "utrecht-logo").generate(); } @Test @@ -182,8 +187,7 @@ void generateUtrechtIcon() { new MarkdownDocumentationExamplesGenerator( IconExamplesPanel.class, UtrechtIconBorder.class, - "utrecht-icon" - ).generate(); + "utrecht-icon").generate(); } @Test @@ -191,8 +195,7 @@ void generateUtrechtNumberBadge() { new MarkdownDocumentationExamplesGenerator( UtrechtNumberBadgeExamplesPanel.class, UtrechtNumberBadge.class, - "utrecht-number-badge" - ).generate(); + "utrecht-number-badge").generate(); } @Test @@ -200,8 +203,7 @@ void generateUtrechtPageBody() { new MarkdownDocumentationExamplesGenerator( UtrechtPageBodyExamplesPanel.class, UtrechtPageBodyBorder.class, - "utrecht-page-body" - ).generate(); + "utrecht-page-body").generate(); } @Test @@ -209,8 +211,7 @@ void generateUtrechtPageFooter() { new MarkdownDocumentationExamplesGenerator( UtrechtPageFooterExamplesPanel.class, UtrechtPageFooterBorder.class, - "utrecht-page-footer" - ).generate(); + "utrecht-page-footer").generate(); } @Test @@ -218,8 +219,7 @@ void generateUtrechtPageLayout() { new MarkdownDocumentationExamplesGenerator( UtrechtPageLayoutExamplesPanel.class, UtrechtPageLayoutBorder.class, - "utrecht-page-layout" - ).generate(); + "utrecht-page-layout").generate(); } @Test @@ -227,8 +227,7 @@ void generateUtrechtPreserveData() { new MarkdownDocumentationExamplesGenerator( UtrechtPreserveDataExamplesPanel.class, UtrechtPreserveDataLabel.class, - "utrecht-preserve-data" - ).generate(); + "utrecht-preserve-data").generate(); } @Test @@ -236,8 +235,7 @@ void generateUtrechtRoot() { new MarkdownDocumentationExamplesGenerator( UtrechtRootExamplesPanel.class, UtrechtRootBorder.class, - "utrecht-root" - ).generate(); + "utrecht-root").generate(); } @Test @@ -245,8 +243,7 @@ void generateUtrechtSeparator() { new MarkdownDocumentationExamplesGenerator( UtrechtSeparatorExamplesPanel.class, UtrechtSeparator.class, - "utrecht-separator" - ).generate(); + "utrecht-separator").generate(); } @Test @@ -254,8 +251,7 @@ void generateUtrechtOrderedList() { new MarkdownDocumentationExamplesGenerator( UtrechtOrderedListExamplesPanel.class, UtrechtOrderedList.class, - "utrecht-ordered-list" - ).generate(); + "utrecht-ordered-list").generate(); } @Test @@ -263,8 +259,7 @@ void generateUtrechtUnorderedList() { new MarkdownDocumentationExamplesGenerator( UtrechtOrderedListExamplesPanel.class, UtrechtOrderedList.class, - "utrecht-unordered-list" - ).generate(); + "utrecht-unordered-list").generate(); } @AfterEach diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/HtmlDocumentationExtractor.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/HtmlDocumentationExtractor.java index 8ce0652a..a8b0273e 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/HtmlDocumentationExtractor.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/HtmlDocumentationExtractor.java @@ -1,15 +1,16 @@ package nl.rotterdam.wicket.nl_design.docs.storybook_generator; -import static com.google.common.base.Preconditions.checkNotNull; - import com.google.common.base.Charsets; -import java.io.IOException; -import java.nio.file.Path; -import java.util.Optional; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; +import java.io.IOException; +import java.nio.file.Path; +import java.util.Optional; + +import static com.google.common.base.Preconditions.checkNotNull; + public class HtmlDocumentationExtractor { private final Document document; @@ -22,6 +23,10 @@ public HtmlDocumentationExtractor(Path path) { } } + public HtmlDocumentationExtractor(String renderedHtml) { + document = Jsoup.parse(renderedHtml); + } + public WicketHtmlExampleSnippet extractExample(String wicketId) { Element element = document.selectFirst("[data-testid=" + wicketId + "]"); diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java index f9f3944e..7998280e 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java @@ -1,11 +1,15 @@ package nl.rotterdam.wicket.nl_design.docs.storybook_generator; -import static nl.rotterdam.wicket.nl_design.docs.ModuleRootResolver.resolveModuleRootPath; - import com.github.javaparser.JavaParser; import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.body.MethodDeclaration; import com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.util.string.Strings; +import org.junit.platform.commons.support.ModifierSupport; + import java.io.File; import java.io.IOException; import java.lang.reflect.Method; @@ -14,11 +18,8 @@ import java.util.Comparator; import java.util.List; import java.util.stream.IntStream; -import nl.rotterdam.wicket.docs.ComponentExample; -import org.apache.wicket.Component; -import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.util.string.Strings; -import org.junit.platform.commons.support.ModifierSupport; + +import static nl.rotterdam.wicket.nl_design.docs.ModuleRootResolver.resolveModuleRootPath; public class MarkdownDocumentationExamplesGenerator { @@ -38,8 +39,17 @@ public MarkdownDocumentationExamplesGenerator( When you have a Behavior and a component, put them in the same package. */ Class componentClass, - String componentName - ) { + String componentName) { + this(examplePanelClass, componentClass, componentName, null); + } + public MarkdownDocumentationExamplesGenerator( + Class examplePanelClass, + /* + When you have a Behavior and a component, put them in the same package. + */ + Class componentClass, + String componentName, + String renderedHtml) { this.componentName = componentName; this.componentNameCapitalized = Strings.capitalize(componentName); @@ -53,8 +63,10 @@ public MarkdownDocumentationExamplesGenerator( String exampleFilenameWithoutExtension = basePathInDocs + examplePanelClass.getSimpleName(); exampleJavaFile = new File(exampleFilenameWithoutExtension + ".java"); - documentationExtractor = new HtmlDocumentationExtractor( - new File(exampleFilenameWithoutExtension + ".html").toPath() + documentationExtractor = + renderedHtml != null + ? new HtmlDocumentationExtractor(renderedHtml) + : new HtmlDocumentationExtractor(new File(exampleFilenameWithoutExtension + ".html").toPath() ); markdownReadmeFile = new File(moduleRootPath + "/stories/" + componentName + ".md"); @@ -176,10 +188,7 @@ private void writeWicketComponentsReadme(List results) t lines.addAll( List.of( "```html", - "", - // TODO: Indent each line of codeHTML, not only the first - " " + example.htmlSnippet().codeHTML(), - "", + example.htmlSnippet().codeHTML(), "```", "", "```java", From 6c0f53becf08a7ae98fe11aca6068460318e743e Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Fri, 6 Dec 2024 21:02:48 +0100 Subject: [PATCH 50/75] improve Wicket stories --- pnpm-lock.yaml | 8 + wicket/components-wicket/package.json | 1 + wicket/components-wicket/pom.xml | 8 + .../utrecht/UtrechtBadgeListBehavior.java | 21 ++- .../utrecht/UtrechtDataBadgeBehavior.java | 44 ++++++ .../UtrechtUnorderedListItemBehavior.java | 29 ++++ .../rotterdam/wicket/docs/ComponentsPage.html | 76 --------- .../rotterdam/wicket/docs/ComponentsPage.java | 146 ------------------ .../badge_list/BadgeListExamplesPanel.html | 7 +- .../badge_list/BadgeListExamplesPanel.java | 30 +++- .../ColumnLayoutExamplesPanel.html | 27 +++- .../HeadingGroupExamplesPanel.html | 7 +- .../HtmlContentExamplesPanel.html | 9 +- .../wicket/docs/icon/IconExamplesPanel.html | 18 ++- .../UtrechtOrderedListExamplesPanel.html | 6 +- .../UtrechtOrderedListExamplesPanel.java | 30 +++- .../UtrechtUnorderedListExamplesPanel.html | 7 +- .../UtrechtUnorderedListExamplesPanel.java | 33 +++- 18 files changed, 259 insertions(+), 248 deletions(-) create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/data_badge/utrecht/UtrechtDataBadgeBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListItemBehavior.java diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 58c63a58..8da2f32f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -617,6 +617,9 @@ importers: '@utrecht/custom-checkbox-css': specifier: 1.1.1 version: 1.1.1 + '@utrecht/data-badge-css': + specifier: 1.0.0 + version: 1.0.0 '@utrecht/form-field-css': specifier: 1.5.0 version: 1.5.0 @@ -2930,6 +2933,9 @@ packages: '@utrecht/custom-checkbox-css@1.3.1': resolution: {integrity: sha512-iChJIVwvWIgc4j3cP+0fcGHnOmN4cIevg4X27TxEADsVyJvTgjYfsudjAt4OlzYD/Vx6nvnY+ElDQhmge0jc/g==} + '@utrecht/data-badge-css@1.0.0': + resolution: {integrity: sha512-f+u4fYqOKEtFJrtiRcByDLnSTmlgMICjLDRgMMiRFZls9iq7jLK/5as8nOv/1dYjSdSWjN5AxeIvh6KmzWmWJA==} + '@utrecht/fieldset-react@1.0.4': resolution: {integrity: sha512-mgLV7fPTTWXb+8HatYqOOtHpnce4fACKNfo26OkHKw38nI9BV+VsDkALcHhgPDjfdhvnEXvJRRNx1YxBm+kDBw==} peerDependencies: @@ -10585,6 +10591,8 @@ snapshots: '@utrecht/custom-checkbox-css@1.3.1': {} + '@utrecht/data-badge-css@1.0.0': {} + '@utrecht/fieldset-react@1.0.4(@babel/runtime@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 diff --git a/wicket/components-wicket/package.json b/wicket/components-wicket/package.json index 5004f98a..6b6f0ebc 100644 --- a/wicket/components-wicket/package.json +++ b/wicket/components-wicket/package.json @@ -29,6 +29,7 @@ "@utrecht/code-block-css": "1.4.0", "@utrecht/column-layout-css": "1.5.0", "@utrecht/custom-checkbox-css": "1.1.1", + "@utrecht/data-badge-css": "1.0.0", "@utrecht/form-field-css": "1.5.0", "@utrecht/form-field-description-css": "1.5.0", "@utrecht/form-field-error-message-css": "1.5.0", diff --git a/wicket/components-wicket/pom.xml b/wicket/components-wicket/pom.xml index 0c175302..b1832184 100644 --- a/wicket/components-wicket/pom.xml +++ b/wicket/components-wicket/pom.xml @@ -146,6 +146,14 @@ nl/rotterdam/design_system/wicket/components/column_layout/utrecht
      + + false + node_modules/ + + @utrecht/data-badge-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/data_badge/utrecht + false node_modules/ diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBehavior.java index b5dcb27d..8d2c9a70 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/badge_list/utrecht/UtrechtBadgeListBehavior.java @@ -1,20 +1,19 @@ package nl.rotterdam.design_system.wicket.components.badge_list.utrecht; -import org.apache.wicket.Component; -import org.apache.wicket.behavior.Behavior; -import org.apache.wicket.markup.head.CssReferenceHeaderItem; -import org.apache.wicket.markup.head.IHeaderResponse; - import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; -public class UtrechtBadgeListBehavior extends Behavior { +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; - public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem(UtrechtBadgeListBehavior.class, "@utrecht/badge-list-css/dist/index.css"); +public class UtrechtBadgeListBehavior extends TagNameClassComponentBehavior { - @Override - public void renderHead(Component component, IHeaderResponse response) { - super.renderHead(component, response); + private static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem( + UtrechtBadgeListBehavior.class, + "@utrecht/badge-list-css/dist/index.css" + ); - response.render(CSS); + public UtrechtBadgeListBehavior() { + super("div", "utrecht-badge-list"); + addHeaderItem(CSS); } } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/data_badge/utrecht/UtrechtDataBadgeBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/data_badge/utrecht/UtrechtDataBadgeBehavior.java new file mode 100644 index 00000000..a1532e49 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/data_badge/utrecht/UtrechtDataBadgeBehavior.java @@ -0,0 +1,44 @@ +package nl.rotterdam.design_system.wicket.components.data_badge.utrecht; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; + +public class UtrechtDataBadgeBehavior extends Behavior { + + public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem( + UtrechtDataBadgeBehavior.class, + "@utrecht/data-badge-css/dist/index.css" + ); + + private final String expectedTagName; + private final String className; + + public UtrechtDataBadgeBehavior() { + this.expectedTagName = "data"; + this.className = "utrecht-data-badge"; + } + + @Override + public void onComponentTag(Component component, ComponentTag tag) { + super.onComponentTag(component, tag); + + if (!expectedTagName.equals(tag.getName())) { + tag.setName(expectedTagName); + } + + if (!tag.isClose()) { + tag.append("class", className, " "); + } + } + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + response.render(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListItemBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListItemBehavior.java new file mode 100644 index 00000000..cac359da --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/unordered_list/utrecht/UtrechtUnorderedListItemBehavior.java @@ -0,0 +1,29 @@ +package nl.rotterdam.design_system.wicket.components.unordered_list.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.ComponentTag; + +public class UtrechtUnorderedListItemBehavior extends Behavior { + + private final String expectedTagName; + private final String className; + + public UtrechtUnorderedListItemBehavior() { + this.expectedTagName = "li"; + this.className = "utrecht-unordered-list__item utrecht-unordered-list__item"; + } + + @Override + public void onComponentTag(Component component, ComponentTag tag) { + super.onComponentTag(component, tag); + + if (!expectedTagName.equals(tag.getName())) { + tag.setName(expectedTagName); + } + + if (!tag.isClose()) { + tag.append("class", className, " "); + } + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index 567a72d4..9ab8e173 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -43,84 +43,8 @@

      Components

      -

      Code Block

      -
      - - - - - - 42 -

      Link to trigger Wicket stateful page refresh

      -
      -

      Hello world

      -

      - -

      -
      - - -
      Buttons go here
      - - - -
      - -

      Utrecht ordered list

      -
        -
      1. - Example label -
      2. -
      -

      End ordered list

      - - - - - - - -

      - Nam quod exercitationem vero et. Sapiente alias occaecati voluptas est. Ullam sed quis hic est nisi. Et - saepe expedita est sunt sed vitae exercitationem et. -

      -

      Eos provident at quaerat sed. Et adipisci corporis iste. Praesentium ut aut sit dolores distinctio.

      -

      - Alias officiis et sint. Autem fuga praesentium omnis velit sit id sunt suscipit. Nihil vel minus cumque. - At mollitia inventore ut quia enim. Ut cupiditate explicabo porro ab vel vel. Velit nostrum doloribus - et. -

      -

      - Natus eos veniam voluptas. Ea modi est dolores doloribus delectus amet nemo. Ea vel nihil et eos et - perspiciatis iure commodi. Vel dolores exercitationem facilis quisquam. Voluptas modi quo consequatur - quos. -

      -

      - Aut consequuntur sed qui. Ea id molestiae similique sequi facere deserunt sunt fugiat. Molestiae beatae - consectetur perferendis. Qui earum velit sed vel non officiis odit. Deleniti nesciunt nemo ut delectus - nemo at sunt. Maiores numquam natus aut adipisci ipsum fuga aliquam consequatur. -

      -
      - -

      Heading in a heading group

      -

      Sub-heading

      -
      - - - Page footer diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java index ad1d06e1..b7a02fab 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java @@ -2,29 +2,12 @@ import css.DesignSystemTheme; import java.util.Arrays; -import java.util.List; -// import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlert; -// import nl.rotterdam.design_system.wicket.components.alert.utrecht.UtrechtAlertType; -import nl.rotterdam.design_system.wicket.components.button_group.utrecht.UtrechtButtonGroupBorder; -import nl.rotterdam.design_system.wicket.components.code_block.utrecht.UtrechtCodeBlock; -import nl.rotterdam.design_system.wicket.components.column_layout.utrecht.UtrechtColumnLayoutBorder; -import nl.rotterdam.design_system.wicket.components.form_field_checkbox.utrecht.UtrechtFormFieldCheckbox; -import nl.rotterdam.design_system.wicket.components.form_field_textbox.utrecht.UtrechtFormFieldTextbox; -import nl.rotterdam.design_system.wicket.components.heading_group.utrecht.UtrechtHeadingGroupBorder; -import nl.rotterdam.design_system.wicket.components.html_content.utrecht.UtrechtHtmlContentBorder; -import nl.rotterdam.design_system.wicket.components.icon.utrecht.UtrechtIconBorder; import nl.rotterdam.design_system.wicket.components.logo.utrecht.UtrechtLogoBorder; import nl.rotterdam.design_system.wicket.components.logo_image.rotterdam.RotterdamLogoImage; -import nl.rotterdam.design_system.wicket.components.number_badge.utrecht.UtrechtNumberBadge; -import nl.rotterdam.design_system.wicket.components.ordered_list.utrecht.UtrechtOrderedList; -import nl.rotterdam.design_system.wicket.components.ordered_list.utrecht.UtrechtOrderedListBehavior; -import nl.rotterdam.design_system.wicket.components.ordered_list.utrecht.UtrechtOrderedListItemBehavior; import nl.rotterdam.design_system.wicket.components.page_body.utrecht.UtrechtPageBodyBorder; import nl.rotterdam.design_system.wicket.components.page_footer.utrecht.UtrechtPageFooterBorder; import nl.rotterdam.design_system.wicket.components.page_header.utrecht.UtrechtPageHeaderBorder; import nl.rotterdam.design_system.wicket.components.page_layout.utrecht.UtrechtPageLayoutBorder; -import nl.rotterdam.design_system.wicket.components.separator.utrecht.UtrechtSeparator; -import nl.rotterdam.design_system.wicket.components.unordered_list.utrecht.UtrechtUnorderedList; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; import nl.rotterdam.wicket.docs.badge_list.BadgeListExamplesPanel; import nl.rotterdam.wicket.docs.body.BodyExamplesPanel; @@ -34,7 +17,6 @@ import nl.rotterdam.wicket.docs.form_field_checkbox.FormFieldCheckboxExamplesPanel; import nl.rotterdam.wicket.docs.form_field_label.FormFieldLabelExamplesPanel; import nl.rotterdam.wicket.docs.form_field_textbox.UtrechtFormFieldTextboxExamplesPanel; -// import nl.rotterdam.wicket.docs.form_label.FormLabelExamplesPanel; import nl.rotterdam.wicket.docs.heading.HeadingExamplesPanel; import nl.rotterdam.wicket.docs.heading_group.HeadingGroupExamplesPanel; import nl.rotterdam.wicket.docs.html_content.HtmlContentExamplesPanel; @@ -49,21 +31,16 @@ import nl.rotterdam.wicket.docs.preserve_data.UtrechtPreserveDataExamplesPanel; import nl.rotterdam.wicket.docs.root.UtrechtRootExamplesPanel; import nl.rotterdam.wicket.docs.separator.UtrechtSeparatorExamplesPanel; -import nl.rotterdam.wicket.docs.unordered_list.Kind; import nl.rotterdam.wicket.docs.unordered_list.UtrechtUnorderedListExamplesPanel; import org.apache.wicket.Component; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.JavaScriptHeaderItem; import org.apache.wicket.markup.head.JavaScriptReferenceHeaderItem; import org.apache.wicket.markup.head.JavaScriptReferenceType; -import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.LambdaChoiceRenderer; -import org.apache.wicket.markup.html.link.ExternalLink; import org.apache.wicket.markup.html.link.Link; -import org.apache.wicket.markup.html.list.ListItem; -import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.model.Model; import org.apache.wicket.request.resource.JavaScriptResourceReference; import org.slf4j.Logger; @@ -100,8 +77,6 @@ private static Component createActiveThemeChoice() { private UtrechtPageHeaderBorder pageHeader; private UtrechtPageBodyBorder pageBody; private UtrechtPageFooterBorder pageFooter; - private UtrechtOrderedList orderedList; - private UtrechtUnorderedList unorderedList; private UtrechtLogoBorder logo; @Override @@ -126,8 +101,6 @@ protected void onInitialize() { pageFooter = new UtrechtPageFooterBorder("utrechtPageFooter"); pageLayout.add(pageFooter); - pageBody.add(new UtrechtCodeBlock("code-block-example", Model.of("Reload Page"))); - // Add the component stories pageBody.add(new AlertExamplesPanel("alertExamplesPanel")); pageBody.add(new BadgeListExamplesPanel("badgeListExamplesPanel")); @@ -154,119 +127,6 @@ protected void onInitialize() { pageBody.add(new UtrechtSeparatorExamplesPanel("separatorExamplesPanel")); pageBody.add(new UtrechtUnorderedListExamplesPanel("unorderedListExamplesPanel")); - pageBody.add(new HeadingExamplesPanel("headingComponents")); - // add(new HeadingPanel("labelComponents")); - // pageBody.add(new FormFieldLabelExamplesPanel("labelComponents")); - pageBody.add(new UtrechtHtmlContentBorder("utrechtHtmlContent")); - pageBody.add(new UtrechtNumberBadge("utrechtNumberBadge", Model.of("42"))); - /* - pageBody.add( - new UtrechtAlert( - "utrechtAlertInfo", - Model.of( - "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." - ), - UtrechtAlertType.INFO - ) - ); - pageBody.add( - new UtrechtAlert( - "utrechtAlertWarning", - Model.of( - "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." - ), - UtrechtAlertType.WARNING - ) - ); - pageBody.add( - new UtrechtAlert( - "utrechtAlertAlert", - Model.of( - "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." - ), - UtrechtAlertType.ERROR - ) - ); - pageBody.add( - new UtrechtAlert( - "utrechtAlertOk", - Model.of( - "Deze gegevens zijn reeds ingevuld en komen uit Basis Registratie Personen (BRP). Indien deze gegevens niet kloppen, kunt u dit wijzigen in het BRP." - ), - UtrechtAlertType.OK - ) - ); - */ - pageBody.add(new UtrechtSeparator("utrechtSeparator")); - pageBody.add(new UtrechtButtonGroupBorder("utrechtButtonGroup")); - orderedList = new UtrechtOrderedList("utrechtOrderedList"); - pageBody.add(orderedList); - - unorderedList = new UtrechtUnorderedList("utrechtUnorderedList"); - pageBody.add(unorderedList); - - pageBody.add(new UtrechtIconBorder("utrechtIcon")); - pageBody.add(new UtrechtColumnLayoutBorder("utrechtColumnLayout")); - pageBody.add(new UtrechtHeadingGroupBorder("utrechtHeadingGroup")); - pageBody.add( - new UtrechtFormFieldCheckbox( - "utrechtFormFieldCheckbox", - Model.of(false), - Model.of("I agree"), - Model.of("Description"), - Model.of("error") - ) - ); - // pageBody.add( - // new WebMarkupContainer("utrechtOrderedList2") { - // @Override - // protected void onInitialize() { - // super.onInitialize(); - // add(new UtrechtOrderedListBehavior()); - // } - // } - // ); - - List kinderen = List.of( - new Kind("Jan", 2000, 123456789), - new Kind("Storm", 2001, 123456790), - new Kind("Fatima", 2002, 123456791) - ); - - pageBody.add( - new WebMarkupContainer("utrechtOrderedListWebMarkupContainer") { - @Override - protected void onInitialize() { - super.onInitialize(); - - add(new UtrechtOrderedListBehavior()); // TODO should be singleton - add( - new ListView("listItem", kinderen) { - @Override - protected void populateItem(ListItem item) { - Kind kind = item.getModelObject(); - item.add(new UtrechtOrderedListItemBehavior()); // TODO: should be singleton - item.add( - new ExternalLink( - "link", - "https://concern.ir.rotterdam.nl/example/kind/" + kind.administratienummer(), - kind.naam() + " - " + kind.geboortejaar() - ) - ); - } - } - ); - } - } - ); - - // RepeatingView listItems = new RepeatingView("utrechtOrderedListItem"); - // listItems.add(new Label(listItems.newChildId(), "green")); - // listItems.add(new Label(listItems.newChildId(), "blue")); - // listItems.add(new Label(listItems.newChildId(), "red")); - - // pageLayout.add(new PageLayoutExamplesPanel("pageLayoutExamples")); - add( // TODO set title using model in BasePage new Label(TITLE_ID, "ComponentsPage · Apache Wicket · Rotterdam Design System") @@ -274,10 +134,6 @@ protected void populateItem(ListItem item) { pageBody.add(createActiveThemeChoice()); pageBody.add(createRefreshPgaeLink()); - // pageBody.add( - // new UtrechtCodeBlock("code-block-example", Model.of("Reload Page")), - // new HeadingExamplesPanel("headingComponents") - // ); } @Override @@ -288,7 +144,5 @@ public void renderHead(IHeaderResponse response) { response.render(COMPONENTS_JS_HEADER_ITEM); } - // private final UtrechtOrderedListItem orderedListItem; - public ComponentsPage() {} } diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.html index d282c6a3..b22fa3da 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.html @@ -8,11 +8,14 @@

      Badge List component

      Lijst van labels met extra informatie, zoals een categorie of een eigenschap.

      -
      +

      Badge List

      + >
      diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.java index 9232404f..974f117c 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/badge_list/BadgeListExamplesPanel.java @@ -1,8 +1,14 @@ package nl.rotterdam.wicket.docs.badge_list; -import nl.rotterdam.design_system.wicket.components.badge_list.utrecht.UtrechtBadgeListBorder; +import java.util.List; +import nl.rotterdam.design_system.wicket.components.badge_list.utrecht.UtrechtBadgeListBehavior; +import nl.rotterdam.design_system.wicket.components.data_badge.utrecht.UtrechtDataBadgeBehavior; import nl.rotterdam.wicket.docs.ComponentExample; import org.apache.wicket.Component; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.panel.Panel; public class BadgeListExamplesPanel extends Panel { @@ -13,7 +19,27 @@ public BadgeListExamplesPanel(String id) { @ComponentExample private static Component exampleBadgeList() { - return new UtrechtBadgeListBorder("utrechtBadgeList"); + List namen = List.of("duurzaamheid", "schoon, heel en veilig"); + + return new WebMarkupContainer("utrechtBadgeListWebMarkupContainer") { + @Override + protected void onInitialize() { + super.onInitialize(); + + add(new UtrechtBadgeListBehavior()); // TODO should be singleton + add( + new ListView("listItem", namen) { + @Override + protected void populateItem(ListItem item) { + item.add(new UtrechtDataBadgeBehavior()); // TODO: should be singleton + String naam = item.getModelObject(); + // item.add(naam); + item.add(new Label("label", naam)); + } + } + ); + } + }; } @Override diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.html index 342ec020..86f840a1 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/column_layout/ColumnLayoutExamplesPanel.html @@ -14,7 +14,32 @@

      Column Layout

      Voorbeeld.

      + > diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.html index 6676ee2e..65dffb87 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/heading_group/HeadingGroupExamplesPanel.html @@ -14,7 +14,12 @@

      Heading Group

      Voorbeeld.

      + > diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.html index c98aec7c..00e8f327 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/html_content/HtmlContentExamplesPanel.html @@ -14,7 +14,14 @@

      HTML Content

      Voorbeeld.

      + > diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.html index b427e654..35ec8f79 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/IconExamplesPanel.html @@ -14,7 +14,23 @@

      Icon

      Voorbeeld.

      + > diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html index 1739fd4f..7be3762f 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html @@ -14,7 +14,11 @@

      Ordered List

      Voorbeeld.

      + > diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.java index 1e6f22cf..af018084 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.java @@ -1,8 +1,14 @@ package nl.rotterdam.wicket.docs.ordered_list; -import nl.rotterdam.design_system.wicket.components.ordered_list.utrecht.UtrechtOrderedList; +import java.util.List; +import nl.rotterdam.design_system.wicket.components.ordered_list.utrecht.UtrechtOrderedListBehavior; +import nl.rotterdam.design_system.wicket.components.ordered_list.utrecht.UtrechtOrderedListItemBehavior; import nl.rotterdam.wicket.docs.ComponentExample; import org.apache.wicket.Component; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.panel.Panel; public class UtrechtOrderedListExamplesPanel extends Panel { @@ -13,7 +19,27 @@ public UtrechtOrderedListExamplesPanel(String id) { @ComponentExample private static Component exampleOrderedList() { - return new UtrechtOrderedList("utrechtOrderedList"); + List namen = List.of("Adam", "Noah", "Mohammed", "Zayn", "James"); + + return new WebMarkupContainer("utrechtOrderedListWebMarkupContainer") { + @Override + protected void onInitialize() { + super.onInitialize(); + + add(new UtrechtOrderedListBehavior()); // TODO should be singleton + add( + new ListView("listItem", namen) { + @Override + protected void populateItem(ListItem item) { + item.add(new UtrechtOrderedListItemBehavior()); // TODO: should be singleton + String naam = item.getModelObject(); + // item.add(naam); + item.add(new Label("label", naam)); + } + } + ); + } + }; } @Override diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.html index 9ced1d9a..8a795e46 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.html @@ -8,13 +8,16 @@

      Unordered List component

      Opsomming waar de volgorde van items in de lijst niet van belang is.

      -
      +

      Unordered List

      Voorbeeld.

      + >
      diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.java index a7d463f3..217805f5 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/unordered_list/UtrechtUnorderedListExamplesPanel.java @@ -1,8 +1,14 @@ package nl.rotterdam.wicket.docs.unordered_list; -import nl.rotterdam.design_system.wicket.components.unordered_list.utrecht.UtrechtUnorderedList; +import java.util.List; +import nl.rotterdam.design_system.wicket.components.unordered_list.utrecht.UtrechtUnorderedListBehavior; +import nl.rotterdam.design_system.wicket.components.unordered_list.utrecht.UtrechtUnorderedListItemBehavior; import nl.rotterdam.wicket.docs.ComponentExample; import org.apache.wicket.Component; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.panel.Panel; public class UtrechtUnorderedListExamplesPanel extends Panel { @@ -13,7 +19,30 @@ public UtrechtUnorderedListExamplesPanel(String id) { @ComponentExample private static Component exampleUnorderedList() { - return new UtrechtUnorderedList("utrechtUnorderedList"); + List namen = List.of( + "Binnen 5 werkdagen krijgt u een eerste bericht.", + "Na uiterlijk 4 weken geeft de gemeente een inhoudelijke reactie." + ); + + return new WebMarkupContainer("utrechtUnorderedListWebMarkupContainer") { + @Override + protected void onInitialize() { + super.onInitialize(); + + add(new UtrechtUnorderedListBehavior()); // TODO should be singleton + add( + new ListView("listItem", namen) { + @Override + protected void populateItem(ListItem item) { + item.add(new UtrechtUnorderedListItemBehavior()); // TODO: should be singleton + String naam = item.getModelObject(); + // item.add(naam); + item.add(new Label("label", naam)); + } + } + ); + } + }; } @Override From 14401a29c909b3f06fb35e52ee96519980750d29 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Sun, 8 Dec 2024 10:37:30 +0100 Subject: [PATCH 51/75] feat: add Paragraph component --- wicket/components-wicket/pom.xml | 8 ++++ .../paragraph/utrecht/UtrechtParagraph.java | 27 ++++++++++++++ .../utrecht/UtrechtParagraphAppearance.java | 11 ++++++ .../utrecht/UtrechtParagraphBehavior.java | 23 ++++++++++++ .../rotterdam/wicket/docs/ComponentsPage.html | 1 + .../rotterdam/wicket/docs/ComponentsPage.java | 2 + .../UtrechtParagraphExamplesPanel.html | 37 +++++++++++++++++++ .../UtrechtParagraphExamplesPanel.java | 36 ++++++++++++++++++ 8 files changed, 145 insertions(+) create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/paragraph/utrecht/UtrechtParagraph.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/paragraph/utrecht/UtrechtParagraphAppearance.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/paragraph/utrecht/UtrechtParagraphBehavior.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/paragraph/utrecht/UtrechtParagraphExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/paragraph/utrecht/UtrechtParagraphExamplesPanel.java diff --git a/wicket/components-wicket/pom.xml b/wicket/components-wicket/pom.xml index b1832184..014f40aa 100644 --- a/wicket/components-wicket/pom.xml +++ b/wicket/components-wicket/pom.xml @@ -279,6 +279,14 @@ nl/rotterdam/design_system/wicket/components/page_layout/utrecht
      + + false + node_modules/ + + @utrecht/paragraph-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/paragraph/utrecht + false node_modules/ diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/paragraph/utrecht/UtrechtParagraph.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/paragraph/utrecht/UtrechtParagraph.java new file mode 100644 index 00000000..a8206888 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/paragraph/utrecht/UtrechtParagraph.java @@ -0,0 +1,27 @@ +package nl.rotterdam.design_system.wicket.components.paragraph.utrecht; + +import java.io.Serializable; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; + +public class UtrechtParagraph extends Label { + + public UtrechtParagraph(String id, IModel model) { + super(id, model); + add(new UtrechtParagraphBehavior()); + } + + public UtrechtParagraph(String id, Serializable label) { + this(id, Model.of(label)); + } + + public UtrechtParagraph(String id, Serializable label, UtrechtParagraphAppearance appearance) { + this(id, Model.of(label), appearance); + } + + public UtrechtParagraph(String id, IModel model, UtrechtParagraphAppearance appearance) { + super(id, model); + add(new UtrechtParagraphBehavior(appearance)); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/paragraph/utrecht/UtrechtParagraphAppearance.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/paragraph/utrecht/UtrechtParagraphAppearance.java new file mode 100644 index 00000000..1a9d8040 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/paragraph/utrecht/UtrechtParagraphAppearance.java @@ -0,0 +1,11 @@ +package nl.rotterdam.design_system.wicket.components.paragraph.utrecht; + +public enum UtrechtParagraphAppearance { + LEAD("lead"); + + final String appearance; + + UtrechtParagraphAppearance(String appearance) { + this.appearance = appearance; + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/paragraph/utrecht/UtrechtParagraphBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/paragraph/utrecht/UtrechtParagraphBehavior.java new file mode 100644 index 00000000..4a69defd --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/paragraph/utrecht/UtrechtParagraphBehavior.java @@ -0,0 +1,23 @@ +package nl.rotterdam.design_system.wicket.components.paragraph.utrecht; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; + +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; + +public class UtrechtParagraphBehavior extends TagNameClassComponentBehavior { + + public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem( + UtrechtParagraphBehavior.class, + "@utrecht/paragraph-css/dist/index.css" + ); + + public UtrechtParagraphBehavior() { + super("p", "utrecht-paragraph"); + addHeaderItem(CSS); + } + + public UtrechtParagraphBehavior(UtrechtParagraphAppearance appearance) { + super("p", "utrecht-paragraph", "utrecht-paragraph--" + appearance.appearance); + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index 9ab8e173..bbd8d437 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -39,6 +39,7 @@

      Components

      + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java index b7a02fab..2812421e 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java @@ -28,6 +28,7 @@ import nl.rotterdam.wicket.docs.page_body.UtrechtPageBodyExamplesPanel; import nl.rotterdam.wicket.docs.page_footer.UtrechtPageFooterExamplesPanel; import nl.rotterdam.wicket.docs.page_layout.UtrechtPageLayoutExamplesPanel; +import nl.rotterdam.wicket.docs.paragraph.utrecht.UtrechtParagraphExamplesPanel; import nl.rotterdam.wicket.docs.preserve_data.UtrechtPreserveDataExamplesPanel; import nl.rotterdam.wicket.docs.root.UtrechtRootExamplesPanel; import nl.rotterdam.wicket.docs.separator.UtrechtSeparatorExamplesPanel; @@ -122,6 +123,7 @@ protected void onInitialize() { pageBody.add(new UtrechtPageBodyExamplesPanel("pageBodyExamplesPanel")); pageBody.add(new UtrechtPageFooterExamplesPanel("pageFooterExamplesPanel")); pageBody.add(new UtrechtPageLayoutExamplesPanel("pageLayoutExamplesPanel")); + pageBody.add(new UtrechtParagraphExamplesPanel("paragraphExamplesPanel")); pageBody.add(new UtrechtPreserveDataExamplesPanel("preserveDataExamplesPanel")); pageBody.add(new UtrechtRootExamplesPanel("rootExamplesPanel")); pageBody.add(new UtrechtSeparatorExamplesPanel("separatorExamplesPanel")); diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/paragraph/utrecht/UtrechtParagraphExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/paragraph/utrecht/UtrechtParagraphExamplesPanel.html new file mode 100644 index 00000000..5908d164 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/paragraph/utrecht/UtrechtParagraphExamplesPanel.html @@ -0,0 +1,37 @@ + + + + +
      +

      Paragraph component

      +
      +

      Toont een alinea aan tekst.

      +
      + +
      +

      Paragraph

      +
      +

      Voorbeeld

      +
      + +
      + +
      +

      Lead Paragraph

      +
      +

      Voorbeeld

      +
      + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/paragraph/utrecht/UtrechtParagraphExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/paragraph/utrecht/UtrechtParagraphExamplesPanel.java new file mode 100644 index 00000000..48531708 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/paragraph/utrecht/UtrechtParagraphExamplesPanel.java @@ -0,0 +1,36 @@ +package nl.rotterdam.wicket.docs.paragraph.utrecht; + +import nl.rotterdam.design_system.wicket.components.paragraph.utrecht.UtrechtParagraph; +import nl.rotterdam.design_system.wicket.components.paragraph.utrecht.UtrechtParagraphAppearance; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class UtrechtParagraphExamplesPanel extends Panel { + + public UtrechtParagraphExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleParagraph() { + return new UtrechtParagraph("utrechtParagraph", "Lorem ipsum dolor sit amet"); + } + + @ComponentExample + private static Component exampleParagraphLead() { + return new UtrechtParagraph( + "utrechtParagraphLead", + "Lorem ipsum dolor sit amet", + UtrechtParagraphAppearance.LEAD + ); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleParagraph()); + add(exampleParagraphLead()); + } +} From 0511a19d6989c6713de467b17a8180b21aed2948 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Sun, 8 Dec 2024 12:15:57 +0100 Subject: [PATCH 52/75] feat: add Link component --- wicket/components-wicket/pom.xml | 8 + .../link/utrecht/UtrechtBookmarkableLink.java | 49 ++++++ .../link/utrecht/UtrechtExternalLink.java | 41 +++++ .../components/link/utrecht/UtrechtLink.java | 60 ++++++++ .../link/utrecht/UtrechtLinkBehavior.java | 19 +++ .../rotterdam/wicket/docs/ComponentsPage.html | 6 + .../rotterdam/wicket/docs/ComponentsPage.java | 2 + .../docs/link/UtrechtLinkExamplesPanel.html | 128 ++++++++++++++++ .../docs/link/UtrechtLinkExamplesPanel.java | 140 ++++++++++++++++++ 9 files changed, 453 insertions(+) create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtBookmarkableLink.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtExternalLink.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtLink.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtLinkBehavior.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link/UtrechtLinkExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link/UtrechtLinkExamplesPanel.java diff --git a/wicket/components-wicket/pom.xml b/wicket/components-wicket/pom.xml index 014f40aa..23771ab5 100644 --- a/wicket/components-wicket/pom.xml +++ b/wicket/components-wicket/pom.xml @@ -223,6 +223,14 @@ nl/rotterdam/design_system/wicket/components/icon/utrecht
      + + false + node_modules/ + + @utrecht/link-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/link/utrecht + false node_modules/ diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtBookmarkableLink.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtBookmarkableLink.java new file mode 100644 index 00000000..1ea3b6ad --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtBookmarkableLink.java @@ -0,0 +1,49 @@ +package nl.rotterdam.design_system.wicket.components.link.utrecht; + +import org.apache.wicket.Page; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.html.link.BookmarkablePageLink; + +public class UtrechtBookmarkableLink extends BookmarkablePageLink { + + public boolean placeholder = false; + + public UtrechtBookmarkableLink(String id, Class pageClass) { + super(id, pageClass); + this.setAutoEnable(true); + } + + @Override + public void onInitialize() { + super.onInitialize(); + add(new UtrechtLinkBehavior()); + } + + @Override + public void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + + if (this.placeholder) { + tag.append("class", "utrecht-link--placeholder", " "); + tag.put("role", "link"); + tag.put("aria-disabled", "true"); + } + + if (linksTo(getPage())) { + tag.put("role", "link"); + tag.put("aria-disabled", "true"); + tag.put("aria-current", "page"); + } + } + + @Override + public boolean isEnabled() { + // Use the `isEnabled()` from `Link` to add an extra condition to disable + // the link: when it is a placeholder. + return super.isEnabled() && !this.placeholder; + } + + public void setPlaceholder(boolean enabled) { + this.placeholder = enabled; + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtExternalLink.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtExternalLink.java new file mode 100644 index 00000000..eb02d763 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtExternalLink.java @@ -0,0 +1,41 @@ +package nl.rotterdam.design_system.wicket.components.link.utrecht; + +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.html.link.ExternalLink; + +public class UtrechtExternalLink extends ExternalLink { + + public boolean placeholder = false; + + public UtrechtExternalLink(final String id, final String href, final String label) { + super(id, href, label); + } + + @Override + public void onInitialize() { + super.onInitialize(); + add(new UtrechtLinkBehavior()); + } + + @Override + public void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + + if (this.placeholder) { + tag.append("class", "utrecht-link--placeholder", " "); + tag.put("role", "link"); + tag.put("aria-disabled", "true"); + } + } + + @Override + public boolean isEnabled() { + // Use the `isEnabled()` from `Link` to add an extra condition to disable + // the link: when it is a placeholder. + return super.isEnabled() && !this.placeholder; + } + + public void setPlaceholder(boolean enabled) { + this.placeholder = enabled; + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtLink.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtLink.java new file mode 100644 index 00000000..07934b97 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtLink.java @@ -0,0 +1,60 @@ +package nl.rotterdam.design_system.wicket.components.link.utrecht; + +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.html.link.Link; +import org.apache.wicket.model.IModel; +import org.apache.wicket.request.component.IRequestablePage; + +public class UtrechtLink extends Link { + + public Class webPage = null; + public boolean placeholder = false; + + public UtrechtLink(final String id) { + super(id); + } + + public UtrechtLink(final String id, IModel model) { + super(id, model); + } + + public UtrechtLink(final String id, IModel model, Class webPage) { + super(id, model); + this.webPage = webPage; + } + + @Override + public void onClick() { + if (this.webPage != null) { + setResponsePage(this.webPage); + } + } + + @Override + public void onInitialize() { + super.onInitialize(); + add(new UtrechtLinkBehavior()); + } + + @Override + public void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + + if (this.placeholder) { + tag.append("class", "utrecht-link--placeholder", " "); + tag.put("role", "link"); + tag.put("aria-disabled", "true"); + } + } + + @Override + public boolean isEnabled() { + // Use the `isEnabled()` from `Link` to add an extra condition to disable + // the link: when it is a placeholder. + return super.isEnabled() && !this.placeholder; + } + + public void setPlaceholder(boolean enabled) { + this.placeholder = enabled; + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtLinkBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtLinkBehavior.java new file mode 100644 index 00000000..5710d01d --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link/utrecht/UtrechtLinkBehavior.java @@ -0,0 +1,19 @@ +package nl.rotterdam.design_system.wicket.components.link.utrecht; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; + +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; + +public class UtrechtLinkBehavior extends TagNameClassComponentBehavior { + + public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem( + UtrechtLinkBehavior.class, + "@utrecht/link-css/dist/index.css" + ); + + public UtrechtLinkBehavior() { + super("a", "utrecht-link", "utrecht-link--html-a"); + addHeaderItem(CSS); + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index bbd8d437..cc80bfa5 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -19,6 +19,11 @@

      Components

      +

      + Deze componenten zijn ontwikkeld voor Apache Wicket. Lees meer in de + Apache Wicket 10.x Reference Guide. +

      @@ -33,6 +38,7 @@

      Components

      + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java index 2812421e..6eb6704e 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java @@ -21,6 +21,7 @@ import nl.rotterdam.wicket.docs.heading_group.HeadingGroupExamplesPanel; import nl.rotterdam.wicket.docs.html_content.HtmlContentExamplesPanel; import nl.rotterdam.wicket.docs.icon.IconExamplesPanel; +import nl.rotterdam.wicket.docs.link.UtrechtLinkExamplesPanel; import nl.rotterdam.wicket.docs.logo.UtrechtLogoExamplesPanel; import nl.rotterdam.wicket.docs.logo_image.RotterdamLogoImageExamplesPanel; import nl.rotterdam.wicket.docs.number_badge.UtrechtNumberBadgeExamplesPanel; @@ -117,6 +118,7 @@ protected void onInitialize() { pageBody.add(new HtmlContentExamplesPanel("htmlContentExamplesPanel")); pageBody.add(new IconExamplesPanel("iconExamplesPanel")); pageBody.add(new RotterdamLogoImageExamplesPanel("rotterdamLogoImageExamplesPanel")); + pageBody.add(new UtrechtLinkExamplesPanel("linkExamplesPanel")); pageBody.add(new UtrechtLogoExamplesPanel("logoExamplesPanel")); pageBody.add(new UtrechtNumberBadgeExamplesPanel("numberBadgeExamplesPanel")); pageBody.add(new UtrechtOrderedListExamplesPanel("orderedListExamplesPanel")); diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link/UtrechtLinkExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link/UtrechtLinkExamplesPanel.html new file mode 100644 index 00000000..f8d93b54 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link/UtrechtLinkExamplesPanel.html @@ -0,0 +1,128 @@ + + + + +
      +

      Link component

      +
      +

      Toont een tekstlabel dat informeert over de in te vullen informatie.

      +
      + +
      +

      Link met Link

      +
      +
      +

      Voorbeeld van een "vanilla" Link van Apache Wicket, ter referentie.

      +
      +
      + + +
      + +
      +

      Link met ExternalLink

      +
      +

      Voorbeeld van een "vanilla" ExternalLink van Apache Wicket, ter referentie.

      +
      + + +
      + +
      +

      Link met Link

      +
      +

      Voorbeeld van de UtrechtLink class.

      +
      + + +
      + +
      +

      Link met ExternalLink

      +
      +

      Voorbeeld van de UtrechtExternalLink class.

      +
      + + +
      + +
      +

      Link met BookmarkableLink

      +
      +

      Voorbeeld van de UtrechtBookmarkableLink class.

      +
      + + +
      + +
      +

      Link met BookmarkableLink naar de huidige pagina

      +
      +

      + Voorbeeld van de UtrechtBookmarkableLink class die naar de huidige pagina verwijst. + Automatisch wordt aria-current toegevoegd. +

      +
      + + +
      + +
      +

      Link met Link

      +
      +

      Voorbeeld van de Link met een UtrechtLinkBehavior.

      +
      + + +
      + +
      +

      Link met ExternalLink

      +
      +

      Voorbeeld van de ExternalLink met een UtrechtLinkBehavior.

      +
      + + +
      + +
      +

      Placeholder Link met UtrechtLink

      +
      +

      Voorbeeld.

      +
      + + +
      + +
      +

      Placeholder Link met UtrechtLinkExternal

      +
      +

      Voorbeeld.

      +
      + + +
      + +
      +

      Placeholder Link met UtrechtBookmarkableLink

      +
      +

      Voorbeeld.

      +
      + + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link/UtrechtLinkExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link/UtrechtLinkExamplesPanel.java new file mode 100644 index 00000000..9951761f --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link/UtrechtLinkExamplesPanel.java @@ -0,0 +1,140 @@ +package nl.rotterdam.wicket.docs.link; + +import nl.rotterdam.design_system.wicket.components.link.utrecht.UtrechtBookmarkableLink; +import nl.rotterdam.design_system.wicket.components.link.utrecht.UtrechtExternalLink; +import nl.rotterdam.design_system.wicket.components.link.utrecht.UtrechtLink; +import nl.rotterdam.design_system.wicket.components.link.utrecht.UtrechtLinkBehavior; +import nl.rotterdam.wicket.docs.ComponentExample; +import nl.rotterdam.wicket.docs.ComponentsPage; +import nl.rotterdam.wicket.docs.mijn_loket_page.MijnLoketPage; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.link.ExternalLink; +import org.apache.wicket.markup.html.link.Link; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.Model; + +public class UtrechtLinkExamplesPanel extends Panel { + + public UtrechtLinkExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleLinkLabel() { + // Vanilla Apache Wicket implementation, for reference + return new Link("link") { + @Override + public void onClick() { + setResponsePage(ComponentsPage.class); + } + }; + } + + @ComponentExample + private static Component exampleLinkExternal() { + // Vanilla Apache Wicket implementation, for reference + return new ExternalLink("linkExternal", "https://example.com/", "example.com"); + } + + @ComponentExample + private static Component exampleUtrechtLink() { + return new UtrechtLink("utrechtLink", Model.of("Homepage"), ComponentsPage.class); + } + + @ComponentExample + private static Component exampleUtrechtBookmarkableLink() { + return new UtrechtBookmarkableLink<>("utrechtBookmarkableLink", MijnLoketPage.class); + } + + @ComponentExample + private static Component exampleUtrechtBookmarkableLinkCurrent() { + return new UtrechtBookmarkableLink<>("utrechtBookmarkableLinkCurrent", ComponentsPage.class); + } + + @ComponentExample + private static Component exampleUtrechtLinkExternal() { + return new UtrechtExternalLink("utrechtLinkExternal", "https://example.com", "example.com"); + } + + @ComponentExample + private static Component exampleUtrechtLinkBehavior() { + return new Link("utrechtLinkBehavior", Model.of("Homepage")) { + @Override + public void onInitialize() { + super.onInitialize(); + add(new UtrechtLinkBehavior()); + } + + @Override + public void onClick() { + setResponsePage(ComponentsPage.class); + } + }; + } + + @ComponentExample + private static Component exampleUtrechtLinkExternalBehavior() { + return new ExternalLink("utrechtLinkExternalBehavior", "https://example.com/", "example.com") { + @Override + public void onInitialize() { + super.onInitialize(); + add(new UtrechtLinkBehavior()); + } + }; + } + + @ComponentExample + private static Component exampleUtrechtLinkPlaceholder() { + // `setDisabled()` is default functionality on `Link` + UtrechtLink link = new UtrechtLink( + "utrechtLinkPlaceholder", + Model.of("Homepage"), + ComponentsPage.class + ); + + link.setPlaceholder(true); + return link; + } + + @ComponentExample + private static Component exampleUtrechtLinkExternalPlaceholder() { + // `setDisabled()` is default functionality on `Link` + UtrechtExternalLink link = new UtrechtExternalLink( + "utrechtLinkExternalPlaceholder", + "https://example.com/", + "example.com" + ); + + link.setPlaceholder(true); + return link; + } + + @ComponentExample + private static Component exampleUtrechtBookmarkableLinkPlaceholder() { + // `setDisabled()` is default functionality on `Link` + UtrechtBookmarkableLink link = new UtrechtBookmarkableLink<>( + "utrechtBookmarkableLinkPlaceholder", + ComponentsPage.class + ); + + link.setPlaceholder(true); + return link; + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleLinkLabel()); + add(exampleLinkExternal()); + add(exampleUtrechtLink()); + add(exampleUtrechtBookmarkableLink()); + add(exampleUtrechtBookmarkableLinkCurrent()); + add(exampleUtrechtLinkExternal()); + add(exampleUtrechtLinkBehavior()); + add(exampleUtrechtLinkExternalBehavior()); + add(exampleUtrechtLinkPlaceholder()); + add(exampleUtrechtLinkExternalPlaceholder()); + add(exampleUtrechtBookmarkableLinkPlaceholder()); + } +} From 10755f861f92f7862537326fd90cca6065780b6c Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Sun, 8 Dec 2024 14:43:44 +0100 Subject: [PATCH 53/75] feat: add Button component --- wicket/components-wicket/pom.xml | 8 + .../button/utrecht/UtrechtButton.java | 76 +++++++++ .../utrecht/UtrechtButtonAppearance.java | 14 ++ .../button/utrecht/UtrechtButtonBehavior.java | 19 +++ .../button/utrecht/UtrechtButtonHint.java | 13 ++ .../rotterdam/wicket/docs/ComponentsPage.html | 1 + .../rotterdam/wicket/docs/ComponentsPage.java | 2 + .../button/UtrechtButtonExamplesPanel.html | 157 ++++++++++++++++++ .../button/UtrechtButtonExamplesPanel.java | 113 +++++++++++++ 9 files changed, 403 insertions(+) create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButton.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButtonAppearance.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButtonBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButtonHint.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button/UtrechtButtonExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button/UtrechtButtonExamplesPanel.java diff --git a/wicket/components-wicket/pom.xml b/wicket/components-wicket/pom.xml index 23771ab5..05fbb5b1 100644 --- a/wicket/components-wicket/pom.xml +++ b/wicket/components-wicket/pom.xml @@ -113,6 +113,14 @@ nl/rotterdam/design_system/wicket/components/body/utrecht
      + + false + node_modules/ + + @utrecht/button-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/button/utrecht + false node_modules/ diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButton.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButton.java new file mode 100644 index 00000000..c2ad373a --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButton.java @@ -0,0 +1,76 @@ +package nl.rotterdam.design_system.wicket.components.button.utrecht; + +import org.apache.wicket.Component; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.html.form.Button; +import org.apache.wicket.model.IModel; + +public class UtrechtButton extends Button { + + public boolean busy = false; + public UtrechtButtonAppearance appearance = null; + public UtrechtButtonHint hint = null; + + // Pressed is a nullable boolean + public Boolean pressed = null; + + public UtrechtButton(String id) { + this(id, null); + } + + public UtrechtButton(final String id, final IModel model) { + super(id, model); + } + + public void setAppearance(UtrechtButtonAppearance appearance) { + this.appearance = appearance; + } + + public void setHint(UtrechtButtonHint hint) { + this.hint = hint; + } + + public void setBusy(boolean busy) { + this.busy = busy; + } + + public void setPressed(Boolean pressed) { + this.pressed = pressed; + } + + @Override + public void onInitialize() { + super.onInitialize(); + boolean isEnabled = this.isEnabled(); + boolean isBusy = this.busy; + UtrechtButtonAppearance appearance = this.appearance; + UtrechtButtonHint hint = this.hint; + Boolean isPressed = this.pressed; + + add( + new UtrechtButtonBehavior() { + @Override + public String[] getClassNames() { + return new String[] { + "utrecht-button", + appearance != null ? "utrecht-button--" + appearance.appearance : "", + hint != null ? "utrecht-button--" + hint.hint : "", + isEnabled ? "" : "utrecht-button--disabled", + isPressed != null && isPressed == true ? "utrecht-button--pressed" : "", + isBusy ? "utrecht-button--busy" : "", + }; + } + + @Override + public void onComponentTag(Component component, ComponentTag tag) { + super.onComponentTag(component, tag); + + // Create a toggle button when the nullable boolean `isPressed` is a boolean. + if (isPressed != null) { + tag.put("aria-pressed", isPressed ? "true" : "false"); + } + } + } + ); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButtonAppearance.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButtonAppearance.java new file mode 100644 index 00000000..645eac9c --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButtonAppearance.java @@ -0,0 +1,14 @@ +package nl.rotterdam.design_system.wicket.components.button.utrecht; + +public enum UtrechtButtonAppearance { + PRIMARY_ACTION("primary-action"), + SECONDARY_ACTION("secondary-action"), + SUBTLE("subtle"), + DEFAULT(""); + + final String appearance; + + UtrechtButtonAppearance(String appearance) { + this.appearance = appearance; + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButtonBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButtonBehavior.java new file mode 100644 index 00000000..7dda7de3 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButtonBehavior.java @@ -0,0 +1,19 @@ +package nl.rotterdam.design_system.wicket.components.button.utrecht; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; + +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; + +public class UtrechtButtonBehavior extends TagNameClassComponentBehavior { + + public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem( + UtrechtButtonBehavior.class, + "@utrecht/button-css/dist/index.css" + ); + + public UtrechtButtonBehavior() { + super("button", "utrecht-button", "utrecht-button--html-button"); + addHeaderItem(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButtonHint.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButtonHint.java new file mode 100644 index 00000000..130d81d8 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/button/utrecht/UtrechtButtonHint.java @@ -0,0 +1,13 @@ +package nl.rotterdam.design_system.wicket.components.button.utrecht; + +public enum UtrechtButtonHint { + DANGER("danger"), + WARNING("warning"), + READY("ready"); + + final String hint; + + UtrechtButtonHint(String hint) { + this.hint = hint; + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index cc80bfa5..2eb58216 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -27,6 +27,7 @@

      Components

      + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java index 6eb6704e..17ec72db 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java @@ -11,6 +11,7 @@ import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; import nl.rotterdam.wicket.docs.badge_list.BadgeListExamplesPanel; import nl.rotterdam.wicket.docs.body.BodyExamplesPanel; +import nl.rotterdam.wicket.docs.button.UtrechtButtonExamplesPanel; import nl.rotterdam.wicket.docs.button_group.ButtonGroupExamplesPanel; import nl.rotterdam.wicket.docs.code_block.CodeBlockExamplesPanel; import nl.rotterdam.wicket.docs.column_layout.ColumnLayoutExamplesPanel; @@ -107,6 +108,7 @@ protected void onInitialize() { pageBody.add(new AlertExamplesPanel("alertExamplesPanel")); pageBody.add(new BadgeListExamplesPanel("badgeListExamplesPanel")); pageBody.add(new BodyExamplesPanel("bodyExamplesPanel")); + pageBody.add(new UtrechtButtonExamplesPanel("buttonExamplesPanel")); pageBody.add(new ButtonGroupExamplesPanel("buttonGroupExamplesPanel")); pageBody.add(new CodeBlockExamplesPanel("codeBlockExamplesPanel")); pageBody.add(new ColumnLayoutExamplesPanel("columnLayoutExamplesPanel")); diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button/UtrechtButtonExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button/UtrechtButtonExamplesPanel.html new file mode 100644 index 00000000..3c477ae9 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button/UtrechtButtonExamplesPanel.html @@ -0,0 +1,157 @@ + + + + +
      +

      Button component

      +
      +

      Biedt de mogelijkheid om een actie uit te voeren.

      +
      + +
      +

      Button

      +
      +

      Voorbeeld.

      +
      + +
      + +
      +

      Disabled Button

      +
      +

      Voorbeeld.

      +
      + +
      + +
      +

      Busy Button

      +
      +

      Voorbeeld.

      +
      + +
      + +
      +

      Toggle Button

      +
      +

      Voorbeeld.

      +
      + +
      + +
      +

      Pressed Toggle Button

      +
      +

      Voorbeeld.

      +
      + +
      + +
      +

      Button met Icon Start

      +
      +

      Voorbeeld.

      +
      + +
      +
      + +
      +

      Primary Action Button

      +
      +

      Voorbeeld.

      +
      + +
      + +
      +

      Secondary Action Button

      +
      +

      Voorbeeld.

      +
      + +
      + +
      +

      Subtle Button

      +
      +

      Voorbeeld.

      +
      + +
      + +
      +

      Primary Action + Danger Button

      +
      +

      Voorbeeld.

      +
      + +
      + +
      +

      Submit Button

      +
      +

      Voorbeeld.

      +
      + +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button/UtrechtButtonExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button/UtrechtButtonExamplesPanel.java new file mode 100644 index 00000000..c98480ff --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/button/UtrechtButtonExamplesPanel.java @@ -0,0 +1,113 @@ +package nl.rotterdam.wicket.docs.button; + +import nl.rotterdam.design_system.wicket.components.button.utrecht.UtrechtButton; +import nl.rotterdam.design_system.wicket.components.button.utrecht.UtrechtButtonAppearance; +import nl.rotterdam.design_system.wicket.components.button.utrecht.UtrechtButtonHint; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; + +public class UtrechtButtonExamplesPanel extends Panel { + + public UtrechtButtonExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component utrechtButton() { + return new UtrechtButton("utrechtButton"); + } + + @ComponentExample + private static Component utrechtButtonDisabled() { + UtrechtButton button = new UtrechtButton("utrechtButtonDisabled"); + button.setEnabled(false); + return button; + } + + @ComponentExample + private static Component utrechtButtonBusy() { + UtrechtButton button = new UtrechtButton("utrechtButtonBusy"); + button.setBusy(true); + return button; + } + + @ComponentExample + private static Component utrechtButtonToggle() { + UtrechtButton button = new UtrechtButton("utrechtButtonToggle"); + button.setPressed(false); + return button; + } + + @ComponentExample + private static Component utrechtButtonPressed() { + UtrechtButton button = new UtrechtButton("utrechtButtonPressed"); + button.setPressed(true); + return button; + } + + @ComponentExample + private static Component utrechtButtonIconStart() { + UtrechtButton button = new UtrechtButton("utrechtButtonIconStart"); + return button; + } + + @ComponentExample + private static Component utrechtButtonPrimaryAction() { + UtrechtButton button = new UtrechtButton("utrechtButtonPrimaryAction"); + button.setAppearance(UtrechtButtonAppearance.PRIMARY_ACTION); + return button; + } + + @ComponentExample + private static Component utrechtButtonSecondaryAction() { + UtrechtButton button = new UtrechtButton("utrechtButtonSecondaryAction"); + button.setAppearance(UtrechtButtonAppearance.SECONDARY_ACTION); + return button; + } + + @ComponentExample + private static Component utrechtButtonSubtle() { + UtrechtButton button = new UtrechtButton("utrechtButtonSubtle"); + button.setAppearance(UtrechtButtonAppearance.SUBTLE); + return button; + } + + @ComponentExample + private static Component utrechtButtonPrimaryActionDanger() { + UtrechtButton button = new UtrechtButton("utrechtButtonPrimaryActionDanger"); + button.setAppearance(UtrechtButtonAppearance.PRIMARY_ACTION); + button.setHint(UtrechtButtonHint.DANGER); + return button; + } + + @ComponentExample + private static Component utrechtButtonSubmit() { + UtrechtButton button = new UtrechtButton("utrechtButtonSubmit") { + // @Override + // protected void onSubmit() { + // info("Submitted!"); + // super.onSubmit(); + // } + }; + // TODO: Find out how this works + return button; + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(utrechtButton()); + add(utrechtButtonDisabled()); + add(utrechtButtonBusy()); + add(utrechtButtonToggle()); + add(utrechtButtonPressed()); + add(utrechtButtonIconStart()); + add(utrechtButtonPrimaryAction()); + add(utrechtButtonSecondaryAction()); + add(utrechtButtonSubtle()); + add(utrechtButtonPrimaryActionDanger()); + add(utrechtButtonSubmit()); + } +} From b9922c959ec3ca08a9b97d9e8aacf82cc02af1c2 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Sun, 8 Dec 2024 16:41:27 +0100 Subject: [PATCH 54/75] refactor: allow customizing class names for TagNameClassComponentBehavior --- .../base/TagNameClassComponentBehavior.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java index 6cb2c7bd..50252b80 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/base/TagNameClassComponentBehavior.java @@ -1,14 +1,13 @@ package nl.rotterdam.design_system.wicket.components.base; +import java.util.ArrayList; +import java.util.List; import org.apache.wicket.Component; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; -import java.util.ArrayList; -import java.util.List; - public abstract class TagNameClassComponentBehavior extends Behavior { private final String expectedTagName; @@ -28,6 +27,10 @@ public void addHeaderItem(CssReferenceHeaderItem headerItem) { headerItems.add(headerItem); } + public String[] getClassNames() { + return classNames; + } + public void onComponentTag(Component component, ComponentTag tag) { super.onComponentTag(component, tag); @@ -36,7 +39,7 @@ public void onComponentTag(Component component, ComponentTag tag) { } if (!tag.isClose()) { - tag.append("class", String.join(" ", classNames), " "); + tag.append("class", String.join(" ", this.getClassNames()), " "); } } From 0668ac8c1fdb5b9b740f5f31138934a4d7a24515 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Sun, 8 Dec 2024 18:45:05 +0100 Subject: [PATCH 55/75] feat: create example pages based on RotterdamBasePage --- .../rotterdam/wicket/docs/ComponentsPage.html | 111 +- .../rotterdam/wicket/docs/ComponentsPage.java | 43 +- .../wicket/docs/DocsApplication.java | 11 + .../wicket/docs/RotterdamBasePage.html | 28 + .../wicket/docs/RotterdamBasePage.java | 83 ++ .../wicket/docs/RotterdamHelloWorldPage.html | 1071 +++++++++++++++++ .../wicket/docs/RotterdamHelloWorldPage.java | 9 + .../wicket/docs/RotterdamHtmlPage.html | 5 + .../wicket/docs/RotterdamHtmlPage.java | 13 + .../wicket/docs/RotterdamPlaceholderPage.html | 7 + .../wicket/docs/RotterdamPlaceholderPage.java | 13 + .../wicket/docs/login_page/LoginPage.html | 31 + .../wicket/docs/login_page/LoginPage.java | 15 + .../docs/mijn_loket_page/MijnLoketPage.html | 35 + .../docs/mijn_loket_page/MijnLoketPage.java | 89 ++ .../SingleSignOnLoginFormPanel.html | 38 + .../SingleSignOnLoginFormPanel.java | 57 + .../sso_login_page/SingleSignOnLoginPage.html | 5 + .../sso_login_page/SingleSignOnLoginPage.java | 17 + 19 files changed, 1582 insertions(+), 99 deletions(-) create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHelloWorldPage.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHelloWorldPage.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHtmlPage.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHtmlPage.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamPlaceholderPage.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamPlaceholderPage.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/login_page/LoginPage.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/login_page/LoginPage.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/mijn_loket_page/MijnLoketPage.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/mijn_loket_page/MijnLoketPage.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginFormPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginFormPanel.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginPage.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginPage.java diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index 2eb58216..d6b4b359 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -1,63 +1,52 @@ - - - - - - - - - - -
      -
      - -
      + +
      +
      + +
      -

      Components

      -

      - Deze componenten zijn ontwikkeld voor Apache Wicket. Lees meer in de - Apache Wicket 10.x Reference Guide. -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - +

      Componenten voor Apache Wicket

      +

      + Deze componenten zijn ontwikkeld voor Apache Wicket, op basis van de NL + Design System architectuur en de bestaande componenten in de + NL Design System Community. +

      +

      + Lees meer over ontwikkelen voor Apache Wicket in de + Apache Wicket 10.x Reference Guide. +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + -

      Link to trigger Wicket stateful page refresh

      -
      - - Page footer - - -
      - - +

      Link to trigger Wicket stateful page refresh

      +
      +
      diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java index 17ec72db..903bc1b8 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java @@ -2,12 +2,6 @@ import css.DesignSystemTheme; import java.util.Arrays; -import nl.rotterdam.design_system.wicket.components.logo.utrecht.UtrechtLogoBorder; -import nl.rotterdam.design_system.wicket.components.logo_image.rotterdam.RotterdamLogoImage; -import nl.rotterdam.design_system.wicket.components.page_body.utrecht.UtrechtPageBodyBorder; -import nl.rotterdam.design_system.wicket.components.page_footer.utrecht.UtrechtPageFooterBorder; -import nl.rotterdam.design_system.wicket.components.page_header.utrecht.UtrechtPageHeaderBorder; -import nl.rotterdam.design_system.wicket.components.page_layout.utrecht.UtrechtPageLayoutBorder; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; import nl.rotterdam.wicket.docs.badge_list.BadgeListExamplesPanel; import nl.rotterdam.wicket.docs.body.BodyExamplesPanel; @@ -40,7 +34,6 @@ import org.apache.wicket.markup.head.JavaScriptHeaderItem; import org.apache.wicket.markup.head.JavaScriptReferenceHeaderItem; import org.apache.wicket.markup.head.JavaScriptReferenceType; -import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.LambdaChoiceRenderer; import org.apache.wicket.markup.html.link.Link; @@ -49,7 +42,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ComponentsPage extends BasePage { +public class ComponentsPage extends RotterdamBasePage { private static final Logger LOGGER = LoggerFactory.getLogger(ComponentsPage.class); private static final JavaScriptReferenceHeaderItem COMPONENTS_JS_HEADER_ITEM = JavaScriptHeaderItem.forReference( @@ -76,34 +69,10 @@ private static Component createActiveThemeChoice() { ).setOutputMarkupId(true); } - private UtrechtPageLayoutBorder pageLayout; - private UtrechtPageHeaderBorder pageHeader; - private UtrechtPageBodyBorder pageBody; - private UtrechtPageFooterBorder pageFooter; - private UtrechtLogoBorder logo; - @Override protected void onInitialize() { super.onInitialize(); - // Build up the page layout - pageLayout = new UtrechtPageLayoutBorder("utrechtPageLayout"); - add(pageLayout); - - pageHeader = new UtrechtPageHeaderBorder("utrechtPageHeader"); - pageLayout.add(pageHeader); - - logo = new UtrechtLogoBorder("utrechtLogo"); - pageHeader.add(logo); - - logo.add(new RotterdamLogoImage("rotterdamLogoImage")); - - pageBody = new UtrechtPageBodyBorder("utrechtPageBody"); - pageLayout.add(pageBody); - - pageFooter = new UtrechtPageFooterBorder("utrechtPageFooter"); - pageLayout.add(pageFooter); - // Add the component stories pageBody.add(new AlertExamplesPanel("alertExamplesPanel")); pageBody.add(new BadgeListExamplesPanel("badgeListExamplesPanel")); @@ -133,11 +102,6 @@ protected void onInitialize() { pageBody.add(new UtrechtSeparatorExamplesPanel("separatorExamplesPanel")); pageBody.add(new UtrechtUnorderedListExamplesPanel("unorderedListExamplesPanel")); - add( - // TODO set title using model in BasePage - new Label(TITLE_ID, "ComponentsPage · Apache Wicket · Rotterdam Design System") - ); - pageBody.add(createActiveThemeChoice()); pageBody.add(createRefreshPgaeLink()); } @@ -150,5 +114,8 @@ public void renderHead(IHeaderResponse response) { response.render(COMPONENTS_JS_HEADER_ITEM); } - public ComponentsPage() {} + public ComponentsPage() { + super(); + this.pageTitle = "Componenten voor Apache Wicket"; + } } diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsApplication.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsApplication.java index de59cab7..c8c9e172 100755 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsApplication.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsApplication.java @@ -1,7 +1,10 @@ package nl.rotterdam.wicket.docs; +import nl.rotterdam.wicket.docs.mijn_loket_page.MijnLoketPage; +import nl.rotterdam.wicket.docs.sso_login_page.SingleSignOnLoginPage; import org.apache.wicket.csp.CSPDirective; import org.apache.wicket.csp.CSPDirectiveSrcValue; +import org.apache.wicket.markup.html.HTML5Attributes; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.protocol.http.WebApplication; import org.apache.wicket.settings.ExceptionSettings; @@ -15,6 +18,9 @@ public void init() { // Avoid in the output HTML getMarkupSettings().setStripWicketTags(true); + // A listener to instantiations of FormComponents to add HTML5 attributes. + getComponentInstantiationListeners().add(new HTML5Attributes.InstantiationListener()); + // Configure our own fance error page getExceptionSettings().setUnexpectedExceptionDisplay(ExceptionSettings.SHOW_EXCEPTION_PAGE); @@ -44,6 +50,11 @@ public void init() { .add(CSPDirective.STYLE_SRC, CSPDirectiveSrcValue.UNSAFE_INLINE) .add(CSPDirective.SCRIPT_SRC, CSPDirectiveSrcValue.SELF) .add(CSPDirective.STYLE_SRC, CSPDirectiveSrcValue.SELF); + mountPage("sso", SingleSignOnLoginPage.class); + mountPage("rotterdam-base-page", RotterdamBasePage.class); + mountPage("hello-world", RotterdamHelloWorldPage.class); + mountPage("mijn-loket", MijnLoketPage.class); + mountPage("voorbeeld", RotterdamPlaceholderPage.class); } @Override diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.html new file mode 100644 index 00000000..d2aee4ab --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.html @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + +
      + +
      +
      + Page footer +
      + +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java new file mode 100644 index 00000000..ebbda37c --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java @@ -0,0 +1,83 @@ +package nl.rotterdam.wicket.docs; + +import java.util.Arrays; +import java.util.stream.Collectors; +import nl.rotterdam.design_system.wicket.components.body.utrecht.UtrechtBodyBehavior; +import nl.rotterdam.design_system.wicket.components.link.utrecht.UtrechtBookmarkableLink; +import nl.rotterdam.design_system.wicket.components.logo.utrecht.UtrechtLogoBorder; +import nl.rotterdam.design_system.wicket.components.logo_image.rotterdam.RotterdamLogoImage; +import nl.rotterdam.design_system.wicket.components.page_body.utrecht.UtrechtPageBodyBorder; +import nl.rotterdam.design_system.wicket.components.page_footer.utrecht.UtrechtPageFooterBorder; +import nl.rotterdam.design_system.wicket.components.page_header.utrecht.UtrechtPageHeaderBorder; +import nl.rotterdam.design_system.wicket.components.page_layout.utrecht.UtrechtPageLayoutBorder; +import nl.rotterdam.design_system.wicket.components.root.utrecht.UtrechtRootBehavior; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.link.Link; + +public class RotterdamBasePage extends BasePage { + + public UtrechtPageLayoutBorder pageLayout; + public UtrechtPageHeaderBorder pageHeader; + public UtrechtPageBodyBorder pageBody; + public UtrechtPageFooterBorder pageFooter; + private UtrechtLogoBorder logo; + private String siteTitle = "rotterdam.nl"; + public String pageTitle; + public String stepTitle; + public String errorTitle; + public String titlePartSeparator = " · "; + + @Override + protected void onInitialize() { + super.onInitialize(); + + // Build up the page layout + pageLayout = new UtrechtPageLayoutBorder("utrechtPageLayout"); + add(pageLayout); + + pageHeader = new UtrechtPageHeaderBorder("utrechtPageHeader"); + pageLayout.add(pageHeader); + + logo = new UtrechtLogoBorder("utrechtLogo"); + pageHeader.add(logo); + + // Use Apache Wicket API to determine the internal homepage + // TODO: Allow configuring an external homepage URL, outside of this application. + Link logoLink = new UtrechtBookmarkableLink<>("logoLink", getApplication().getHomePage()); + logo.add(logoLink); + + logoLink.add(new RotterdamLogoImage("rotterdamLogoImage")); + + pageBody = new UtrechtPageBodyBorder("utrechtPageBody"); + pageLayout.add(pageBody); + + pageFooter = new UtrechtPageFooterBorder("utrechtPageFooter"); + pageLayout.add(pageFooter); + + String[] titleParts = new String[] { this.errorTitle, this.stepTitle, this.pageTitle, this.siteTitle }; + + add( + new Label( + "title", + Arrays.stream(titleParts) + .filter(part -> part != null && !part.trim().isEmpty()) + .collect(Collectors.joining(titlePartSeparator)) + ) + ); + } + + public RotterdamBasePage() {} + + @Override + public void renderHead(IHeaderResponse response) { + super.renderHead(response); + + // Add the style of the following components directly, because I don't know how to apply a behavior to the and elements + // - Root for + // - Body for + + response.render(UtrechtRootBehavior.CSS); + response.render(UtrechtBodyBehavior.CSS); + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHelloWorldPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHelloWorldPage.html new file mode 100644 index 00000000..6414cc2e --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHelloWorldPage.html @@ -0,0 +1,1071 @@ + + + +
      +
      +
      +

      Hello, World!

      +

      + Lorem ipsum dolor sit amet, + consectetur adipiscing elit. Nullam lacus felis, + condimentum eu condimentum et, condimentum id tortor. Fusce rutrum interdum dolor. Cras ligula + dolor, iaculis id vulputate vitae, egestas quis mauris. Aliquam pharetra, lectus sed sollicitudin + tincidunt, massa enim venenatis mi, quis pretium eros est id nisl. Nam ac dui enim. Nam + efficitur aliquam lacinia. Pellentesque rhoncus nulla eget dui iaculis, ac iaculis ante dictum. Nam rutrum + diam eget aliquet gravida. Mauris dictum mi in nibh varius feugiat. In hac habitasse platea + dictumst. Sed aliquet nisi id nunc + pellentesque varius. Vestibulum sed tincidunt ligula. Aliquam consectetur nibh purus, ullamcorper bibendum + augue volutpat vitae. Nullam pretium quam sed ultricies suscipit. Quisque ut malesuada eros, eu tincidunt + tellus. Aenean eget tristique turpis, a tristique lacus. +

      +

      The Quick Brown Fox Jumps Over The Heading 2

      +

      + Nam nec bibendum lorem. Etiam at arcu facilisis, posuere augue eu, semper dui. Maecenas molestie, lorem ac + dictum fringilla, leo felis tincidunt nulla, sit amet vestibulum neque velit sit amet lectus. Fusce + laoreet non felis at accumsan. Mauris maximus id lorem id varius. Aliquam vehicula nibh porta, pulvinar + sapien a, rhoncus ante. Nunc id venenatis tellus, non mollis velit. Pellentesque sodales enim non urna + porta, eget egestas nisl lobortis. Vestibulum metus purus, molestie sit amet lobortis ac, dignissim non + risus. Curabitur et malesuada augue. +

      +

      The Quick Brown Fox Jumps Over The Heading 3

      +

      + Phasellus eget convallis nulla. Integer auctor arcu in ipsum maximus efficitur. Nullam fringilla eros et + tempor dignissim. Cras sodales nunc in enim sodales, ut accumsan ex scelerisque. Praesent ornare tortor + sed erat vulputate, vitae posuere sapien ornare. Vivamus sollicitudin quam in consequat ultrices. Nunc eu + tellus nibh. Morbi ornare risus dictum pellentesque consequat. Class aptent taciti sociosqu ad litora + torquent per conubia nostra, per inceptos himenaeos. Nunc porta velit ullamcorper, vestibulum odio non, + feugiat lorem. Nam venenatis vel risus a placerat. Curabitur aliquet turpis sit amet molestie vehicula. +

      +

      The Quick Brown Fox Jumps Over The Heading 4

      +

      + Nunc vel elit accumsan, tempus ante eget, tempor nisl. Nunc vel ex vel justo molestie laoreet eget id ex. + Nullam euismod ultricies arcu, a molestie odio condimentum ut. Vivamus sodales felis sit amet dolor + fringilla, at lacinia risus laoreet. Curabitur mattis elit quam. Quisque blandit metus vitae sem fringilla + ultricies. Donec rutrum porta risus, ac viverra lacus fringilla eu. Donec tempor ipsum vitae turpis + dignissim ultrices eget vel diam. Curabitur at diam efficitur, pharetra nisi sed, laoreet magna. Morbi + vitae mi lorem. Suspendisse tincidunt consectetur nunc, a iaculis augue tristique eleifend. Fusce euismod, + nulla et lacinia tempus, quam urna varius orci, eu pharetra dolor lectus sed tortor. +

      +
      The Quick Brown Fox Jumps Over The Heading 5
      +

      + Quisque felis neque, blandit vel fringilla id, fringilla ac metus. Donec laoreet purus eu sagittis + vestibulum. Donec enim ipsum, rhoncus a molestie sit amet, mattis sed tellus. Mauris volutpat id magna sit + amet ultricies. Nam finibus dapibus ipsum. Cras dictum ornare dapibus. Mauris at tincidunt lacus. + Phasellus commodo velit eget egestas luctus. Vivamus placerat lacus at tortor rhoncus, suscipit molestie + metus ullamcorper. +

      +
      The Quick Brown Fox Jumps Over The Heading 6
      +

      + Fusce non mi efficitur, cursus purus eu, commodo magna. Donec quis ante at lacus rutrum tincidunt at eu + nibh. Suspendisse gravida sagittis orci, sit amet posuere ex pretium vel. Curabitur bibendum nibh ante, in + commodo sapien semper sit amet. Ut ut metus et sem tempus pretium. Sed ultricies mauris lorem, ut suscipit + lacus fermentum eu. Sed dignissim eros lectus, id rutrum risus pulvinar vitae. Cras feugiat neque sed + ligula sollicitudin vulputate. Nullam tristique, dolor sit amet condimentum sagittis, erat urna + pellentesque ex, quis pharetra leo nulla sed magna. +

      +
      +

      + Nullam venenatis neque purus, nec pulvinar metus lacinia vel. Vestibulum eleifend dolor nec condimentum + faucibus. Donec tristique facilisis justo, vitae finibus nibh vulputate ac. Aliquam malesuada tellus diam, + nec sodales massa venenatis eget. Praesent at nisl sodales, blandit enim sit amet, luctus ante. Sed sit + amet dapibus augue. Mauris ultricies lacus arcu, non eleifend libero euismod ut. Orci varius natoque + penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nunc aliquam arcu consequat pretium + viverra. Sed dapibus ultrices lectus ac consequat. Ut a ullamcorper elit. Suspendisse at diam commodo nunc + placerat convallis et nec nisi. +

      +

      + Sed ut turpis pellentesque, consectetur sem quis, congue nisl. Aliquam tincidunt vestibulum arcu. + Pellentesque elementum purus ut bibendum sodales. Praesent luctus felis vitae ante convallis, a tristique + sem ornare. Donec nulla dolor, pellentesque eu venenatis et, vulputate sed eros. Morbi at bibendum tortor. + Proin eu magna ut diam malesuada fringilla. +

      + + + + + + + + + + + + + + + + + + + + + + + +
      + Table with header, footer and row headings +
      BlaBlaBla
      BlaBlaBla
      BlaBlaBla
      +

      + Aliquam erat volutpat. Nam sapien arcu, facilisis non consectetur a, condimentum vel nisl. Aenean vitae + eros sed metus euismod venenatis ac non erat. Maecenas finibus finibus finibus. Mauris eget ligula tempor, + tempor nunc a, posuere eros. Nullam tincidunt vulputate ante, non consequat nibh. Duis quis sapien leo. + Nunc dolor magna, aliquam quis condimentum vitae, porttitor vel justo. Mauris nec massa in augue volutpat + varius. Nunc felis arcu, rhoncus sit amet ipsum at, accumsan fermentum eros. Nam lacus diam, luctus in + congue ut, fermentum sed purus. Donec fringilla erat quis velit commodo tristique. Aenean volutpat felis + non libero rutrum, ut iaculis diam interdum. Proin auctor aliquam facilisis. Nullam feugiat quis urna at + pulvinar. Fusce dapibus viverra sapien, a sagittis tellus aliquam sit amet. +

      + + + + + + + + + + + + + + + + + +
      + Table with only rows +
      BlaBlaBla
      BlaBlaBla
      BlaBlaBla
      +

      + Ut placerat eros vel mollis tristique. Maecenas in eros tristique, pulvinar quam at, molestie arcu. + Curabitur vel tellus nulla. Aenean bibendum consectetur ipsum. Sed in eleifend diam. Lorem ipsum dolor sit + amet, consectetur adipiscing elit. Cras vel fermentum turpis. Vestibulum malesuada enim massa, maximus + condimentum lectus condimentum sit amet. Sed ut nibh pulvinar, ornare mi id, scelerisque lorem. Maecenas + venenatis, nisl eget aliquam venenatis, quam ligula malesuada libero, a tincidunt ligula lorem eget + turpis. Quisque facilisis tempor finibus. Pellentesque sit amet tortor eget nibh rhoncus auctor eu sit + amet leo. Nullam non placerat leo. +

      +

      + Praesent feugiat auctor tellus, sed laoreet elit dapibus vel. Pellentesque habitant morbi tristique + senectus et netus et malesuada fames ac turpis egestas. In hac habitasse platea dictumst. Fusce + sollicitudin finibus quam, eget fringilla turpis maximus ac. Praesent vulputate elit eget semper + hendrerit. Donec tempor viverra sapien, vel faucibus neque finibus ut. Nunc placerat maximus mauris, et + vestibulum risus fringilla ut. Nunc faucibus facilisis mauris et rhoncus. Integer dapibus tortor eu urna + egestas auctor. Maecenas eu arcu dignissim, consectetur felis vel, viverra mi. Nullam faucibus ligula est, + a dapibus libero sagittis eu. Nam mi orci, euismod ac ligula ut, fermentum dapibus est. Sed id rutrum + turpis. Ut ullamcorper nibh nisi, nec efficitur leo lobortis ut. Vivamus posuere quis ligula non tempor. +

      +
        +
      1. Lorem ipsum dolor sit amet
      2. +
      3. consectetur adipiscing elit
      4. +
      5. Nullam lacus felis
      6. +
      7. condimentum eu condimentum et
      8. +
      +

      + Donec condimentum lacus id dui molestie, ac efficitur quam iaculis. Maecenas a nisi id nulla luctus + pulvinar. Sed quis aliquet enim. Nulla ac turpis sit amet purus rhoncus ultricies. Suspendisse scelerisque + erat at turpis volutpat pretium. In hac habitasse platea dictumst. Suspendisse quis accumsan neque, nec + luctus lectus. Suspendisse vitae porttitor justo. Nam eu eros consequat, maximus eros id, fermentum enim. + Morbi volutpat erat est, non lobortis justo iaculis nec. Mauris vestibulum scelerisque augue eu posuere. +

      +

      + Suspendisse dictum ante at nisi pharetra mattis. Sed at pharetra risus. Donec rutrum erat sed erat + imperdiet, non viverra nulla cursus. Etiam quis mauris a urna tempor dictum. Nulla tempor fringilla + convallis. Nunc tristique tellus a justo lacinia, rutrum placerat lectus viverra. Vivamus sit amet + convallis urna. Duis fringilla consequat molestie. +

      +
        +
      • Lorem ipsum dolor sit amet
      • +
      • consectetur adipiscing elit
      • +
      • Nullam lacus felis
      • +
      • condimentum eu condimentum et
      • +
      +

      + Aliquam erat volutpat. Phasellus pulvinar felis vulputate aliquam pharetra. Duis eget aliquet tellus. + Etiam nec aliquet ex. Phasellus convallis lectus sit amet ex tristique finibus. Phasellus tortor nunc, + laoreet non odio sed, fermentum posuere risus. Nulla facilisis vulputate nibh non egestas. Sed rhoncus + condimentum urna, ac luctus erat cursus vel. Quisque tincidunt, arcu sed rhoncus euismod, magna felis + pharetra sapien, ut sollicitudin nibh sapien eu odio. Sed consectetur pellentesque sapien nec efficitur. +

      + +
      +

      Back to the top

      +
      + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHelloWorldPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHelloWorldPage.java new file mode 100644 index 00000000..1bcaec55 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHelloWorldPage.java @@ -0,0 +1,9 @@ +package nl.rotterdam.wicket.docs; + +public class RotterdamHelloWorldPage extends RotterdamHtmlPage { + + public RotterdamHelloWorldPage() { + super(); + this.pageTitle = "Hello, World!"; + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHtmlPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHtmlPage.html new file mode 100644 index 00000000..e7750066 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHtmlPage.html @@ -0,0 +1,5 @@ + +
      + +
      +
      diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHtmlPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHtmlPage.java new file mode 100644 index 00000000..dd36ddd8 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamHtmlPage.java @@ -0,0 +1,13 @@ +package nl.rotterdam.wicket.docs; + +import nl.rotterdam.design_system.wicket.components.html_content.utrecht.UtrechtHtmlContentBorder; + +public class RotterdamHtmlPage extends RotterdamBasePage { + + @Override + protected void onInitialize() { + super.onInitialize(); + + pageBody.add(new UtrechtHtmlContentBorder("utrechtHtml")); + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamPlaceholderPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamPlaceholderPage.html new file mode 100644 index 00000000..a16cf9a3 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamPlaceholderPage.html @@ -0,0 +1,7 @@ + +
      +

      Deze pagina is nog niet gemaakt!

      +

      Je bent nu op een pagina die onderdeel is van ons prototype, maar deze pagina is nog niet gemaakt.

      +

      Ga één pagina terug zodat je verder kunt met het prototype testen.

      +
      +
      diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamPlaceholderPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamPlaceholderPage.java new file mode 100644 index 00000000..43af3333 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamPlaceholderPage.java @@ -0,0 +1,13 @@ +package nl.rotterdam.wicket.docs; + +import nl.rotterdam.design_system.wicket.components.html_content.utrecht.UtrechtHtmlContentBorder; + +public class RotterdamPlaceholderPage extends RotterdamBasePage { + + @Override + protected void onInitialize() { + super.onInitialize(); + + pageBody.add(new UtrechtHtmlContentBorder("utrechtHtml")); + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/login_page/LoginPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/login_page/LoginPage.html new file mode 100644 index 00000000..0879c3b3 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/login_page/LoginPage.html @@ -0,0 +1,31 @@ + + + + + Inloggen bij Mijn Loket - gemeente Rotterdam + + +
      +
      +

      Welkom bij Mijn Loket

      +

      + U kunt op Mijn Loket informatie vinden over diensten & producten van de gemeente Rotterdam en deze direct + online regelen, aanvragen of bekijken. Als u inlogt, kunt u bovendien uw aanvragen, gemaakte afspraken en uw + gegevens zien. +

      +

      + Nog geen DigiD of eHerkenning? Vraag dan eerst DigiD (voor burgers) of eHerkenning (voor + bedrijven/instellingen) aan. +

      +
      +

      Inloggen

      +

      Login met uw DigiD of eHerkenning om uw zaken online te regelen.

      + +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/login_page/LoginPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/login_page/LoginPage.java new file mode 100644 index 00000000..adc16ef8 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/login_page/LoginPage.java @@ -0,0 +1,15 @@ +package nl.rotterdam.wicket.docs.login_page; + +import nl.rotterdam.wicket.docs.RotterdamBasePage; + +public class LoginPage extends RotterdamBasePage { + + public LoginPage() { + super(); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/mijn_loket_page/MijnLoketPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/mijn_loket_page/MijnLoketPage.html new file mode 100644 index 00000000..aa4a0ea2 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/mijn_loket_page/MijnLoketPage.html @@ -0,0 +1,35 @@ + +
      +
      +
      +
      +
      +

      Hallo

      +

      + Via Mijn Loket kunt u veel zelf regelen met de gemeente. Bijvoorbeeld een afspraak maken om uw paspoort te + verlengen, of een subsidie aanvraag indienen. U kunt ook zien welke dingen u nog moet regelen of die wij van u + vragen. Bijvoorbeeld het betalen van gemeentelijke belastingen. Zie hiervoor ‘Wat ik moet regelen’. +

      +

      Wat moet ik regelen

      +

      ...

      +

      Zelf regelen

      +
      +

      Paspoort vernieuwen of aanvragen

      +
      +
      +
      +

      Parkeervergunning aanvragen of beheren

      +
      +
      +
      +

      Belastingzaken

      +
      +
      +
      +

      Belastingzaken

      +
      +
      +
      +
      +
      +
      diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/mijn_loket_page/MijnLoketPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/mijn_loket_page/MijnLoketPage.java new file mode 100644 index 00000000..91a79896 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/mijn_loket_page/MijnLoketPage.java @@ -0,0 +1,89 @@ +package nl.rotterdam.wicket.docs.mijn_loket_page; + +import java.util.List; +import nl.rotterdam.design_system.wicket.components.breadcrumb_nav.utrecht.UtrechtBreadcrumbNavPanel; +import nl.rotterdam.design_system.wicket.components.breadcrumb_nav.utrecht.UtrechtBreadcrumbNavRecord; +import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconType; +import nl.rotterdam.design_system.wicket.components.link_list.utrecht.UtrechtLinkListPanel; +import nl.rotterdam.design_system.wicket.components.link_list.utrecht.UtrechtLinkListRecord; +import nl.rotterdam.design_system.wicket.components.preserve_data.utrecht.UtrechtPreserveDataLabel; +import nl.rotterdam.design_system.wicket.components.side_nav.denhaag.DenhaagSideNavPanel; +import nl.rotterdam.design_system.wicket.components.side_nav.denhaag.DenhaagSideNavRecord; +import nl.rotterdam.wicket.docs.RotterdamBasePage; +import nl.rotterdam.wicket.docs.RotterdamPlaceholderPage; +import org.apache.wicket.model.Model; +import org.apache.wicket.request.component.IRequestablePage; + +public class MijnLoketPage extends RotterdamBasePage { + + public List> sideNavRecords; + public List> linkListLinks; + public List> breadcrumbNavLinks; + + public String username; + + public MijnLoketPage() { + super(); + this.pageTitle = "Mijn Loket"; + this.username = "mevrouw Van Bergenhenegouwen"; + + this.sideNavRecords = List.of( + new DenhaagSideNavRecord<>(RotterdamIconType.OVERVIEW, "Overzicht", MijnLoketPage.class, 0, ""), + new DenhaagSideNavRecord<>( + RotterdamIconType.INBOX, + "Mijn berichten", + RotterdamPlaceholderPage.class, + 2, + "2 nieuwe berichten" + ), + new DenhaagSideNavRecord<>( + RotterdamIconType.BOX, + "Mijn lopende zaken", + RotterdamPlaceholderPage.class, + 0, + "" + ), + new DenhaagSideNavRecord<>( + RotterdamIconType.SUMMARY, + "Zelf regelen", + RotterdamPlaceholderPage.class, + 0, + "" + ), + new DenhaagSideNavRecord<>(RotterdamIconType.COINS, "Belastingen", RotterdamPlaceholderPage.class, 0, ""), + new DenhaagSideNavRecord<>( + RotterdamIconType.MONEY_2, + "Werk & Inkomen", + RotterdamPlaceholderPage.class, + 0, + "" + ), + new DenhaagSideNavRecord<>(RotterdamIconType.PARKING, "Parkeren", RotterdamPlaceholderPage.class, 0, ""), + new DenhaagSideNavRecord<>(RotterdamIconType.USER, "Mijn gegevens", RotterdamPlaceholderPage.class, 0, "") + ); + + this.breadcrumbNavLinks = List.of( + new UtrechtBreadcrumbNavRecord<>(null, "rotterdam.nl", this.getApplication().getHomePage()), + new UtrechtBreadcrumbNavRecord<>(null, "Mijn Loket", MijnLoketPage.class) + ); + + this.linkListLinks = List.of( + new UtrechtLinkListRecord<>(null, "Direct regelen", RotterdamPlaceholderPage.class), + new UtrechtLinkListRecord<>(null, "Meer informatie op Rotterdam.nl", RotterdamPlaceholderPage.class) + ); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + pageBody.add(new DenhaagSideNavPanel("sideNav", this.sideNavRecords)); + + pageBody.add(new UtrechtBreadcrumbNavPanel("breadcrumbNav", this.breadcrumbNavLinks)); + + pageBody.add(new UtrechtPreserveDataLabel("name", Model.of(this.username))); + pageBody.add(new UtrechtLinkListPanel("linkList1", linkListLinks)); + pageBody.add(new UtrechtLinkListPanel("linkList2", linkListLinks)); + pageBody.add(new UtrechtLinkListPanel("linkList3", linkListLinks)); + pageBody.add(new UtrechtLinkListPanel("linkList4", linkListLinks)); + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginFormPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginFormPanel.html new file mode 100644 index 00000000..2407fe3a --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginFormPanel.html @@ -0,0 +1,38 @@ + +

      Inloggen

      +

      Login met je organisatieaccount.

      +
      +
      Feedback goes here
      +
      +
      + + +
      + +
      + + +
      + +
      + + + Onthoud mij 14 dagen +
      + + + + + +
      + +
      +
      +
      +
      diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginFormPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginFormPanel.java new file mode 100644 index 00000000..8cd49729 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginFormPanel.java @@ -0,0 +1,57 @@ +package nl.rotterdam.wicket.docs.sso_login_page; + +import nl.rotterdam.design_system.wicket.components.button.utrecht.UtrechtButton; +import nl.rotterdam.design_system.wicket.components.button_group.utrecht.UtrechtButtonGroupBorder; +import nl.rotterdam.design_system.wicket.components.form_field_checkbox.utrecht.UtrechtFormFieldCheckbox; +import org.apache.wicket.markup.html.form.*; +import org.apache.wicket.markup.html.panel.FeedbackPanel; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.Model; + +public class SingleSignOnLoginFormPanel extends Panel { + + public SingleSignOnLoginFormPanel(String id) { + super(id); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + Model username = Model.of(""); + Model password = Model.of(""); + Model rememberMe = Model.of(false); + + add( + new Form("loginForm") { + @Override + protected void onInitialize() { + super.onInitialize(); + UtrechtButtonGroupBorder actionGroup = new UtrechtButtonGroupBorder("actionGroup"); + + add( + new FeedbackPanel("feedback"), + new RequiredTextField<>("username", username) + .setRequired(true) + .setLabel(Model.of("Gebruikersnaam")), + new PasswordTextField("password", password).setRequired(true).setLabel(Model.of("Wachtwoord")), + new CheckBox("rememberMe", rememberMe).setLabel(Model.of("Onthoud mij")), + new UtrechtFormFieldCheckbox("rememberMeNlDesign", rememberMe, "Onthoud mij").setRequired(true), + actionGroup + ); + actionGroup.add(new UtrechtButton("submit")); + } + + @Override + protected void onSubmit() { + info("Submitted!"); + + System.out.println("Received username: " + username.getObject()); + System.out.println("Received rememberMe: " + rememberMe.getObject()); + + super.onSubmit(); + } + } + ); + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginPage.html new file mode 100644 index 00000000..0a72f120 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginPage.html @@ -0,0 +1,5 @@ + +
      +
      +
      +
      diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginPage.java new file mode 100644 index 00000000..bf0619b3 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginPage.java @@ -0,0 +1,17 @@ +package nl.rotterdam.wicket.docs.sso_login_page; + +import nl.rotterdam.wicket.docs.RotterdamBasePage; + +public class SingleSignOnLoginPage extends RotterdamBasePage { + + public SingleSignOnLoginPage() { + super(); + this.pageTitle = "Inloggen"; + } + + @Override + protected void onInitialize() { + super.onInitialize(); + pageBody.add(new SingleSignOnLoginFormPanel("loginForm")); + } +} From 267f0de949d92266cacec6a05d0c1f270dab626d Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Sun, 8 Dec 2024 20:50:19 +0100 Subject: [PATCH 56/75] feat: add SideNav component --- pnpm-lock.yaml | 3 + wicket/components-wicket/package.json | 1 + wicket/components-wicket/pom.xml | 8 ++ .../denhaag/DenhaagSideNavBehavior.java | 19 +++ .../denhaag/DenhaagSideNavItemBehavior.java | 11 ++ .../side_nav/denhaag/DenhaagSideNavLink.java | 50 ++++++++ .../denhaag/DenhaagSideNavLinkBehavior.java | 11 ++ .../denhaag/DenhaagSideNavListBehavior.java | 11 ++ .../side_nav/denhaag/DenhaagSideNavPanel.html | 13 ++ .../side_nav/denhaag/DenhaagSideNavPanel.java | 95 +++++++++++++++ .../denhaag/DenhaagSideNavRecord.java | 13 ++ .../rotterdam/wicket/docs/ComponentsPage.html | 1 + .../rotterdam/wicket/docs/ComponentsPage.java | 2 + .../side_nav/DenhaagSideNavExamplesPanel.html | 35 ++++++ .../side_nav/DenhaagSideNavExamplesPanel.java | 111 ++++++++++++++++++ .../wicket/docs/side_nav/SideNavRecord.java | 13 ++ 16 files changed, 397 insertions(+) create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavItemBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavLink.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavLinkBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavListBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavPanel.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavPanel.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavRecord.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/DenhaagSideNavExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/DenhaagSideNavExamplesPanel.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/SideNavRecord.java diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8da2f32f..51c962fc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -587,6 +587,9 @@ importers: wicket/components-wicket: devDependencies: + '@gemeente-denhaag/sidenav': + specifier: 0.1.0-alpha.218 + version: 0.1.0-alpha.218(react@18.3.1) '@nl-design-system-candidate/paragraph-css': specifier: 2.0.0 version: 2.0.0 diff --git a/wicket/components-wicket/package.json b/wicket/components-wicket/package.json index 6b6f0ebc..4a2e1254 100644 --- a/wicket/components-wicket/package.json +++ b/wicket/components-wicket/package.json @@ -19,6 +19,7 @@ }, "scripts": {}, "devDependencies": { + "@gemeente-denhaag/sidenav": "0.1.0-alpha.218", "@nl-design-system-candidate/paragraph-css": "2.0.0", "@nl-design-system-unstable/voorbeeld-design-tokens": "3.3.4", "@utrecht/alert-css": "2.2.0", diff --git a/wicket/components-wicket/pom.xml b/wicket/components-wicket/pom.xml index 05fbb5b1..2d17aed8 100644 --- a/wicket/components-wicket/pom.xml +++ b/wicket/components-wicket/pom.xml @@ -89,6 +89,14 @@ css
      + + false + node_modules/ + + @gemeente-denhaag/sidenav/dist/*.css + + nl/rotterdam/design_system/wicket/components/side_nav/denhaag + false node_modules/ diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavBehavior.java new file mode 100644 index 00000000..3e8a24c1 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavBehavior.java @@ -0,0 +1,19 @@ +package nl.rotterdam.design_system.wicket.components.side_nav.denhaag; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; + +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; + +public class DenhaagSideNavBehavior extends TagNameClassComponentBehavior { + + public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem( + DenhaagSideNavBehavior.class, + "@gemeente-denhaag/sidenav/dist/index.css" + ); + + public DenhaagSideNavBehavior() { + super("nav", "denhaag-sidenav"); + addHeaderItem(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavItemBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavItemBehavior.java new file mode 100644 index 00000000..a7dfadc9 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavItemBehavior.java @@ -0,0 +1,11 @@ +package nl.rotterdam.design_system.wicket.components.side_nav.denhaag; + +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; + +public class DenhaagSideNavItemBehavior extends TagNameClassComponentBehavior { + + public DenhaagSideNavItemBehavior() { + super("li", "denhaag-sidenav__item"); + addHeaderItem(DenhaagSideNavBehavior.CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavLink.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavLink.java new file mode 100644 index 00000000..c6fd2102 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavLink.java @@ -0,0 +1,50 @@ +package nl.rotterdam.design_system.wicket.components.side_nav.denhaag; + +import org.apache.wicket.Page; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.html.link.BookmarkablePageLink; + +public class DenhaagSideNavLink extends BookmarkablePageLink { + + public boolean placeholder = false; + private String placeholderClassName = "denhaag-sidenav__link--placeholder"; + + public DenhaagSideNavLink(String id, Class pageClass) { + super(id, pageClass); + this.setAutoEnable(true); + } + + @Override + public void onInitialize() { + super.onInitialize(); + add(new DenhaagSideNavLinkBehavior()); + } + + @Override + public void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + + if (this.placeholder) { + tag.append("class", this.placeholderClassName, " "); + tag.put("role", "link"); + tag.put("aria-disabled", "true"); + } + + if (linksTo(getPage())) { + tag.put("role", "link"); + tag.put("aria-disabled", "true"); + tag.put("aria-current", "page"); + } + } + + @Override + public boolean isEnabled() { + // Use the `isEnabled()` from `Link` to add an extra condition to disable + // the link: when it is a placeholder. + return super.isEnabled() && !this.placeholder; + } + + public void setPlaceholder(boolean enabled) { + this.placeholder = enabled; + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavLinkBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavLinkBehavior.java new file mode 100644 index 00000000..91d02c59 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavLinkBehavior.java @@ -0,0 +1,11 @@ +package nl.rotterdam.design_system.wicket.components.side_nav.denhaag; + +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; + +public class DenhaagSideNavLinkBehavior extends TagNameClassComponentBehavior { + + public DenhaagSideNavLinkBehavior() { + super("a", "denhaag-sidenav__link"); + addHeaderItem(DenhaagSideNavBehavior.CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavListBehavior.java new file mode 100644 index 00000000..f274e0a3 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavListBehavior.java @@ -0,0 +1,11 @@ +package nl.rotterdam.design_system.wicket.components.side_nav.denhaag; + +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; + +public class DenhaagSideNavListBehavior extends TagNameClassComponentBehavior { + + public DenhaagSideNavListBehavior() { + super("ul", "denhaag-sidenav__list"); + addHeaderItem(DenhaagSideNavBehavior.CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavPanel.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavPanel.html new file mode 100644 index 00000000..39b89fe9 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavPanel.html @@ -0,0 +1,13 @@ + + + diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavPanel.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavPanel.java new file mode 100644 index 00000000..d4ca453f --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavPanel.java @@ -0,0 +1,95 @@ +package nl.rotterdam.design_system.wicket.components.side_nav.denhaag; + +import java.util.List; +import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconBehavior; +import nl.rotterdam.design_system.wicket.components.number_badge.utrecht.UtrechtNumberBadge; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.request.component.IRequestablePage; + +public class DenhaagSideNavPanel extends Panel { + + public List> sideNavRecords; + + public DenhaagSideNavPanel(String id, List> sideNavRecords) { + super(id); + this.sideNavRecords = sideNavRecords; + } + + @Override + protected void onInitialize() { + super.onInitialize(); + List> sideNavRecords = this.sideNavRecords; + + add( + new WebMarkupContainer("denhaagSideNav") { + @Override + protected void onInitialize() { + super.onInitialize(); + add(new DenhaagSideNavBehavior()); + + add( + new WebMarkupContainer("denhaagSideNavList") { + @Override + protected void onInitialize() { + super.onInitialize(); + + add(new DenhaagSideNavListBehavior()); // TODO should be singleton + add( + new ListView>( + "denhaagSideNavItem", + sideNavRecords + ) { + @Override + protected void populateItem( + ListItem> item + ) { + item.add(new DenhaagSideNavItemBehavior()); // TODO: should be singleton + DenhaagSideNavRecord record = + item.getModelObject(); + String naam = record.label(); + + // TODO: How do I type this? + @SuppressWarnings({ "rawtypes", "unchecked" }) + DenhaagSideNavLink link = new DenhaagSideNavLink( + "denhaagSideNavLink", + record.target() + ); + + // Optionally add an icon + if (record.icon() != null) { + WebMarkupContainer icon = new WebMarkupContainer( + "denhaagSideNavLinkIcon" + ); + icon.add(new RotterdamIconBehavior(record.icon())); + link.add(icon); + } else { + link.add(new Label("denhaagSideNavLinkIcon", "")); + } + + // Add the link text + link.add(new Label("denhaagSideNavLinkLabel", naam)); + + // Optionally add a number badge + UtrechtNumberBadge numberBadge = new UtrechtNumberBadge( + "denhaagSideNavLinkNumberBadge", + record.numberBadge() + ); + numberBadge.setVisible(record.numberBadge() >= 1); + link.add(numberBadge); + + item.add(link); + } + } + ); + } + } + ); + } + } + ); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavRecord.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavRecord.java new file mode 100644 index 00000000..6838736e --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavRecord.java @@ -0,0 +1,13 @@ +package nl.rotterdam.design_system.wicket.components.side_nav.denhaag; + +import java.io.Serializable; +import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconType; + +public record DenhaagSideNavRecord( + RotterdamIconType icon, + String label, + Class target, + long numberBadge, + String numberBadgeLabel +) + implements Serializable {} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index d6b4b359..bb14d411 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -19,6 +19,7 @@

      Componenten voor Apache Wicket

      Lees meer over ontwikkelen voor Apache Wicket in de Apache Wicket 10.x Reference Guide.

      + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java index 903bc1b8..ff11075d 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java @@ -28,6 +28,7 @@ import nl.rotterdam.wicket.docs.preserve_data.UtrechtPreserveDataExamplesPanel; import nl.rotterdam.wicket.docs.root.UtrechtRootExamplesPanel; import nl.rotterdam.wicket.docs.separator.UtrechtSeparatorExamplesPanel; +import nl.rotterdam.wicket.docs.side_nav.DenhaagSideNavExamplesPanel; import nl.rotterdam.wicket.docs.unordered_list.UtrechtUnorderedListExamplesPanel; import org.apache.wicket.Component; import org.apache.wicket.markup.head.IHeaderResponse; @@ -74,6 +75,7 @@ protected void onInitialize() { super.onInitialize(); // Add the component stories + pageBody.add(new DenhaagSideNavExamplesPanel("denhaagSideNavExamplesPanel")); pageBody.add(new AlertExamplesPanel("alertExamplesPanel")); pageBody.add(new BadgeListExamplesPanel("badgeListExamplesPanel")); pageBody.add(new BodyExamplesPanel("bodyExamplesPanel")); diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/DenhaagSideNavExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/DenhaagSideNavExamplesPanel.html new file mode 100644 index 00000000..574d8357 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/DenhaagSideNavExamplesPanel.html @@ -0,0 +1,35 @@ + + + + +
      +

      Side Navigation component

      +
      +

      Toont een hiërarchische, verticale navigatie aan de zijkant van een pagina.

      +
      + +
      +

      Side Navigation

      +
      +

      Voorbeeld.

      +
      + + + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/DenhaagSideNavExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/DenhaagSideNavExamplesPanel.java new file mode 100644 index 00000000..c0519827 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/DenhaagSideNavExamplesPanel.java @@ -0,0 +1,111 @@ +package nl.rotterdam.wicket.docs.side_nav; + +import java.util.List; +import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconBehavior; +import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconType; +import nl.rotterdam.design_system.wicket.components.number_badge.utrecht.UtrechtNumberBadge; +import nl.rotterdam.design_system.wicket.components.side_nav.denhaag.DenhaagSideNavBehavior; +import nl.rotterdam.design_system.wicket.components.side_nav.denhaag.DenhaagSideNavItemBehavior; +import nl.rotterdam.design_system.wicket.components.side_nav.denhaag.DenhaagSideNavLink; +import nl.rotterdam.design_system.wicket.components.side_nav.denhaag.DenhaagSideNavListBehavior; +import nl.rotterdam.wicket.docs.ComponentExample; +import nl.rotterdam.wicket.docs.RotterdamPlaceholderPage; +import nl.rotterdam.wicket.docs.mijn_loket_page.MijnLoketPage; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; +import org.apache.wicket.markup.html.panel.Panel; + +public class DenhaagSideNavExamplesPanel extends Panel { + + public DenhaagSideNavExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleDenhaagSideNav() { + List> links = List.of( + new SideNavRecord<>(RotterdamIconType.OVERVIEW, "Overzicht", MijnLoketPage.class, 0, ""), + new SideNavRecord<>( + RotterdamIconType.INBOX, + "Mijn berichten", + RotterdamPlaceholderPage.class, + 2, + "2 nieuwe berichten" + ), + new SideNavRecord<>(RotterdamIconType.BOX, "Mijn lopende zaken", RotterdamPlaceholderPage.class, 0, ""), + new SideNavRecord<>(RotterdamIconType.SUMMARY, "Zelf regelen", RotterdamPlaceholderPage.class, 0, ""), + new SideNavRecord<>(RotterdamIconType.COINS, "Belastingen", RotterdamPlaceholderPage.class, 0, ""), + new SideNavRecord<>(RotterdamIconType.MONEY_2, "Werk & Inkomen", RotterdamPlaceholderPage.class, 0, ""), + new SideNavRecord<>(RotterdamIconType.PARKING, "Parkeren", RotterdamPlaceholderPage.class, 0, ""), + new SideNavRecord<>(RotterdamIconType.USER, "Mijn gegevens", RotterdamPlaceholderPage.class, 0, "") + ); + + return new WebMarkupContainer("denhaagSideNav") { + @Override + protected void onInitialize() { + super.onInitialize(); + add(new DenhaagSideNavBehavior()); + + add( + new WebMarkupContainer("denhaagSideNavList") { + @Override + protected void onInitialize() { + super.onInitialize(); + + add(new DenhaagSideNavListBehavior()); // TODO should be singleton + add( + new ListView>("denhaagSideNavItem", links) { + @Override + protected void populateItem(ListItem> item) { + item.add(new DenhaagSideNavItemBehavior()); // TODO: should be singleton + SideNavRecord record = item.getModelObject(); + String naam = record.label(); + + // TODO: How do I type this? + @SuppressWarnings({ "rawtypes", "unchecked" }) + DenhaagSideNavLink link = new DenhaagSideNavLink( + "denhaagSideNavLink", + record.target() + ); + + // Optionally add an icon + if (record.icon() != null) { + WebMarkupContainer icon = new WebMarkupContainer("denhaagSideNavLinkIcon"); + icon.add(new RotterdamIconBehavior(record.icon())); + link.add(icon); + } else { + link.add(new Label("denhaagSideNavLinkIcon", "")); + } + + // Add the link text + link.add(new Label("denhaagSideNavLinkLabel", naam)); + + // Optionally add a number badge + UtrechtNumberBadge numberBadge = new UtrechtNumberBadge( + "denhaagSideNavLinkNumberBadge", + record.numberBadge() + ); + numberBadge.setVisible(record.numberBadge() >= 1); + link.add(numberBadge); + + item.add(link); + } + } + ); + } + } + ); + } + }; + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleDenhaagSideNav()); + } +} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/SideNavRecord.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/SideNavRecord.java new file mode 100644 index 00000000..b9b49109 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/SideNavRecord.java @@ -0,0 +1,13 @@ +package nl.rotterdam.wicket.docs.side_nav; + +import java.io.Serializable; +import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconType; + +public record SideNavRecord( + RotterdamIconType icon, + String label, + Class target, + long numberBadge, + String numberBadgeLabel +) + implements Serializable {} From c21afecb20f893cc8498b39f8fedcc445e8004f0 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Sun, 8 Dec 2024 22:35:33 +0100 Subject: [PATCH 57/75] feat: add Rotterdam Icon component --- wicket/components-wicket/package.json | 1 + wicket/components-wicket/pom.xml | 9 + .../icon/rotterdam/RotterdamIconBehavior.java | 179 ++++++++++++++++++ .../icon/rotterdam/RotterdamIconType.java | 115 +++++++++++ .../icon/rotterdam/define-custom-elements.js | 3 + .../rotterdam/wicket/docs/ComponentsPage.html | 1 + .../rotterdam/wicket/docs/ComponentsPage.java | 2 + .../docs/icon/RodsIconExamplesPanel.html | 30 +++ .../docs/icon/RodsIconExamplesPanel.java | 81 ++++++++ 9 files changed, 421 insertions(+) create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/rotterdam/RotterdamIconBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/rotterdam/RotterdamIconType.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/rotterdam/define-custom-elements.js create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/RodsIconExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/RodsIconExamplesPanel.java diff --git a/wicket/components-wicket/package.json b/wicket/components-wicket/package.json index 4a2e1254..a7b35cb0 100644 --- a/wicket/components-wicket/package.json +++ b/wicket/components-wicket/package.json @@ -20,6 +20,7 @@ "scripts": {}, "devDependencies": { "@gemeente-denhaag/sidenav": "0.1.0-alpha.218", + "@gemeente-rotterdam/web-components-stencil": "workspace:*", "@nl-design-system-candidate/paragraph-css": "2.0.0", "@nl-design-system-unstable/voorbeeld-design-tokens": "3.3.4", "@utrecht/alert-css": "2.2.0", diff --git a/wicket/components-wicket/pom.xml b/wicket/components-wicket/pom.xml index 2d17aed8..412884ff 100644 --- a/wicket/components-wicket/pom.xml +++ b/wicket/components-wicket/pom.xml @@ -97,6 +97,15 @@ nl/rotterdam/design_system/wicket/components/side_nav/denhaag
      + + false + node_modules/ + + @gemeente-rotterdam/web-components-stencil/dist/**/* + @gemeente-rotterdam/web-components-stencil/loader/**/* + + nl/rotterdam/design_system/wicket/components/icon/rotterdam + false node_modules/ diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/rotterdam/RotterdamIconBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/rotterdam/RotterdamIconBehavior.java new file mode 100644 index 00000000..32161590 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/rotterdam/RotterdamIconBehavior.java @@ -0,0 +1,179 @@ +package nl.rotterdam.design_system.wicket.components.icon.rotterdam; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.Behavior; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.markup.head.JavaScriptHeaderItem; +import org.apache.wicket.markup.head.JavaScriptReferenceHeaderItem; +import org.apache.wicket.markup.head.JavaScriptReferenceType; +import org.apache.wicket.request.resource.JavaScriptResourceReference; + +public class RotterdamIconBehavior extends Behavior { + + public static final RotterdamIconBehavior ADD_IMAGE = new RotterdamIconBehavior(RotterdamIconType.ADD_IMAGE); + public static final RotterdamIconBehavior ADD_USER = new RotterdamIconBehavior(RotterdamIconType.ADD_USER); + public static final RotterdamIconBehavior ARROW_DOWN = new RotterdamIconBehavior(RotterdamIconType.ARROW_DOWN); + public static final RotterdamIconBehavior ARROW_LEFT = new RotterdamIconBehavior(RotterdamIconType.ARROW_LEFT); + public static final RotterdamIconBehavior ARROW_UP = new RotterdamIconBehavior(RotterdamIconType.ARROW_UP); + public static final RotterdamIconBehavior ARROW_RIGHT = new RotterdamIconBehavior(RotterdamIconType.ARROW_RIGHT); + public static final RotterdamIconBehavior ATTACHMENT = new RotterdamIconBehavior(RotterdamIconType.ATTACHMENT); + public static final RotterdamIconBehavior BADGE_ALERT_SOLID = new RotterdamIconBehavior( + RotterdamIconType.BADGE_ALERT_SOLID + ); + public static final RotterdamIconBehavior BADGE_ALERT = new RotterdamIconBehavior(RotterdamIconType.BADGE_ALERT); + public static final RotterdamIconBehavior BADGE_CHECK_SOLID = new RotterdamIconBehavior( + RotterdamIconType.BADGE_CHECK_SOLID + ); + public static final RotterdamIconBehavior BADGE_CHECK = new RotterdamIconBehavior(RotterdamIconType.BADGE_CHECK); + public static final RotterdamIconBehavior BADGE_CROSS = new RotterdamIconBehavior(RotterdamIconType.BADGE_CROSS); + public static final RotterdamIconBehavior BADGE_INFO = new RotterdamIconBehavior(RotterdamIconType.BADGE_INFO); + public static final RotterdamIconBehavior BADGE_QUESTION_SOLID = new RotterdamIconBehavior( + RotterdamIconType.BADGE_QUESTION_SOLID + ); + public static final RotterdamIconBehavior BADGE_QUESTION = new RotterdamIconBehavior( + RotterdamIconType.BADGE_QUESTION + ); + public static final RotterdamIconBehavior BOX = new RotterdamIconBehavior(RotterdamIconType.BOX); + public static final RotterdamIconBehavior CALENDAR = new RotterdamIconBehavior(RotterdamIconType.CALENDAR); + public static final RotterdamIconBehavior CAMERA = new RotterdamIconBehavior(RotterdamIconType.CAMERA); + public static final RotterdamIconBehavior CANCEL = new RotterdamIconBehavior(RotterdamIconType.CANCEL); + public static final RotterdamIconBehavior CHAT = new RotterdamIconBehavior(RotterdamIconType.CHAT); + public static final RotterdamIconBehavior CHECK = new RotterdamIconBehavior(RotterdamIconType.CHECK); + public static final RotterdamIconBehavior CHEVRON_LEFT = new RotterdamIconBehavior(RotterdamIconType.CHEVRON_LEFT); + public static final RotterdamIconBehavior CHEVRON_RIGHT = new RotterdamIconBehavior( + RotterdamIconType.CHEVRON_RIGHT + ); + public static final RotterdamIconBehavior CHEVRON_SMALL_DOUBLE_LEFT = new RotterdamIconBehavior( + RotterdamIconType.CHEVRON_SMALL_DOUBLE_LEFT + ); + public static final RotterdamIconBehavior CHEVRON_SMALL_DOUBLE_RIGHT = new RotterdamIconBehavior( + RotterdamIconType.CHEVRON_SMALL_DOUBLE_RIGHT + ); + public static final RotterdamIconBehavior CHEVRON_SMALL_DOWN = new RotterdamIconBehavior( + RotterdamIconType.CHEVRON_SMALL_DOWN + ); + public static final RotterdamIconBehavior CHEVRON_SMALL_LEFT = new RotterdamIconBehavior( + RotterdamIconType.CHEVRON_SMALL_LEFT + ); + public static final RotterdamIconBehavior CHEVRON_SMALL_RIGHT = new RotterdamIconBehavior( + RotterdamIconType.CHEVRON_SMALL_RIGHT + ); + public static final RotterdamIconBehavior CHEVRON_SMALL_UP = new RotterdamIconBehavior( + RotterdamIconType.CHEVRON_SMALL_UP + ); + public static final RotterdamIconBehavior CLIPBOARD = new RotterdamIconBehavior(RotterdamIconType.CLIPBOARD); + public static final RotterdamIconBehavior CLOSE = new RotterdamIconBehavior(RotterdamIconType.CLOSE); + public static final RotterdamIconBehavior CLOUD_SOLID = new RotterdamIconBehavior(RotterdamIconType.CLOUD_SOLID); + public static final RotterdamIconBehavior COINS = new RotterdamIconBehavior(RotterdamIconType.COINS); + public static final RotterdamIconBehavior COMMENT_SOLID = new RotterdamIconBehavior( + RotterdamIconType.COMMENT_SOLID + ); + public static final RotterdamIconBehavior COMMENTS = new RotterdamIconBehavior(RotterdamIconType.COMMENTS); + public static final RotterdamIconBehavior DOCUMENT = new RotterdamIconBehavior(RotterdamIconType.DOCUMENT); + public static final RotterdamIconBehavior DOWNLOAD = new RotterdamIconBehavior(RotterdamIconType.DOWNLOAD); + public static final RotterdamIconBehavior DRAGGABLE = new RotterdamIconBehavior(RotterdamIconType.DRAGGABLE); + public static final RotterdamIconBehavior DROPDOWN = new RotterdamIconBehavior(RotterdamIconType.DROPDOWN); + public static final RotterdamIconBehavior EDIT = new RotterdamIconBehavior(RotterdamIconType.EDIT); + public static final RotterdamIconBehavior ENVELOPE_SOLID = new RotterdamIconBehavior( + RotterdamIconType.ENVELOPE_SOLID + ); + public static final RotterdamIconBehavior ENVELOPE = new RotterdamIconBehavior(RotterdamIconType.ENVELOPE); + public static final RotterdamIconBehavior EXTERNAL = new RotterdamIconBehavior(RotterdamIconType.EXTERNAL); + public static final RotterdamIconBehavior FACEBOOK = new RotterdamIconBehavior(RotterdamIconType.FACEBOOK); + public static final RotterdamIconBehavior FAVORITE_SOLID = new RotterdamIconBehavior( + RotterdamIconType.FAVORITE_SOLID + ); + public static final RotterdamIconBehavior FAVORITE = new RotterdamIconBehavior(RotterdamIconType.FAVORITE); + public static final RotterdamIconBehavior FILE = new RotterdamIconBehavior(RotterdamIconType.FILE); + public static final RotterdamIconBehavior FILTER = new RotterdamIconBehavior(RotterdamIconType.FILTER); + public static final RotterdamIconBehavior FLASH_DISABLED = new RotterdamIconBehavior( + RotterdamIconType.FLASH_DISABLED + ); + public static final RotterdamIconBehavior FLASH = new RotterdamIconBehavior(RotterdamIconType.FLASH); + public static final RotterdamIconBehavior FULL_SCREEN = new RotterdamIconBehavior(RotterdamIconType.FULL_SCREEN); + public static final RotterdamIconBehavior GLOBE = new RotterdamIconBehavior(RotterdamIconType.GLOBE); + public static final RotterdamIconBehavior HEART = new RotterdamIconBehavior(RotterdamIconType.HEART); + public static final RotterdamIconBehavior HIDE = new RotterdamIconBehavior(RotterdamIconType.HIDE); + public static final RotterdamIconBehavior HISTORY = new RotterdamIconBehavior(RotterdamIconType.HISTORY); + public static final RotterdamIconBehavior HOME = new RotterdamIconBehavior(RotterdamIconType.HOME); + public static final RotterdamIconBehavior IDEA = new RotterdamIconBehavior(RotterdamIconType.IDEA); + public static final RotterdamIconBehavior INBOX = new RotterdamIconBehavior(RotterdamIconType.INBOX); + public static final RotterdamIconBehavior INSTAGRAM = new RotterdamIconBehavior(RotterdamIconType.INSTAGRAM); + public static final RotterdamIconBehavior LAYERS = new RotterdamIconBehavior(RotterdamIconType.LAYERS); + public static final RotterdamIconBehavior LINK = new RotterdamIconBehavior(RotterdamIconType.LINK); + public static final RotterdamIconBehavior LINKEDIN = new RotterdamIconBehavior(RotterdamIconType.LINKEDIN); + public static final RotterdamIconBehavior LOCATION = new RotterdamIconBehavior(RotterdamIconType.LOCATION); + public static final RotterdamIconBehavior LOCK = new RotterdamIconBehavior(RotterdamIconType.LOCK); + public static final RotterdamIconBehavior LOG_OUT = new RotterdamIconBehavior(RotterdamIconType.LOG_OUT); + public static final RotterdamIconBehavior MAP = new RotterdamIconBehavior(RotterdamIconType.MAP); + public static final RotterdamIconBehavior MEDIUM = new RotterdamIconBehavior(RotterdamIconType.MEDIUM); + public static final RotterdamIconBehavior MENU = new RotterdamIconBehavior(RotterdamIconType.MENU); + public static final RotterdamIconBehavior MIJN_LOKET = new RotterdamIconBehavior(RotterdamIconType.MIJN_LOKET); + public static final RotterdamIconBehavior MINUS = new RotterdamIconBehavior(RotterdamIconType.MINUS); + public static final RotterdamIconBehavior MONEY = new RotterdamIconBehavior(RotterdamIconType.MONEY); + public static final RotterdamIconBehavior MONEY_2 = new RotterdamIconBehavior(RotterdamIconType.MONEY_2); + public static final RotterdamIconBehavior MORE_OPTIONS = new RotterdamIconBehavior(RotterdamIconType.MORE_OPTIONS); + public static final RotterdamIconBehavior NO_IMAGE = new RotterdamIconBehavior(RotterdamIconType.NO_IMAGE); + public static final RotterdamIconBehavior NOTIFICATION_OFF = new RotterdamIconBehavior( + RotterdamIconType.NOTIFICATION_OFF + ); + public static final RotterdamIconBehavior NOTIFICATION = new RotterdamIconBehavior(RotterdamIconType.NOTIFICATION); + public static final RotterdamIconBehavior OVERVIEW = new RotterdamIconBehavior(RotterdamIconType.OVERVIEW); + public static final RotterdamIconBehavior PARKING = new RotterdamIconBehavior(RotterdamIconType.PARKING); + public static final RotterdamIconBehavior PHONE_2 = new RotterdamIconBehavior(RotterdamIconType.PHONE_2); + public static final RotterdamIconBehavior PHONE = new RotterdamIconBehavior(RotterdamIconType.PHONE); + public static final RotterdamIconBehavior PIN_SOLID = new RotterdamIconBehavior(RotterdamIconType.PIN_SOLID); + public static final RotterdamIconBehavior PIN = new RotterdamIconBehavior(RotterdamIconType.PIN); + public static final RotterdamIconBehavior PLAY_SOLID = new RotterdamIconBehavior(RotterdamIconType.PLAY_SOLID); + public static final RotterdamIconBehavior PLUS = new RotterdamIconBehavior(RotterdamIconType.PLUS); + public static final RotterdamIconBehavior RENEW = new RotterdamIconBehavior(RotterdamIconType.RENEW); + public static final RotterdamIconBehavior RING = new RotterdamIconBehavior(RotterdamIconType.RING); + public static final RotterdamIconBehavior SEARCH = new RotterdamIconBehavior(RotterdamIconType.SEARCH); + public static final RotterdamIconBehavior SEND = new RotterdamIconBehavior(RotterdamIconType.SEND); + public static final RotterdamIconBehavior SETTINGS_1 = new RotterdamIconBehavior(RotterdamIconType.SETTINGS_1); + public static final RotterdamIconBehavior SETTINGS_2 = new RotterdamIconBehavior(RotterdamIconType.SETTINGS_2); + public static final RotterdamIconBehavior SHARE = new RotterdamIconBehavior(RotterdamIconType.SHARE); + public static final RotterdamIconBehavior SHIELD = new RotterdamIconBehavior(RotterdamIconType.SHIELD); + public static final RotterdamIconBehavior SHOPPING_CART = new RotterdamIconBehavior( + RotterdamIconType.SHOPPING_CART + ); + public static final RotterdamIconBehavior SHOW = new RotterdamIconBehavior(RotterdamIconType.SHOW); + public static final RotterdamIconBehavior SPEAKER = new RotterdamIconBehavior(RotterdamIconType.SPEAKER); + public static final RotterdamIconBehavior SUMMARY = new RotterdamIconBehavior(RotterdamIconType.SUMMARY); + public static final RotterdamIconBehavior THEME = new RotterdamIconBehavior(RotterdamIconType.THEME); + public static final RotterdamIconBehavior TIME = new RotterdamIconBehavior(RotterdamIconType.TIME); + public static final RotterdamIconBehavior TRASH = new RotterdamIconBehavior(RotterdamIconType.TRASH); + public static final RotterdamIconBehavior TWITTER = new RotterdamIconBehavior(RotterdamIconType.TWITTER); + public static final RotterdamIconBehavior UPLOAD = new RotterdamIconBehavior(RotterdamIconType.UPLOAD); + public static final RotterdamIconBehavior USER_SOLID = new RotterdamIconBehavior(RotterdamIconType.USER_SOLID); + public static final RotterdamIconBehavior USER = new RotterdamIconBehavior(RotterdamIconType.USER); + public static final RotterdamIconBehavior VIDEO = new RotterdamIconBehavior(RotterdamIconType.VIDEO); + public static final RotterdamIconBehavior WHATSAPP = new RotterdamIconBehavior(RotterdamIconType.WHATSAPP); + + String icon = null; + + public RotterdamIconBehavior(RotterdamIconType icon) { + super(); + this.icon = icon.type; + } + + private static final JavaScriptReferenceHeaderItem ESM = JavaScriptHeaderItem.forReference( + new JavaScriptResourceReference(RotterdamIconBehavior.class, "define-custom-elements.js") + ); + + @Override + public void onComponentTag(Component component, ComponentTag tag) { + super.onComponentTag(component, tag); + + tag.setName("rods-icon-" + this.icon); + } + + @Override + public void renderHead(Component component, IHeaderResponse response) { + super.renderHead(component, response); + + ESM.setType(JavaScriptReferenceType.MODULE); + response.render(ESM); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/rotterdam/RotterdamIconType.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/rotterdam/RotterdamIconType.java new file mode 100644 index 00000000..551722f1 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/rotterdam/RotterdamIconType.java @@ -0,0 +1,115 @@ +package nl.rotterdam.design_system.wicket.components.icon.rotterdam; + +public enum RotterdamIconType { + ADD_IMAGE("add-image"), + ADD_USER("add-user"), + ARROW_DOWN("arrow-down"), + ARROW_LEFT("arrow-left"), + ARROW_UP("arrow-up"), + ARROW_RIGHT("arrow-right"), + ATTACHMENT("attachment"), + BADGE_ALERT_SOLID("badge-alert-solid"), + BADGE_ALERT("badge-alert"), + BADGE_CHECK_SOLID("badge-check-solid"), + BADGE_CHECK("badge-check"), + BADGE_CROSS("badge-cross"), + BADGE_INFO("badge-info"), + BADGE_QUESTION_SOLID("badge-question-solid"), + BADGE_QUESTION("badge-question"), + BOX("box"), + CALENDAR("calendar"), + CAMERA("camera"), + CANCEL("cancel"), + CHAT("chat"), + CHECK("check"), + CHEVRON_LEFT("chevron-left"), + CHEVRON_RIGHT("chevron-right"), + CHEVRON_SMALL_DOUBLE_LEFT("chevron-small-double-left"), + CHEVRON_SMALL_DOUBLE_RIGHT("chevron-small-double-right"), + CHEVRON_SMALL_DOWN("chevron-small-down"), + CHEVRON_SMALL_LEFT("chevron-small-left"), + CHEVRON_SMALL_RIGHT("chevron-small-right"), + CHEVRON_SMALL_UP("chevron-small-up"), + CLIPBOARD("clipboard"), + CLOSE("close"), + CLOUD_SOLID("cloud-solid"), + COINS("coins"), + COMMENT_SOLID("comment-solid"), + COMMENTS("comments"), + DOCUMENT("document"), + DOWNLOAD("download"), + DRAGGABLE("draggable"), + DROPDOWN("dropdown"), + EDIT("edit"), + ENVELOPE_SOLID("envelope-solid"), + ENVELOPE("envelope"), + EXTERNAL("external"), + FACEBOOK("facebook"), + FAVORITE_SOLID("favorite-solid"), + FAVORITE("favorite"), + FILE("file"), + FILTER("filter"), + FLASH_DISABLED("flash-disabled"), + FLASH("flash"), + FULL_SCREEN("full-screen"), + GLOBE("globe"), + HEART("heart"), + HIDE("hide"), + HISTORY("history"), + HOME("home"), + IDEA("idea"), + INBOX("inbox"), + INSTAGRAM("instagram"), + LAYERS("layers"), + LINK("link"), + LINKEDIN("linkedin"), + LOCATION("location"), + LOCK("lock"), + LOG_OUT("log-out"), + MAP("map"), + MEDIUM("medium"), + MENU("menu"), + MIJN_LOKET("mijn-loket"), + MINUS("minus"), + MONEY("money"), + MONEY_2("money-2"), + MORE_OPTIONS("more-options"), + NO_IMAGE("no-image"), + NOTIFICATION_OFF("notification-off"), + NOTIFICATION("notification"), + OVERVIEW("overview"), + PARKING("parking"), + PHONE_2("phone-2"), + PHONE("phone"), + PIN_SOLID("pin-solid"), + PIN("pin"), + PLAY_SOLID("play-solid"), + PLUS("plus"), + RENEW("renew"), + RING("ring"), + SEARCH("search"), + SEND("send"), + SETTINGS_1("settings-1"), + SETTINGS_2("settings-2"), + SHARE("share"), + SHIELD("shield"), + SHOPPING_CART("shopping-cart"), + SHOW("show"), + SPEAKER("speaker"), + SUMMARY("summary"), + THEME("theme"), + TIME("time"), + TRASH("trash"), + TWITTER("twitter"), + UPLOAD("upload"), + USER_SOLID("user-solid"), + USER("user"), + VIDEO("video"), + WHATSAPP("whatsapp"); + + public final String type; + + RotterdamIconType(String type) { + this.type = type; + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/rotterdam/define-custom-elements.js b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/rotterdam/define-custom-elements.js new file mode 100644 index 00000000..2558260e --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/icon/rotterdam/define-custom-elements.js @@ -0,0 +1,3 @@ +import { defineCustomElements } from './@gemeente-rotterdam/web-components-stencil/loader/index.js'; + +defineCustomElements(); diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index bb14d411..b192dd37 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -34,6 +34,7 @@

      Componenten voor Apache Wicket

      + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java index ff11075d..c8e739fa 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java @@ -16,6 +16,7 @@ import nl.rotterdam.wicket.docs.heading_group.HeadingGroupExamplesPanel; import nl.rotterdam.wicket.docs.html_content.HtmlContentExamplesPanel; import nl.rotterdam.wicket.docs.icon.IconExamplesPanel; +import nl.rotterdam.wicket.docs.icon.RodsIconExamplesPanel; import nl.rotterdam.wicket.docs.link.UtrechtLinkExamplesPanel; import nl.rotterdam.wicket.docs.logo.UtrechtLogoExamplesPanel; import nl.rotterdam.wicket.docs.logo_image.RotterdamLogoImageExamplesPanel; @@ -90,6 +91,7 @@ protected void onInitialize() { pageBody.add(new HeadingGroupExamplesPanel("headingGroupExamplesPanel")); pageBody.add(new HtmlContentExamplesPanel("htmlContentExamplesPanel")); pageBody.add(new IconExamplesPanel("iconExamplesPanel")); + pageBody.add(new RodsIconExamplesPanel("rodsIconExamplesPanel")); pageBody.add(new RotterdamLogoImageExamplesPanel("rotterdamLogoImageExamplesPanel")); pageBody.add(new UtrechtLinkExamplesPanel("linkExamplesPanel")); pageBody.add(new UtrechtLogoExamplesPanel("logoExamplesPanel")); diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/RodsIconExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/RodsIconExamplesPanel.html new file mode 100644 index 00000000..de5f925d --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/RodsIconExamplesPanel.html @@ -0,0 +1,30 @@ + + + + +
      +

      Rotterdam Icon component

      +
      +

      Toont een SVG icoon uit de iconenset van gemeente Rotterdam.

      +
      + +
      +

      Icon

      +
      +

      Voorbeeld.

      +
      + + + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/RodsIconExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/RodsIconExamplesPanel.java new file mode 100644 index 00000000..c4e7e79b --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/icon/RodsIconExamplesPanel.java @@ -0,0 +1,81 @@ +package nl.rotterdam.wicket.docs.icon; + +import java.util.Arrays; +import java.util.List; +import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconBehavior; +import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconType; +import nl.rotterdam.design_system.wicket.components.unordered_list.utrecht.UtrechtUnorderedListBehavior; +import nl.rotterdam.design_system.wicket.components.unordered_list.utrecht.UtrechtUnorderedListItemBehavior; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; +import org.apache.wicket.markup.html.panel.Panel; + +public class RodsIconExamplesPanel extends Panel { + + public RodsIconExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleRodsIcons() { + // List links = Arrays.asList(RotterdamIconType.values()); + List icons = Arrays.asList(RotterdamIconType.values()); + // List icons = List.of(RotterdamIconType.TRASH); + + return new WebMarkupContainer("rodsIconset") { + @Override + protected void onInitialize() { + super.onInitialize(); + + add(new UtrechtUnorderedListBehavior()); + add( + new ListView("iconItem", icons) { + @Override + protected void populateItem(ListItem item) { + item.add(new UtrechtUnorderedListItemBehavior()); // TODO: should be singleton + RotterdamIconType iconType = item.getModelObject(); + // item.add(naam); + // item.add(new RotterdamIconBehavior(iconType)) + WebMarkupContainer icon = new WebMarkupContainer("icon"); + icon.add(new RotterdamIconBehavior(iconType)); + item.add(icon); + + item.add( + new Label("label", "RotterdamIconType." + iconType.type.toUpperCase().replace("-", "_")) + ); + } + } + ); + /* + new ListView("iconItem", icons) { + @Override + protected void populateItem(ListItem item) { + RotterdamIconType iconType = item.getModelObject(); + + // WebMarkupContainer icon = new WebMarkupContainer("icon"); + // icon.add(new RotterdamIconBehavior(iconType)); + + // WebMarkupContainer iconLabel = new WebMarkupContainer("iconLabel"); + // iconLabel.add(new Label(iconType.type)); + + // item.add(iconLabel); + // item.add(icon); + item.add(new Label(iconType.type)); + } + } + ); */ + } + }; + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleRodsIcons()); + } +} From 21ced827011ab5c899a9e4e8a0bb9ab3c9ba8235 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Mon, 9 Dec 2024 00:08:00 +0100 Subject: [PATCH 58/75] feat: add Link List component --- wicket/components-wicket/package.json | 1 + wicket/components-wicket/pom.xml | 8 ++ .../utrecht/UtrechtLinkListBehavior.java | 19 +++++ .../utrecht/UtrechtLinkListItemBehavior.java | 11 +++ .../utrecht/UtrechtLinkListLink.java | 43 +++++++++++ .../utrecht/UtrechtLinkListLinkBehavior.java | 11 +++ .../utrecht/UtrechtLinkListPanel.html | 10 +++ .../utrecht/UtrechtLinkListPanel.java | 73 +++++++++++++++++++ .../utrecht/UtrechtLinkListRecord.java | 6 ++ .../rotterdam/wicket/docs/ComponentsPage.html | 1 + .../rotterdam/wicket/docs/ComponentsPage.java | 2 + .../UtrechtLinkListExamplesPanel.html | 37 ++++++++++ .../UtrechtLinkListExamplesPanel.java | 59 +++++++++++++++ 13 files changed, 281 insertions(+) create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListItemBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListLink.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListLinkBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListPanel.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListPanel.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListRecord.java create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link_list/UtrechtLinkListExamplesPanel.html create mode 100644 wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link_list/UtrechtLinkListExamplesPanel.java diff --git a/wicket/components-wicket/package.json b/wicket/components-wicket/package.json index a7b35cb0..64cc20bd 100644 --- a/wicket/components-wicket/package.json +++ b/wicket/components-wicket/package.json @@ -45,6 +45,7 @@ "@utrecht/html-content-css": "1.3.0", "@utrecht/icon": "1.3.0", "@utrecht/link-css": "1.1.0", + "@utrecht/link-list-css": "2.3.0", "@utrecht/logo-css": "1.4.0", "@utrecht/nav-bar-css": "1.4.0", "@utrecht/number-badge-css": "2.3.0", diff --git a/wicket/components-wicket/pom.xml b/wicket/components-wicket/pom.xml index 412884ff..fb9dbda1 100644 --- a/wicket/components-wicket/pom.xml +++ b/wicket/components-wicket/pom.xml @@ -256,6 +256,14 @@ nl/rotterdam/design_system/wicket/components/link/utrecht
      + + false + node_modules/ + + @utrecht/link-list-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/link_list/utrecht + false node_modules/ diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListBehavior.java new file mode 100644 index 00000000..7a318c7b --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListBehavior.java @@ -0,0 +1,19 @@ +package nl.rotterdam.design_system.wicket.components.link_list.utrecht; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; + +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; + +public class UtrechtLinkListBehavior extends TagNameClassComponentBehavior { + + public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem( + UtrechtLinkListBehavior.class, + "@utrecht/link-list-css/dist/index.css" + ); + + public UtrechtLinkListBehavior() { + super("ul", "utrecht-link-list"); + addHeaderItem(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListItemBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListItemBehavior.java new file mode 100644 index 00000000..93c151ab --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListItemBehavior.java @@ -0,0 +1,11 @@ +package nl.rotterdam.design_system.wicket.components.link_list.utrecht; + +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; + +public class UtrechtLinkListItemBehavior extends TagNameClassComponentBehavior { + + public UtrechtLinkListItemBehavior() { + super("li", "utrecht-link-list__item"); + addHeaderItem(UtrechtLinkListBehavior.CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListLink.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListLink.java new file mode 100644 index 00000000..3a3956fa --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListLink.java @@ -0,0 +1,43 @@ +package nl.rotterdam.design_system.wicket.components.link_list.utrecht; + +import org.apache.wicket.Page; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.html.link.BookmarkablePageLink; + +public class UtrechtLinkListLink extends BookmarkablePageLink { + + public boolean placeholder = false; + + public UtrechtLinkListLink(String id, Class pageClass) { + super(id, pageClass); + this.setAutoEnable(true); + } + + @Override + public void onInitialize() { + super.onInitialize(); + add(new UtrechtLinkListLinkBehavior()); + } + + @Override + public void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + + if (linksTo(getPage())) { + tag.put("role", "link"); + tag.put("aria-disabled", "true"); + tag.put("aria-current", "page"); + } + } + + @Override + public boolean isEnabled() { + // Use the `isEnabled()` from `Link` to add an extra condition to disable + // the link: when it is a placeholder. + return super.isEnabled() && !this.placeholder; + } + + public void setPlaceholder(boolean enabled) { + this.placeholder = enabled; + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListLinkBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListLinkBehavior.java new file mode 100644 index 00000000..879f8b8a --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListLinkBehavior.java @@ -0,0 +1,11 @@ +package nl.rotterdam.design_system.wicket.components.link_list.utrecht; + +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; + +public class UtrechtLinkListLinkBehavior extends TagNameClassComponentBehavior { + + public UtrechtLinkListLinkBehavior() { + super("a", "utrecht-link-list__link"); + addHeaderItem(UtrechtLinkListBehavior.CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListPanel.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListPanel.html new file mode 100644 index 00000000..e83717b5 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListPanel.html @@ -0,0 +1,10 @@ + + + diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListPanel.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListPanel.java new file mode 100644 index 00000000..b818538c --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListPanel.java @@ -0,0 +1,73 @@ +package nl.rotterdam.design_system.wicket.components.link_list.utrecht; + +import java.util.List; +import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconBehavior; +import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconType; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.request.component.IRequestablePage; + +public class UtrechtLinkListPanel extends Panel { + + public List> links; + + public UtrechtLinkListPanel(String id, List> links) { + super(id); + this.links = links; + } + + @Override + protected void onInitialize() { + super.onInitialize(); + List> links = this.links; + + add( + new WebMarkupContainer("utrechtLinkList") { + @Override + protected void onInitialize() { + super.onInitialize(); + + add(new UtrechtLinkListBehavior()); // TODO should be singleton + add( + new ListView>("utrechtLinkListItem", links) { + @Override + protected void populateItem( + ListItem> item + ) { + item.add(new UtrechtLinkListItemBehavior()); // TODO: should be singleton + UtrechtLinkListRecord record = item.getModelObject(); + String naam = record.label(); + + // TODO: How do I type this? + @SuppressWarnings({ "rawtypes", "unchecked" }) + UtrechtLinkListLink link = new UtrechtLinkListLink( + "utrechtLinkListLink", + record.target() + ); + + // Optionally add an icon + if (record.icon() != null) { + WebMarkupContainer icon = new WebMarkupContainer("utrechtLinkListLinkIcon"); + icon.add(new RotterdamIconBehavior(record.icon())); + link.add(icon); + } else { + WebMarkupContainer icon = new WebMarkupContainer("utrechtLinkListLinkIcon"); + icon.add(new RotterdamIconBehavior(RotterdamIconType.CHEVRON_RIGHT)); + link.add(icon); + } + + // Add the link text + link.add(new Label("utrechtLinkListLinkLabel", naam)); + + item.add(link); + } + } + ); + } + } + ); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListRecord.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListRecord.java new file mode 100644 index 00000000..20f88ef6 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListRecord.java @@ -0,0 +1,6 @@ +package nl.rotterdam.design_system.wicket.components.link_list.utrecht; + +import java.io.Serializable; +import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconType; + +public record UtrechtLinkListRecord(RotterdamIconType icon, String label, Class target) implements Serializable {} diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html index b192dd37..b10dbf4d 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.html @@ -37,6 +37,7 @@

      Componenten voor Apache Wicket

      + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java index c8e739fa..4763038a 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java @@ -18,6 +18,7 @@ import nl.rotterdam.wicket.docs.icon.IconExamplesPanel; import nl.rotterdam.wicket.docs.icon.RodsIconExamplesPanel; import nl.rotterdam.wicket.docs.link.UtrechtLinkExamplesPanel; +import nl.rotterdam.wicket.docs.link_list.UtrechtLinkListExamplesPanel; import nl.rotterdam.wicket.docs.logo.UtrechtLogoExamplesPanel; import nl.rotterdam.wicket.docs.logo_image.RotterdamLogoImageExamplesPanel; import nl.rotterdam.wicket.docs.number_badge.UtrechtNumberBadgeExamplesPanel; @@ -94,6 +95,7 @@ protected void onInitialize() { pageBody.add(new RodsIconExamplesPanel("rodsIconExamplesPanel")); pageBody.add(new RotterdamLogoImageExamplesPanel("rotterdamLogoImageExamplesPanel")); pageBody.add(new UtrechtLinkExamplesPanel("linkExamplesPanel")); + pageBody.add(new UtrechtLinkListExamplesPanel("linkListExamplesPanel")); pageBody.add(new UtrechtLogoExamplesPanel("logoExamplesPanel")); pageBody.add(new UtrechtNumberBadgeExamplesPanel("numberBadgeExamplesPanel")); pageBody.add(new UtrechtOrderedListExamplesPanel("orderedListExamplesPanel")); diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link_list/UtrechtLinkListExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link_list/UtrechtLinkListExamplesPanel.html new file mode 100644 index 00000000..79472615 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link_list/UtrechtLinkListExamplesPanel.html @@ -0,0 +1,37 @@ + + + + +
      +

      Link List component

      +
      +

      Een lijst met gerelateerde links naar andere pagina’s of websites.

      +
      + +
      +

      Link List

      +
      +
      +

      Voorbeeld.

      +
      +
      + + +
      + +
      +

      Link List with icons

      +
      +
      +

      Voorbeeld.

      +
      +
      + + +
      +
      +
      + + diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link_list/UtrechtLinkListExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link_list/UtrechtLinkListExamplesPanel.java new file mode 100644 index 00000000..641061e9 --- /dev/null +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/link_list/UtrechtLinkListExamplesPanel.java @@ -0,0 +1,59 @@ +package nl.rotterdam.wicket.docs.link_list; + +import java.util.List; +import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconType; +import nl.rotterdam.design_system.wicket.components.link_list.utrecht.UtrechtLinkListPanel; +import nl.rotterdam.design_system.wicket.components.link_list.utrecht.UtrechtLinkListRecord; +import nl.rotterdam.wicket.docs.ComponentExample; +import nl.rotterdam.wicket.docs.RotterdamPlaceholderPage; +import nl.rotterdam.wicket.docs.mijn_loket_page.MijnLoketPage; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.request.component.IRequestablePage; + +public class UtrechtLinkListExamplesPanel extends Panel { + + public UtrechtLinkListExamplesPanel(String id) { + super(id); + } + + @ComponentExample + private static Component exampleLinkList() { + List> links = List.of( + new UtrechtLinkListRecord<>(null, "Overzicht", MijnLoketPage.class), + new UtrechtLinkListRecord<>(null, "Mijn berichten", RotterdamPlaceholderPage.class), + new UtrechtLinkListRecord<>(null, "Mijn lopende zaken", RotterdamPlaceholderPage.class), + new UtrechtLinkListRecord<>(null, "Zelf regelen", RotterdamPlaceholderPage.class), + new UtrechtLinkListRecord<>(null, "Belastingen", RotterdamPlaceholderPage.class), + new UtrechtLinkListRecord<>(null, "Werk & Inkomen", RotterdamPlaceholderPage.class), + new UtrechtLinkListRecord<>(null, "Parkeren", RotterdamPlaceholderPage.class), + new UtrechtLinkListRecord<>(null, "Mijn gegevens", RotterdamPlaceholderPage.class) + ); + + return new UtrechtLinkListPanel("utrechtLinkList", links); + } + + @ComponentExample + private static Component exampleLinkListIcon() { + List> links = List.of( + new UtrechtLinkListRecord<>(RotterdamIconType.OVERVIEW, "Overzicht", MijnLoketPage.class), + new UtrechtLinkListRecord<>(RotterdamIconType.INBOX, "Mijn berichten", RotterdamPlaceholderPage.class), + new UtrechtLinkListRecord<>(RotterdamIconType.BOX, "Mijn lopende zaken", RotterdamPlaceholderPage.class), + new UtrechtLinkListRecord<>(RotterdamIconType.SUMMARY, "Zelf regelen", RotterdamPlaceholderPage.class), + new UtrechtLinkListRecord<>(RotterdamIconType.COINS, "Belastingen", RotterdamPlaceholderPage.class), + new UtrechtLinkListRecord<>(RotterdamIconType.MONEY_2, "Werk & Inkomen", RotterdamPlaceholderPage.class), + new UtrechtLinkListRecord<>(RotterdamIconType.PARKING, "Parkeren", RotterdamPlaceholderPage.class), + new UtrechtLinkListRecord<>(RotterdamIconType.USER, "Mijn gegevens", RotterdamPlaceholderPage.class) + ); + + return new UtrechtLinkListPanel("utrechtLinkListIcon", links); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + + add(exampleLinkList()); + add(exampleLinkListIcon()); + } +} From e8300b6b71ce140649e78f3042f03875d4169e5a Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Tue, 10 Dec 2024 19:33:18 +0100 Subject: [PATCH 59/75] feat: add Breadcrumb Navigation component --- pnpm-lock.yaml | 30 +++++++ wicket/components-wicket/package.json | 1 + wicket/components-wicket/pom.xml | 8 ++ .../utrecht/UtrechtBreadcrumbNavBehavior.java | 19 ++++ .../UtrechtBreadcrumbNavItemBehavior.java | 11 +++ .../utrecht/UtrechtBreadcrumbNavLink.java | 50 +++++++++++ .../UtrechtBreadcrumbNavLinkBehavior.java | 11 +++ .../UtrechtBreadcrumbNavListBehavior.java | 11 +++ .../utrecht/UtrechtBreadcrumbNavPanel.html | 12 +++ .../utrecht/UtrechtBreadcrumbNavPanel.java | 86 +++++++++++++++++++ .../utrecht/UtrechtBreadcrumbNavRecord.java | 7 ++ 11 files changed, 246 insertions(+) create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavItemBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavLink.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavLinkBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavListBehavior.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.html create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.java create mode 100644 wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavRecord.java diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 51c962fc..5038383a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -590,6 +590,9 @@ importers: '@gemeente-denhaag/sidenav': specifier: 0.1.0-alpha.218 version: 0.1.0-alpha.218(react@18.3.1) + '@gemeente-rotterdam/web-components-stencil': + specifier: workspace:* + version: link:../../packages/web-components-stencil '@nl-design-system-candidate/paragraph-css': specifier: 2.0.0 version: 2.0.0 @@ -605,6 +608,9 @@ importers: '@utrecht/body-css': specifier: 1.1.0 version: 1.1.0 + '@utrecht/breadcrumb-nav-css': + specifier: 1.1.0 + version: 1.1.0 '@utrecht/button-css': specifier: 1.1.0 version: 1.1.0 @@ -662,6 +668,9 @@ importers: '@utrecht/link-css': specifier: 1.1.0 version: 1.1.0 + '@utrecht/link-list-css': + specifier: 2.3.0 + version: 2.3.0 '@utrecht/logo-css': specifier: 1.4.0 version: 1.4.0 @@ -711,6 +720,8 @@ importers: specifier: 1.4.0 version: 1.4.0 + wicket/components-wicket/target/classes/nl/rotterdam/design_system/wicket/components/icon/rotterdam/@gemeente-rotterdam/web-components-stencil/loader: {} + wicket/design-tokens-wicket: devDependencies: '@gemeente-rotterdam/design-tokens': @@ -1877,6 +1888,11 @@ packages: peerDependencies: react: ^18.0.0 + '@gemeente-denhaag/sidenav@0.1.0-alpha.218': + resolution: {integrity: sha512-KK6mZBwbVFwPaSU1XJ3ok0t3zr/d9C1E0SuAVfJwn7DH6GwYK6SRiTrQM/MUdMIFrOZa8RmGI+QfSMrtl6cyKg==} + peerDependencies: + react: ^18.0.0 + '@gemeente-denhaag/sidenav@0.1.0-alpha.240': resolution: {integrity: sha512-IZrD8WeJ8oX8tveBmv6NxTjYM1/MDm3iW5EhA2LSH4I7XpKIumnEL+tfpRLZIOGlp4cQw+oBwjYCF0kJocWcOA==} peerDependencies: @@ -2861,6 +2877,9 @@ packages: '@utrecht/body-css@1.1.0': resolution: {integrity: sha512-bKIHtnumGwF8biJoYamCNaro4Bko/M90I1ACjV5qYJGRWCBvp14gD0Qxeq8xHqPe+sWFYQmbFRvSrukiqzYy3A==} + '@utrecht/breadcrumb-nav-css@1.1.0': + resolution: {integrity: sha512-n7D1X/QJSU3pzJ/HvjUqxgZ4XHFPmdVLJ5RYZnlm6ygFcVQMblz35rI4Rz2iK5foddkehAFiNmXzQPDOrUb9VQ==} + '@utrecht/breadcrumb-nav-css@1.4.0': resolution: {integrity: sha512-mBe/Xczr2ekfT9sxl9svOtZJWrW0klbnWBDyhf4it4zOk5BKeeKxUYEjbOQghOQ5jqVRPdnRbIVZoKX0Vrq3sQ==} @@ -3032,6 +3051,9 @@ packages: '@utrecht/link-css@1.5.0': resolution: {integrity: sha512-2GgUbhOGWwu7GEoahQAV4QwHgNCkiUgdde6Ko97sjRhX0INhMIhQl++ROyA3jSefUHJYTkVSSWTNDUVF7vkFAg==} + '@utrecht/link-list-css@2.3.0': + resolution: {integrity: sha512-rpPJ6MJhnMscO6B5YdufXg9ERteiDsWZ4b3PlLxyWXQkIeKS+/By+b7ER7VJhYSKP+J9TIjuRFxGF3LTNhO8WA==} + '@utrecht/link-react@1.0.4': resolution: {integrity: sha512-0tOmJuQGL2oorw7oZCPZEsdyl2exanOH7X6L3lL4b89I3PHSrzBkLpTlvBXPTbIuZKDCKcdGXzDykmIhK/wlOw==} peerDependencies: @@ -9356,6 +9378,10 @@ snapshots: '@gemeente-denhaag/icons': 1.0.0(react@18.3.1) react: 18.3.1 + '@gemeente-denhaag/sidenav@0.1.0-alpha.218(react@18.3.1)': + dependencies: + react: 18.3.1 + '@gemeente-denhaag/sidenav@0.1.0-alpha.240(react@18.3.1)': dependencies: react: 18.3.1 @@ -10516,6 +10542,8 @@ snapshots: '@utrecht/body-css@1.1.0': {} + '@utrecht/breadcrumb-nav-css@1.1.0': {} + '@utrecht/breadcrumb-nav-css@1.4.0': {} '@utrecht/button-css@1.1.0': {} @@ -10677,6 +10705,8 @@ snapshots: '@utrecht/link-css@1.5.0': {} + '@utrecht/link-list-css@2.3.0': {} + '@utrecht/link-react@1.0.4(@babel/runtime@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 diff --git a/wicket/components-wicket/package.json b/wicket/components-wicket/package.json index 64cc20bd..d8633b39 100644 --- a/wicket/components-wicket/package.json +++ b/wicket/components-wicket/package.json @@ -26,6 +26,7 @@ "@utrecht/alert-css": "2.2.0", "@utrecht/badge-list-css": "2.2.0", "@utrecht/body-css": "1.1.0", + "@utrecht/breadcrumb-nav-css": "1.1.0", "@utrecht/button-css": "1.1.0", "@utrecht/button-group-css": "1.4.0", "@utrecht/code-block-css": "1.4.0", diff --git a/wicket/components-wicket/pom.xml b/wicket/components-wicket/pom.xml index fb9dbda1..b27d85b6 100644 --- a/wicket/components-wicket/pom.xml +++ b/wicket/components-wicket/pom.xml @@ -130,6 +130,14 @@ nl/rotterdam/design_system/wicket/components/body/utrecht
      + + false + node_modules/ + + @utrecht/breadcrumb-nav-css/dist/*.css + + nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht + false node_modules/ diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavBehavior.java new file mode 100644 index 00000000..e8819857 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavBehavior.java @@ -0,0 +1,19 @@ +package nl.rotterdam.design_system.wicket.components.breadcrumb_nav.utrecht; + +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; + +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; +import org.apache.wicket.markup.head.CssReferenceHeaderItem; + +public class UtrechtBreadcrumbNavBehavior extends TagNameClassComponentBehavior { + + public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem( + UtrechtBreadcrumbNavBehavior.class, + "@utrecht/breadcrumb-nav-css/dist/index.css" + ); + + public UtrechtBreadcrumbNavBehavior() { + super("nav", "utrecht-breadcrumb-nav"); + addHeaderItem(CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavItemBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavItemBehavior.java new file mode 100644 index 00000000..2f43aae1 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavItemBehavior.java @@ -0,0 +1,11 @@ +package nl.rotterdam.design_system.wicket.components.breadcrumb_nav.utrecht; + +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; + +public class UtrechtBreadcrumbNavItemBehavior extends TagNameClassComponentBehavior { + + public UtrechtBreadcrumbNavItemBehavior() { + super("li", "utrecht-breadcrumb-nav__item"); + addHeaderItem(UtrechtBreadcrumbNavBehavior.CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavLink.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavLink.java new file mode 100644 index 00000000..90de512b --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavLink.java @@ -0,0 +1,50 @@ +package nl.rotterdam.design_system.wicket.components.breadcrumb_nav.utrecht; + +import org.apache.wicket.Page; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.html.link.BookmarkablePageLink; + +public class UtrechtBreadcrumbNavLink extends BookmarkablePageLink { + + public boolean placeholder = false; + private String placeholderClassName = "utrecht-breadcrumb-nav__link--placeholder"; + + public UtrechtBreadcrumbNavLink(String id, Class pageClass) { + super(id, pageClass); + this.setAutoEnable(true); + } + + @Override + public void onInitialize() { + super.onInitialize(); + add(new UtrechtBreadcrumbNavLinkBehavior()); + } + + @Override + public void onComponentTag(ComponentTag tag) { + super.onComponentTag(tag); + + if (this.placeholder) { + tag.append("class", this.placeholderClassName, " "); + tag.put("role", "link"); + tag.put("aria-disabled", "true"); + } + + if (linksTo(getPage())) { + tag.put("role", "link"); + tag.put("aria-disabled", "true"); + tag.put("aria-current", "page"); + } + } + + @Override + public boolean isEnabled() { + // Use the `isEnabled()` from `Link` to add an extra condition to disable + // the link: when it is a placeholder. + return super.isEnabled() && !this.placeholder; + } + + public void setPlaceholder(boolean enabled) { + this.placeholder = enabled; + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavLinkBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavLinkBehavior.java new file mode 100644 index 00000000..93fe113b --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavLinkBehavior.java @@ -0,0 +1,11 @@ +package nl.rotterdam.design_system.wicket.components.breadcrumb_nav.utrecht; + +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; + +public class UtrechtBreadcrumbNavLinkBehavior extends TagNameClassComponentBehavior { + + public UtrechtBreadcrumbNavLinkBehavior() { + super("a", "utrecht-breadcrumb-nav__link"); + addHeaderItem(UtrechtBreadcrumbNavBehavior.CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavListBehavior.java new file mode 100644 index 00000000..2d2a491d --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavListBehavior.java @@ -0,0 +1,11 @@ +package nl.rotterdam.design_system.wicket.components.breadcrumb_nav.utrecht; + +import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; + +public class UtrechtBreadcrumbNavListBehavior extends TagNameClassComponentBehavior { + + public UtrechtBreadcrumbNavListBehavior() { + super("ul", "utrecht-breadcrumb-nav__list"); + addHeaderItem(UtrechtBreadcrumbNavBehavior.CSS); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.html b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.html new file mode 100644 index 00000000..3b8a2ff7 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.html @@ -0,0 +1,12 @@ + + + diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.java new file mode 100644 index 00000000..2cf7dd47 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.java @@ -0,0 +1,86 @@ +package nl.rotterdam.design_system.wicket.components.breadcrumb_nav.utrecht; + +import java.util.List; +import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconBehavior; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.list.ListItem; +import org.apache.wicket.markup.html.list.ListView; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.request.component.IRequestablePage; + +public class UtrechtBreadcrumbNavPanel extends Panel { + + public List> links; + + public UtrechtBreadcrumbNavPanel(String id, List> links) { + super(id); + this.links = links; + } + + @Override + protected void onInitialize() { + super.onInitialize(); + List> links = this.links; + + add( + new WebMarkupContainer("utrechtBreadcrumbNav") { + @Override + protected void onInitialize() { + super.onInitialize(); + add(new UtrechtBreadcrumbNavBehavior()); + + add( + new WebMarkupContainer("utrechtBreadcrumbNavList") { + @Override + protected void onInitialize() { + super.onInitialize(); + + add(new UtrechtBreadcrumbNavListBehavior()); // TODO should be singleton + add( + new ListView>( + "utrechtBreadcrumbNavItem", + links + ) { + @Override + protected void populateItem( + ListItem> item + ) { + item.add(new UtrechtBreadcrumbNavItemBehavior()); // TODO: should be singleton + UtrechtBreadcrumbNavRecord record = + item.getModelObject(); + String naam = record.label(); + + // TODO: How do I type this? + @SuppressWarnings({ "rawtypes", "unchecked" }) + UtrechtBreadcrumbNavLink link = new UtrechtBreadcrumbNavLink( + "utrechtBreadcrumbNavLink", + record.target() + ); + + // Optionally add an icon + if (record.icon() != null) { + WebMarkupContainer icon = new WebMarkupContainer( + "utrechtBreadcrumbNavLinkIcon" + ); + icon.add(new RotterdamIconBehavior(record.icon())); + link.add(icon); + } else { + link.add(new Label("utrechtBreadcrumbNavLinkIcon", "")); + } + + // Add the link text + link.add(new Label("utrechtBreadcrumbNavLinkLabel", naam)); + + item.add(link); + } + } + ); + } + } + ); + } + } + ); + } +} diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavRecord.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavRecord.java new file mode 100644 index 00000000..fc0e6e03 --- /dev/null +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavRecord.java @@ -0,0 +1,7 @@ +package nl.rotterdam.design_system.wicket.components.breadcrumb_nav.utrecht; + +import java.io.Serializable; +import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconType; + +public record UtrechtBreadcrumbNavRecord(RotterdamIconType icon, String label, Class target) + implements Serializable {} From 3fc4ae75b6344c5d13c72f0e79c6a0c9d44f6ca1 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 15:23:41 +0100 Subject: [PATCH 60/75] make protected --- .../rotterdam/wicket/docs/RotterdamBasePage.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java index ebbda37c..617776ff 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java @@ -1,7 +1,5 @@ package nl.rotterdam.wicket.docs; -import java.util.Arrays; -import java.util.stream.Collectors; import nl.rotterdam.design_system.wicket.components.body.utrecht.UtrechtBodyBehavior; import nl.rotterdam.design_system.wicket.components.link.utrecht.UtrechtBookmarkableLink; import nl.rotterdam.design_system.wicket.components.logo.utrecht.UtrechtLogoBorder; @@ -15,14 +13,17 @@ import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.Link; +import java.util.Arrays; +import java.util.stream.Collectors; + public class RotterdamBasePage extends BasePage { - public UtrechtPageLayoutBorder pageLayout; - public UtrechtPageHeaderBorder pageHeader; - public UtrechtPageBodyBorder pageBody; - public UtrechtPageFooterBorder pageFooter; + protected UtrechtPageLayoutBorder pageLayout; + protected UtrechtPageHeaderBorder pageHeader; + protected UtrechtPageBodyBorder pageBody; + protected UtrechtPageFooterBorder pageFooter; private UtrechtLogoBorder logo; - private String siteTitle = "rotterdam.nl"; + private final String siteTitle = "rotterdam.nl"; public String pageTitle; public String stepTitle; public String errorTitle; From 09964303fa7f987e9c24c4445cb6a04fded00b82 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 15:25:04 +0100 Subject: [PATCH 61/75] Fix test --- .../docs/ordered_list/UtrechtOrderedListExamplesPanel.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html index 7be3762f..fe39b5db 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ordered_list/UtrechtOrderedListExamplesPanel.html @@ -8,7 +8,7 @@

      Ordered List component

      Lijst waarvan de volgorde van items betekenis heeft.

      -
      +

      Ordered List

      Voorbeeld.

      From 0d731812bd129484aed38d5ca68ea7926f51d83c Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 15:27:07 +0100 Subject: [PATCH 62/75] Run correct examples panel --- .../GenerateMarkdownAndStorybookExamples.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index ead3f452..8deb7e78 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -21,6 +21,7 @@ import nl.rotterdam.design_system.wicket.components.preserve_data.utrecht.UtrechtPreserveDataLabel; import nl.rotterdam.design_system.wicket.components.root.utrecht.UtrechtRootBorder; import nl.rotterdam.design_system.wicket.components.separator.utrecht.UtrechtSeparator; +import nl.rotterdam.design_system.wicket.components.unordered_list.utrecht.UtrechtUnorderedList; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.DocsApplication; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; @@ -45,6 +46,7 @@ import nl.rotterdam.wicket.docs.preserve_data.UtrechtPreserveDataExamplesPanel; import nl.rotterdam.wicket.docs.root.UtrechtRootExamplesPanel; import nl.rotterdam.wicket.docs.separator.UtrechtSeparatorExamplesPanel; +import nl.rotterdam.wicket.docs.unordered_list.UtrechtUnorderedListExamplesPanel; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; @@ -257,8 +259,8 @@ void generateUtrechtOrderedList() { @Test void generateUtrechtUnorderedList() { new MarkdownDocumentationExamplesGenerator( - UtrechtOrderedListExamplesPanel.class, - UtrechtOrderedList.class, + UtrechtUnorderedListExamplesPanel.class, + UtrechtUnorderedList.class, "utrecht-unordered-list").generate(); } From 542411578fa55d7487c1066be2541312fee9ae20 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 15:28:10 +0100 Subject: [PATCH 63/75] Make sure directory exists but is ingored --- wicket/docs-wicket/stories/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 wicket/docs-wicket/stories/.gitignore diff --git a/wicket/docs-wicket/stories/.gitignore b/wicket/docs-wicket/stories/.gitignore new file mode 100644 index 00000000..72e8ffc0 --- /dev/null +++ b/wicket/docs-wicket/stories/.gitignore @@ -0,0 +1 @@ +* From 01ef17dd9050faff10c6f194fac5eedba02c40cf Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 15:30:34 +0100 Subject: [PATCH 64/75] Do not make fields in base-class public public is intended for usage on other classes, while here we only want subclasses to be able to change things --- .../java/nl/rotterdam/wicket/docs/RotterdamBasePage.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java index 617776ff..2f7d8105 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java @@ -24,10 +24,10 @@ public class RotterdamBasePage extends BasePage { protected UtrechtPageFooterBorder pageFooter; private UtrechtLogoBorder logo; private final String siteTitle = "rotterdam.nl"; - public String pageTitle; - public String stepTitle; - public String errorTitle; - public String titlePartSeparator = " · "; + protected String pageTitle; + protected String stepTitle; + protected String errorTitle; + protected String titlePartSeparator = " · "; @Override protected void onInitialize() { From 4d243dfaeb90b68d0036124a4147e7b7f17735b6 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 15:33:41 +0100 Subject: [PATCH 65/75] Match the page name the intent Other project in Rotterdam also has 'BasePage' class, making it a bit confusing --- .../docs/{BasePage.html => DocsBasePage.html} | 0 .../docs/{BasePage.java => DocsBasePage.java} | 13 ++++++------- .../nl/rotterdam/wicket/docs/RotterdamBasePage.java | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) rename wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/{BasePage.html => DocsBasePage.html} (100%) rename wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/{BasePage.java => DocsBasePage.java} (83%) diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsBasePage.html similarity index 100% rename from wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.html rename to wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsBasePage.html diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsBasePage.java similarity index 83% rename from wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java rename to wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsBasePage.java index 79a9a7d9..bc8a7749 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/BasePage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/DocsBasePage.java @@ -1,22 +1,21 @@ package nl.rotterdam.wicket.docs; -import static css.DesignTokensWicketCssReference.THEME_ROTTERDAM_RODS_CSS_HEADER_ITEM; -import static css.WicketComponentsCssReferences.THEME_VOORBEELD_GEMEENTE_CSS_HEADER_ITEM; - import org.apache.wicket.markup.head.CssHeaderItem; import org.apache.wicket.markup.head.CssReferenceHeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.request.resource.CssResourceReference; -public abstract class BasePage extends WebPage { +import static css.DesignTokensWicketCssReference.THEME_ROTTERDAM_RODS_CSS_HEADER_ITEM; +import static css.WicketComponentsCssReferences.THEME_VOORBEELD_GEMEENTE_CSS_HEADER_ITEM; + +public abstract class DocsBasePage extends WebPage { - public static final String TITLE_ID = "title"; public static final CssReferenceHeaderItem DOCS_CSS_HEADER_ITEM = CssHeaderItem.forReference( - new CssResourceReference(BasePage.class, "docs.css") + new CssResourceReference(DocsBasePage.class, "docs.css") ); - public BasePage() { + public DocsBasePage() { super(); } diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java index 2f7d8105..cd67285f 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/RotterdamBasePage.java @@ -16,7 +16,7 @@ import java.util.Arrays; import java.util.stream.Collectors; -public class RotterdamBasePage extends BasePage { +public class RotterdamBasePage extends DocsBasePage { protected UtrechtPageLayoutBorder pageLayout; protected UtrechtPageHeaderBorder pageHeader; From a660696c5e022b77b7b7a983c876d6e475fe4228 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 15:41:27 +0100 Subject: [PATCH 66/75] Fixed some singletons --- .../UtrechtBreadcrumbNavItemBehavior.java | 4 +- .../UtrechtBreadcrumbNavListBehavior.java | 4 +- .../utrecht/UtrechtBreadcrumbNavPanel.java | 82 ++++++++++--------- 3 files changed, 48 insertions(+), 42 deletions(-) diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavItemBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavItemBehavior.java index 2f43aae1..c8cd4086 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavItemBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavItemBehavior.java @@ -4,7 +4,9 @@ public class UtrechtBreadcrumbNavItemBehavior extends TagNameClassComponentBehavior { - public UtrechtBreadcrumbNavItemBehavior() { + public static final UtrechtBreadcrumbNavItemBehavior INSTANCE = new UtrechtBreadcrumbNavItemBehavior(); + + private UtrechtBreadcrumbNavItemBehavior() { super("li", "utrecht-breadcrumb-nav__item"); addHeaderItem(UtrechtBreadcrumbNavBehavior.CSS); } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavListBehavior.java index 2d2a491d..58c109bb 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavListBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavListBehavior.java @@ -4,7 +4,9 @@ public class UtrechtBreadcrumbNavListBehavior extends TagNameClassComponentBehavior { - public UtrechtBreadcrumbNavListBehavior() { + public static final UtrechtBreadcrumbNavListBehavior INSTANCE = new UtrechtBreadcrumbNavListBehavior(); + + private UtrechtBreadcrumbNavListBehavior() { super("ul", "utrecht-breadcrumb-nav__list"); addHeaderItem(UtrechtBreadcrumbNavBehavior.CSS); } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.java index 2cf7dd47..d393ab7f 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.java @@ -1,7 +1,7 @@ package nl.rotterdam.design_system.wicket.components.breadcrumb_nav.utrecht; -import java.util.List; import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconBehavior; +import org.apache.wicket.Component; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.list.ListItem; @@ -9,6 +9,8 @@ import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.request.component.IRequestablePage; +import java.util.List; + public class UtrechtBreadcrumbNavPanel extends Panel { public List> links; @@ -18,6 +20,43 @@ public UtrechtBreadcrumbNavPanel(String id, List> links) { + return new ListView<>("utrechtBreadcrumbNavItem", links) { + @Override + protected void populateItem( + ListItem> item + ) { + item.add(UtrechtBreadcrumbNavItemBehavior.INSTANCE); + UtrechtBreadcrumbNavRecord record = + item.getModelObject(); + String naam = record.label(); + + // TODO: How do I type this? + @SuppressWarnings({"rawtypes", "unchecked"}) + UtrechtBreadcrumbNavLink link = new UtrechtBreadcrumbNavLink( + "utrechtBreadcrumbNavLink", + record.target() + ); + + // Optionally add an icon + if (record.icon() != null) { + WebMarkupContainer icon = new WebMarkupContainer( + "utrechtBreadcrumbNavLinkIcon" + ); + icon.add(new RotterdamIconBehavior(record.icon())); + link.add(icon); + } else { + link.add(new Label("utrechtBreadcrumbNavLinkIcon", "")); + } + + // Add the link text + link.add(new Label("utrechtBreadcrumbNavLinkLabel", naam)); + + item.add(link); + } + }; + } + @Override protected void onInitialize() { super.onInitialize(); @@ -36,45 +75,8 @@ protected void onInitialize() { protected void onInitialize() { super.onInitialize(); - add(new UtrechtBreadcrumbNavListBehavior()); // TODO should be singleton - add( - new ListView>( - "utrechtBreadcrumbNavItem", - links - ) { - @Override - protected void populateItem( - ListItem> item - ) { - item.add(new UtrechtBreadcrumbNavItemBehavior()); // TODO: should be singleton - UtrechtBreadcrumbNavRecord record = - item.getModelObject(); - String naam = record.label(); - - // TODO: How do I type this? - @SuppressWarnings({ "rawtypes", "unchecked" }) - UtrechtBreadcrumbNavLink link = new UtrechtBreadcrumbNavLink( - "utrechtBreadcrumbNavLink", - record.target() - ); - - // Optionally add an icon - if (record.icon() != null) { - WebMarkupContainer icon = new WebMarkupContainer( - "utrechtBreadcrumbNavLinkIcon" - ); - icon.add(new RotterdamIconBehavior(record.icon())); - link.add(icon); - } else { - link.add(new Label("utrechtBreadcrumbNavLinkIcon", "")); - } - - // Add the link text - link.add(new Label("utrechtBreadcrumbNavLinkLabel", naam)); - - item.add(link); - } - } + add(UtrechtBreadcrumbNavListBehavior.INSTANCE); + add(createNavListview(links) ); } } From 1266da9923181b54675b26e880f46ded66e5d2e2 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 15:46:59 +0100 Subject: [PATCH 67/75] named singletons --- .../utrecht/UtrechtBreadcrumbNavItemBehavior.java | 2 +- .../utrecht/UtrechtBreadcrumbNavListBehavior.java | 2 +- .../breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.java | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavItemBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavItemBehavior.java index c8cd4086..607b0144 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavItemBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavItemBehavior.java @@ -4,7 +4,7 @@ public class UtrechtBreadcrumbNavItemBehavior extends TagNameClassComponentBehavior { - public static final UtrechtBreadcrumbNavItemBehavior INSTANCE = new UtrechtBreadcrumbNavItemBehavior(); + public static final UtrechtBreadcrumbNavItemBehavior UTRECHT_BREADCRUMB_NAV_ITEM_BEHAVIOR = new UtrechtBreadcrumbNavItemBehavior(); private UtrechtBreadcrumbNavItemBehavior() { super("li", "utrecht-breadcrumb-nav__item"); diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavListBehavior.java index 58c109bb..39aaddad 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavListBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavListBehavior.java @@ -4,7 +4,7 @@ public class UtrechtBreadcrumbNavListBehavior extends TagNameClassComponentBehavior { - public static final UtrechtBreadcrumbNavListBehavior INSTANCE = new UtrechtBreadcrumbNavListBehavior(); + public static final UtrechtBreadcrumbNavListBehavior UTRECHT_BREADCRUMB_NAV_LIST_BEHAVIOR = new UtrechtBreadcrumbNavListBehavior(); private UtrechtBreadcrumbNavListBehavior() { super("ul", "utrecht-breadcrumb-nav__list"); diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.java index d393ab7f..f1715528 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/breadcrumb_nav/utrecht/UtrechtBreadcrumbNavPanel.java @@ -11,6 +11,9 @@ import java.util.List; +import static nl.rotterdam.design_system.wicket.components.breadcrumb_nav.utrecht.UtrechtBreadcrumbNavItemBehavior.UTRECHT_BREADCRUMB_NAV_ITEM_BEHAVIOR; +import static nl.rotterdam.design_system.wicket.components.breadcrumb_nav.utrecht.UtrechtBreadcrumbNavListBehavior.UTRECHT_BREADCRUMB_NAV_LIST_BEHAVIOR; + public class UtrechtBreadcrumbNavPanel extends Panel { public List> links; @@ -26,7 +29,7 @@ private static Component createNavListview(List> item ) { - item.add(UtrechtBreadcrumbNavItemBehavior.INSTANCE); + item.add(UTRECHT_BREADCRUMB_NAV_ITEM_BEHAVIOR); UtrechtBreadcrumbNavRecord record = item.getModelObject(); String naam = record.label(); @@ -75,7 +78,7 @@ protected void onInitialize() { protected void onInitialize() { super.onInitialize(); - add(UtrechtBreadcrumbNavListBehavior.INSTANCE); + add(UTRECHT_BREADCRUMB_NAV_LIST_BEHAVIOR); add(createNavListview(links) ); } From d2024d7d965674c4313f5f77fb82e65f94641dff Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 15:53:41 +0100 Subject: [PATCH 68/75] Singletons for behaviors --- .../link_list/utrecht/UtrechtLinkListBehavior.java | 8 +++++--- .../link_list/utrecht/UtrechtLinkListPanel.java | 11 +++++++---- .../side_nav/denhaag/DenhaagSideNavListBehavior.java | 4 +++- .../side_nav/denhaag/DenhaagSideNavPanel.java | 7 +++++-- .../docs/side_nav/DenhaagSideNavExamplesPanel.java | 8 +++++--- 5 files changed, 25 insertions(+), 13 deletions(-) diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListBehavior.java index 7a318c7b..6446bc73 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListBehavior.java @@ -1,18 +1,20 @@ package nl.rotterdam.design_system.wicket.components.link_list.utrecht; -import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; - import nl.rotterdam.design_system.wicket.components.base.TagNameClassComponentBehavior; import org.apache.wicket.markup.head.CssReferenceHeaderItem; +import static nl.rotterdam.design_system.wicket.components.CssReferenceHeaderItems.cssReferenceHeaderItem; + public class UtrechtLinkListBehavior extends TagNameClassComponentBehavior { + public static final UtrechtLinkListBehavior UTRECHT_LINK_LIST_BEHAVIOR = new UtrechtLinkListBehavior(); + public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem( UtrechtLinkListBehavior.class, "@utrecht/link-list-css/dist/index.css" ); - public UtrechtLinkListBehavior() { + private UtrechtLinkListBehavior() { super("ul", "utrecht-link-list"); addHeaderItem(CSS); } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListPanel.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListPanel.java index b818538c..40ddfa21 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListPanel.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListPanel.java @@ -1,6 +1,5 @@ package nl.rotterdam.design_system.wicket.components.link_list.utrecht; -import java.util.List; import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconBehavior; import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconType; import org.apache.wicket.markup.html.WebMarkupContainer; @@ -10,6 +9,10 @@ import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.request.component.IRequestablePage; +import java.util.List; + +import static nl.rotterdam.design_system.wicket.components.link_list.utrecht.UtrechtLinkListBehavior.UTRECHT_LINK_LIST_BEHAVIOR; + public class UtrechtLinkListPanel extends Panel { public List> links; @@ -30,9 +33,9 @@ protected void onInitialize() { protected void onInitialize() { super.onInitialize(); - add(new UtrechtLinkListBehavior()); // TODO should be singleton + add(UTRECHT_LINK_LIST_BEHAVIOR); add( - new ListView>("utrechtLinkListItem", links) { + new ListView<>("utrechtLinkListItem", links) { @Override protected void populateItem( ListItem> item @@ -42,7 +45,7 @@ protected void populateItem( String naam = record.label(); // TODO: How do I type this? - @SuppressWarnings({ "rawtypes", "unchecked" }) + @SuppressWarnings({"rawtypes", "unchecked"}) UtrechtLinkListLink link = new UtrechtLinkListLink( "utrechtLinkListLink", record.target() diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavListBehavior.java index f274e0a3..4fd71660 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavListBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavListBehavior.java @@ -4,7 +4,9 @@ public class DenhaagSideNavListBehavior extends TagNameClassComponentBehavior { - public DenhaagSideNavListBehavior() { + public static final DenhaagSideNavListBehavior DENHAAG_SIDE_NAV_LIST_BEHAVIOR = new DenhaagSideNavListBehavior(); + + private DenhaagSideNavListBehavior() { super("ul", "denhaag-sidenav__list"); addHeaderItem(DenhaagSideNavBehavior.CSS); } diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavPanel.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavPanel.java index d4ca453f..ba1f4b8c 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavPanel.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/side_nav/denhaag/DenhaagSideNavPanel.java @@ -1,6 +1,5 @@ package nl.rotterdam.design_system.wicket.components.side_nav.denhaag; -import java.util.List; import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconBehavior; import nl.rotterdam.design_system.wicket.components.number_badge.utrecht.UtrechtNumberBadge; import org.apache.wicket.markup.html.WebMarkupContainer; @@ -10,6 +9,10 @@ import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.request.component.IRequestablePage; +import java.util.List; + +import static nl.rotterdam.design_system.wicket.components.side_nav.denhaag.DenhaagSideNavListBehavior.DENHAAG_SIDE_NAV_LIST_BEHAVIOR; + public class DenhaagSideNavPanel extends Panel { public List> sideNavRecords; @@ -37,7 +40,7 @@ protected void onInitialize() { protected void onInitialize() { super.onInitialize(); - add(new DenhaagSideNavListBehavior()); // TODO should be singleton + add(DENHAAG_SIDE_NAV_LIST_BEHAVIOR); // TODO should be singleton add( new ListView>( "denhaagSideNavItem", diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/DenhaagSideNavExamplesPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/DenhaagSideNavExamplesPanel.java index c0519827..00516e49 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/DenhaagSideNavExamplesPanel.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/side_nav/DenhaagSideNavExamplesPanel.java @@ -1,13 +1,11 @@ package nl.rotterdam.wicket.docs.side_nav; -import java.util.List; import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconBehavior; import nl.rotterdam.design_system.wicket.components.icon.rotterdam.RotterdamIconType; import nl.rotterdam.design_system.wicket.components.number_badge.utrecht.UtrechtNumberBadge; import nl.rotterdam.design_system.wicket.components.side_nav.denhaag.DenhaagSideNavBehavior; import nl.rotterdam.design_system.wicket.components.side_nav.denhaag.DenhaagSideNavItemBehavior; import nl.rotterdam.design_system.wicket.components.side_nav.denhaag.DenhaagSideNavLink; -import nl.rotterdam.design_system.wicket.components.side_nav.denhaag.DenhaagSideNavListBehavior; import nl.rotterdam.wicket.docs.ComponentExample; import nl.rotterdam.wicket.docs.RotterdamPlaceholderPage; import nl.rotterdam.wicket.docs.mijn_loket_page.MijnLoketPage; @@ -18,6 +16,10 @@ import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.panel.Panel; +import java.util.List; + +import static nl.rotterdam.design_system.wicket.components.side_nav.denhaag.DenhaagSideNavListBehavior.DENHAAG_SIDE_NAV_LIST_BEHAVIOR; + public class DenhaagSideNavExamplesPanel extends Panel { public DenhaagSideNavExamplesPanel(String id) { @@ -55,7 +57,7 @@ protected void onInitialize() { protected void onInitialize() { super.onInitialize(); - add(new DenhaagSideNavListBehavior()); // TODO should be singleton + add(DENHAAG_SIDE_NAV_LIST_BEHAVIOR); add( new ListView>("denhaagSideNavItem", links) { @Override From 37a0c5e017bbf5a77c8583e59258362bcae0fb94 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 16:03:34 +0100 Subject: [PATCH 69/75] Make code easier to read --- .../rotterdam/wicket/docs/ComponentsPage.java | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java index 4763038a..1e928957 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/ComponentsPage.java @@ -1,7 +1,6 @@ package nl.rotterdam.wicket.docs; import css.DesignSystemTheme; -import java.util.Arrays; import nl.rotterdam.wicket.docs.alert.AlertExamplesPanel; import nl.rotterdam.wicket.docs.badge_list.BadgeListExamplesPanel; import nl.rotterdam.wicket.docs.body.BodyExamplesPanel; @@ -45,6 +44,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Arrays; + public class ComponentsPage extends RotterdamBasePage { private static final Logger LOGGER = LoggerFactory.getLogger(ComponentsPage.class); @@ -76,20 +77,23 @@ private static Component createActiveThemeChoice() { protected void onInitialize() { super.onInitialize(); - // Add the component stories - pageBody.add(new DenhaagSideNavExamplesPanel("denhaagSideNavExamplesPanel")); - pageBody.add(new AlertExamplesPanel("alertExamplesPanel")); - pageBody.add(new BadgeListExamplesPanel("badgeListExamplesPanel")); - pageBody.add(new BodyExamplesPanel("bodyExamplesPanel")); - pageBody.add(new UtrechtButtonExamplesPanel("buttonExamplesPanel")); - pageBody.add(new ButtonGroupExamplesPanel("buttonGroupExamplesPanel")); - pageBody.add(new CodeBlockExamplesPanel("codeBlockExamplesPanel")); - pageBody.add(new ColumnLayoutExamplesPanel("columnLayoutExamplesPanel")); - pageBody.add(new FormFieldCheckboxExamplesPanel("formFieldCheckboxExamplesPanel")); - pageBody.add(new FormFieldLabelExamplesPanel("formFieldLabelExamplesPanel")); - pageBody.add(new UtrechtFormFieldTextboxExamplesPanel("formFieldTextboxExamplesPanel")); - pageBody.add(new HeadingExamplesPanel("headingExamplesPanel")); - pageBody.add(new HeadingGroupExamplesPanel("headingGroupExamplesPanel")); + // Add the component stories. You can add multiple components with just one add, making it easier to read. + pageBody.add( + new DenhaagSideNavExamplesPanel("denhaagSideNavExamplesPanel"), + new AlertExamplesPanel("alertExamplesPanel"), + new BadgeListExamplesPanel("badgeListExamplesPanel"), + new BodyExamplesPanel("bodyExamplesPanel"), + new UtrechtButtonExamplesPanel("buttonExamplesPanel"), + new ButtonGroupExamplesPanel("buttonGroupExamplesPanel"), + new CodeBlockExamplesPanel("codeBlockExamplesPanel"), + new ColumnLayoutExamplesPanel("columnLayoutExamplesPanel"), + new FormFieldCheckboxExamplesPanel("formFieldCheckboxExamplesPanel"), + new FormFieldLabelExamplesPanel("formFieldLabelExamplesPanel"), + new UtrechtFormFieldTextboxExamplesPanel("formFieldTextboxExamplesPanel"), + new HeadingExamplesPanel("headingExamplesPanel"), + new HeadingGroupExamplesPanel("headingGroupExamplesPanel") + ); + pageBody.add(new HtmlContentExamplesPanel("htmlContentExamplesPanel")); pageBody.add(new IconExamplesPanel("iconExamplesPanel")); pageBody.add(new RodsIconExamplesPanel("rodsIconExamplesPanel")); From da9ef2cee77a81b7c6dbdd952f0f906065f0937a Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 16:04:45 +0100 Subject: [PATCH 70/75] singleton must be the last static-final in a .java file --- .../components/link_list/utrecht/UtrechtLinkListBehavior.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListBehavior.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListBehavior.java index 6446bc73..bbb6761f 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListBehavior.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/link_list/utrecht/UtrechtLinkListBehavior.java @@ -7,13 +7,14 @@ public class UtrechtLinkListBehavior extends TagNameClassComponentBehavior { - public static final UtrechtLinkListBehavior UTRECHT_LINK_LIST_BEHAVIOR = new UtrechtLinkListBehavior(); public static final CssReferenceHeaderItem CSS = cssReferenceHeaderItem( UtrechtLinkListBehavior.class, "@utrecht/link-list-css/dist/index.css" ); + public static final UtrechtLinkListBehavior UTRECHT_LINK_LIST_BEHAVIOR = new UtrechtLinkListBehavior(); + private UtrechtLinkListBehavior() { super("ul", "utrecht-link-list"); addHeaderItem(CSS); From cb7bfbd0cae008a580999bba0f96b8812ffc4482 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 16:12:53 +0100 Subject: [PATCH 71/75] Set the markupId using wicket api Otherwise wicket won't function in a correct way in some cases and a warning is logged. --- .../utrecht/UtrechtFormFieldCheckbox.java | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java index fe87be3f..01f481a3 100644 --- a/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java +++ b/wicket/components-wicket/src/main/java/nl/rotterdam/design_system/wicket/components/form_field_checkbox/utrecht/UtrechtFormFieldCheckbox.java @@ -1,7 +1,6 @@ package nl.rotterdam.design_system.wicket.components.form_field_checkbox.utrecht; import css.HTMLUtil; -import java.util.UUID; import nl.rotterdam.design_system.wicket.components.checkbox.utrecht.UtrechtCheckboxBehavior; import nl.rotterdam.design_system.wicket.components.form_field.utrecht.UtrechtFormFieldBehavior; import nl.rotterdam.design_system.wicket.components.form_field_description.utrecht.UtrechtFormFieldDescriptionBehavior; @@ -14,6 +13,8 @@ import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; +import java.util.UUID; + public class UtrechtFormFieldCheckbox extends Panel { private static final long serialVersionUID = 1L; @@ -138,7 +139,12 @@ protected void onComponentTag(ComponentTag tag) { @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); - tag.put("id", descriptionId); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + setMarkupId(descriptionId); } @Override @@ -151,7 +157,12 @@ public boolean isVisible() { @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); - tag.put("id", errorMessageId); + } + + @Override + protected void onInitialize() { + super.onInitialize(); + UtrechtFormFieldCheckbox.this.setMarkupId(errorMessageId); } @Override @@ -179,7 +190,6 @@ protected boolean isRequired() { @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); - tag.put("id", fieldId); tag.put( "class", HTMLUtil.className( @@ -190,6 +200,12 @@ protected void onComponentTag(ComponentTag tag) { ); } + @Override + protected void onInitialize() { + super.onInitialize(); + setMarkupId(fieldId); + } + public UtrechtFormFieldCheckbox setRequired(boolean required) { checkbox.setRequired(required); return this; From c8813997b6256d1dadebd9e54b550e8cac5595a0 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 16:19:45 +0100 Subject: [PATCH 72/75] Add checkbox css to java world --- pnpm-lock.yaml | 256 ++------------------------ wicket/components-wicket/package.json | 1 + 2 files changed, 14 insertions(+), 243 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5038383a..d9290a0c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -617,6 +617,9 @@ importers: '@utrecht/button-group-css': specifier: 1.4.0 version: 1.4.0 + '@utrecht/checkbox-css': + specifier: 1.5.0 + version: 1.5.0 '@utrecht/code-block-css': specifier: 1.4.0 version: 1.4.0 @@ -1528,204 +1531,102 @@ packages: '@dual-bundle/import-meta-resolve@4.1.0': resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.24.2': resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.24.2': resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.24.2': resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.24.2': resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.24.2': resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.24.2': resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.24.2': resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.24.2': resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.24.2': resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.24.2': resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.24.2': resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.24.2': resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.24.2': resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.24.2': resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.24.2': resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.24.2': resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.24.2': resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} engines: {node: '>=18'} @@ -1738,12 +1639,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.24.2': resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} engines: {node: '>=18'} @@ -1756,60 +1651,30 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.24.2': resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.24.2': resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.24.2': resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.24.2': resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.24.2': resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} engines: {node: '>=18'} @@ -2909,6 +2774,9 @@ packages: react: '18' react-dom: '18' + '@utrecht/checkbox-css@1.5.0': + resolution: {integrity: sha512-b+2BFQ/H2scrk5XyKcz13ZsTWDjdmWi00jydagfJ6aH4p6pMZLa7IU3msXkmL4tkZheGUzIDu0w9u4DDl0g1VA==} + '@utrecht/checkbox-react@1.0.5': resolution: {integrity: sha512-LfQw2mGUvS7qH1aohHYKsndcwiH9JyxygvS9A1iA+I9VIDZQRO6G1gC9yOd9j8wdl6A5/I+XfJGx3usN5EnDOQ==} peerDependencies: @@ -4266,11 +4134,6 @@ packages: peerDependencies: esbuild: '>=0.12 <1' - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - esbuild@0.24.2: resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} engines: {node: '>=18'} @@ -9147,147 +9010,78 @@ snapshots: '@dual-bundle/import-meta-resolve@4.1.0': {} - '@esbuild/aix-ppc64@0.21.5': - optional: true - '@esbuild/aix-ppc64@0.24.2': optional: true - '@esbuild/android-arm64@0.21.5': - optional: true - '@esbuild/android-arm64@0.24.2': optional: true - '@esbuild/android-arm@0.21.5': - optional: true - '@esbuild/android-arm@0.24.2': optional: true - '@esbuild/android-x64@0.21.5': - optional: true - '@esbuild/android-x64@0.24.2': optional: true - '@esbuild/darwin-arm64@0.21.5': - optional: true - '@esbuild/darwin-arm64@0.24.2': optional: true - '@esbuild/darwin-x64@0.21.5': - optional: true - '@esbuild/darwin-x64@0.24.2': optional: true - '@esbuild/freebsd-arm64@0.21.5': - optional: true - '@esbuild/freebsd-arm64@0.24.2': optional: true - '@esbuild/freebsd-x64@0.21.5': - optional: true - '@esbuild/freebsd-x64@0.24.2': optional: true - '@esbuild/linux-arm64@0.21.5': - optional: true - '@esbuild/linux-arm64@0.24.2': optional: true - '@esbuild/linux-arm@0.21.5': - optional: true - '@esbuild/linux-arm@0.24.2': optional: true - '@esbuild/linux-ia32@0.21.5': - optional: true - '@esbuild/linux-ia32@0.24.2': optional: true - '@esbuild/linux-loong64@0.21.5': - optional: true - '@esbuild/linux-loong64@0.24.2': optional: true - '@esbuild/linux-mips64el@0.21.5': - optional: true - '@esbuild/linux-mips64el@0.24.2': optional: true - '@esbuild/linux-ppc64@0.21.5': - optional: true - '@esbuild/linux-ppc64@0.24.2': optional: true - '@esbuild/linux-riscv64@0.21.5': - optional: true - '@esbuild/linux-riscv64@0.24.2': optional: true - '@esbuild/linux-s390x@0.21.5': - optional: true - '@esbuild/linux-s390x@0.24.2': optional: true - '@esbuild/linux-x64@0.21.5': - optional: true - '@esbuild/linux-x64@0.24.2': optional: true '@esbuild/netbsd-arm64@0.24.2': optional: true - '@esbuild/netbsd-x64@0.21.5': - optional: true - '@esbuild/netbsd-x64@0.24.2': optional: true '@esbuild/openbsd-arm64@0.24.2': optional: true - '@esbuild/openbsd-x64@0.21.5': - optional: true - '@esbuild/openbsd-x64@0.24.2': optional: true - '@esbuild/sunos-x64@0.21.5': - optional: true - '@esbuild/sunos-x64@0.24.2': optional: true - '@esbuild/win32-arm64@0.21.5': - optional: true - '@esbuild/win32-arm64@0.24.2': optional: true - '@esbuild/win32-ia32@0.21.5': - optional: true - '@esbuild/win32-ia32@0.24.2': optional: true - '@esbuild/win32-x64@0.21.5': - optional: true - '@esbuild/win32-x64@0.24.2': optional: true @@ -10056,12 +9850,12 @@ snapshots: '@storybook/csf': 0.1.11 better-opn: 3.0.2 browser-assert: 1.2.1 - esbuild: 0.21.5 - esbuild-register: 3.5.0(esbuild@0.21.5) + esbuild: 0.24.2 + esbuild-register: 3.5.0(esbuild@0.24.2) jsdoc-type-pratt-parser: 4.1.0 process: 0.11.10 recast: 0.23.6 - semver: 7.6.2 + semver: 7.6.3 util: 0.12.5 ws: 8.13.0 optionalDependencies: @@ -10572,6 +10366,8 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@utrecht/checkbox-css@1.5.0': {} + '@utrecht/checkbox-react@1.0.5(@babel/runtime@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 @@ -12171,39 +11967,13 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - esbuild-register@3.5.0(esbuild@0.21.5): + esbuild-register@3.5.0(esbuild@0.24.2): dependencies: debug: 4.4.0 - esbuild: 0.21.5 + esbuild: 0.24.2 transitivePeerDependencies: - supports-color - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - esbuild@0.24.2: optionalDependencies: '@esbuild/aix-ppc64': 0.24.2 diff --git a/wicket/components-wicket/package.json b/wicket/components-wicket/package.json index d8633b39..6f546098 100644 --- a/wicket/components-wicket/package.json +++ b/wicket/components-wicket/package.json @@ -31,6 +31,7 @@ "@utrecht/button-group-css": "1.4.0", "@utrecht/code-block-css": "1.4.0", "@utrecht/column-layout-css": "1.5.0", + "@utrecht/checkbox-css": "1.5.0", "@utrecht/custom-checkbox-css": "1.1.1", "@utrecht/data-badge-css": "1.0.0", "@utrecht/form-field-css": "1.5.0", From 7f8dc7f1ad0c2288de8585aad77804d4fa525a53 Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 16:27:20 +0100 Subject: [PATCH 73/75] Add checkbox css to java world --- .../SingleSignOnLoginFormPanel.java | 15 ++++++++++++--- .../sso_login_page/SingleSignOnLoginPage.html | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginFormPanel.java b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginFormPanel.java index 8cd49729..3064b688 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginFormPanel.java +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginFormPanel.java @@ -3,7 +3,10 @@ import nl.rotterdam.design_system.wicket.components.button.utrecht.UtrechtButton; import nl.rotterdam.design_system.wicket.components.button_group.utrecht.UtrechtButtonGroupBorder; import nl.rotterdam.design_system.wicket.components.form_field_checkbox.utrecht.UtrechtFormFieldCheckbox; -import org.apache.wicket.markup.html.form.*; +import org.apache.wicket.markup.html.form.CheckBox; +import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.markup.html.form.PasswordTextField; +import org.apache.wicket.markup.html.form.RequiredTextField; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.Model; @@ -42,14 +45,20 @@ protected void onInitialize() { actionGroup.add(new UtrechtButton("submit")); } + @Override + protected void onError() { + super.onError(); + error("On error called. Only possible in classic browsers who don't support 'required' attribute."); + } + @Override protected void onSubmit() { + super.onSubmit(); + info("Submitted!"); System.out.println("Received username: " + username.getObject()); System.out.println("Received rememberMe: " + rememberMe.getObject()); - - super.onSubmit(); } } ); diff --git a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginPage.html b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginPage.html index 0a72f120..8aeed400 100644 --- a/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginPage.html +++ b/wicket/docs-wicket/src/main/java/nl/rotterdam/wicket/docs/sso_login_page/SingleSignOnLoginPage.html @@ -1,5 +1,5 @@
      -
      +
      From 855319805b46f0bcb27f8f50cedfafae55728d3b Mon Sep 17 00:00:00 2001 From: Kees van Dieren Date: Wed, 18 Dec 2024 16:29:57 +0100 Subject: [PATCH 74/75] preserve_data, hyphen not allowed in java packages --- wicket/components-wicket/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wicket/components-wicket/pom.xml b/wicket/components-wicket/pom.xml index b27d85b6..506f54e2 100644 --- a/wicket/components-wicket/pom.xml +++ b/wicket/components-wicket/pom.xml @@ -342,7 +342,7 @@ @utrecht/preserve-data-css/dist/*.css - nl/rotterdam/design_system/wicket/components/preserve-data/utrecht + nl/rotterdam/design_system/wicket/components/preserve_data/utrecht false @@ -388,4 +388,4 @@ - \ No newline at end of file + From 05253575cba26719134b3445cfd2eb17469c8289 Mon Sep 17 00:00:00 2001 From: Robbert Broersma Date: Tue, 31 Dec 2024 20:04:48 +0100 Subject: [PATCH 75/75] docs: pretty titles for Apache Wicket in Storybook --- .../GenerateMarkdownAndStorybookExamples.java | 90 ++++++++++++++----- ...arkdownDocumentationExamplesGenerator.java | 38 ++++---- 2 files changed, 88 insertions(+), 40 deletions(-) diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java index 8deb7e78..2699d945 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/GenerateMarkdownAndStorybookExamples.java @@ -72,12 +72,16 @@ public class GenerateMarkdownAndStorybookExamples { @Test void generateAlertComponent() { - new MarkdownDocumentationExamplesGenerator(AlertExamplesPanel.class, UtrechtAlert.class, "alert").generate(); + new MarkdownDocumentationExamplesGenerator( + AlertExamplesPanel.class, + UtrechtAlert.class, + "alert", + "Alert" + ).generate(); } @Test void generateBadgeListComponent() { - tester.startComponentInPage(BadgeListExamplesPanel.class); String renderedHtml = tester.getLastResponseAsString(); @@ -85,13 +89,19 @@ void generateBadgeListComponent() { BadgeListExamplesPanel.class, UtrechtBadgeListBorder.class, "badge-list", + "Badge List", renderedHtml ).generate(); } @Test void generateBodyComponent() { - new MarkdownDocumentationExamplesGenerator(BodyExamplesPanel.class, BodyExamplesPanel.class, "body").generate(); + new MarkdownDocumentationExamplesGenerator( + BodyExamplesPanel.class, + BodyExamplesPanel.class, + "body", + "Body" + ).generate(); } @Test @@ -99,7 +109,9 @@ void generateButtonGroupComponent() { new MarkdownDocumentationExamplesGenerator( ButtonGroupExamplesPanel.class, UtrechtButtonGroupBorder.class, - "button-group").generate(); + "button-group", + "Button Group" + ).generate(); } @Test @@ -107,7 +119,8 @@ void generateCodeBlockComponent() { new MarkdownDocumentationExamplesGenerator( CodeBlockExamplesPanel.class, UtrechtCodeBlock.class, - "code-block" + "code-block", + "Code Block" ).generate(); } @@ -116,7 +129,8 @@ void generateColumnLayoutComponent() { new MarkdownDocumentationExamplesGenerator( ColumnLayoutExamplesPanel.class, UtrechtColumnLayoutBorder.class, - "column-layout" + "column-layout", + "Column Layout" ).generate(); } @@ -125,7 +139,8 @@ void generateFormFieldCheckboxComponent() { new MarkdownDocumentationExamplesGenerator( FormFieldCheckboxExamplesPanel.class, UtrechtFormFieldCheckbox.class, - "form-field-checkbox" + "form-field-checkbox", + "Form Field Checkbox" ).generate(); } @@ -134,13 +149,13 @@ void generateFormFieldLabelComponent() { new MarkdownDocumentationExamplesGenerator( FormFieldLabelExamplesPanel.class, UtrechtFormLabel.class, - "form-field-label" + "form-field-label", + "Form Field Label" ).generate(); } @Test void generateHeadingComponent() { - tester.startComponentInPage(HeadingExamplesPanel.class); String renderedHtml = tester.getLastResponseAsString(); @@ -148,6 +163,7 @@ void generateHeadingComponent() { HeadingExamplesPanel.class, UtrechtHeading.class, "heading", + "Heading", renderedHtml ).generate(); } @@ -157,7 +173,9 @@ void generateHeadingGroupComponent() { new MarkdownDocumentationExamplesGenerator( HeadingGroupExamplesPanel.class, UtrechtHeadingGroupBorder.class, - "heading-group").generate(); + "heading-group", + "Heading Group" + ).generate(); } @Test @@ -165,7 +183,9 @@ void generateHtmlContentComponent() { new MarkdownDocumentationExamplesGenerator( HtmlContentExamplesPanel.class, UtrechtHtmlContentBorder.class, - "html-content").generate(); + "html-content", + "HTML Content" + ).generate(); } @Test @@ -173,7 +193,9 @@ void generateRotterdamLogoImage() { new MarkdownDocumentationExamplesGenerator( RotterdamLogoImageExamplesPanel.class, RotterdamLogoImage.class, - "rotterdam-logo-image").generate(); + "rotterdam-logo-image", + "Rotterdam Logo Image" + ).generate(); } @Test @@ -181,7 +203,9 @@ void generateUtrechtLogo() { new MarkdownDocumentationExamplesGenerator( UtrechtLogoExamplesPanel.class, UtrechtLogoBorder.class, - "utrecht-logo").generate(); + "utrecht-logo", + "Logo" + ).generate(); } @Test @@ -189,7 +213,9 @@ void generateUtrechtIcon() { new MarkdownDocumentationExamplesGenerator( IconExamplesPanel.class, UtrechtIconBorder.class, - "utrecht-icon").generate(); + "utrecht-icon", + "Icon" + ).generate(); } @Test @@ -197,7 +223,9 @@ void generateUtrechtNumberBadge() { new MarkdownDocumentationExamplesGenerator( UtrechtNumberBadgeExamplesPanel.class, UtrechtNumberBadge.class, - "utrecht-number-badge").generate(); + "utrecht-number-badge", + "Number Badge" + ).generate(); } @Test @@ -205,7 +233,9 @@ void generateUtrechtPageBody() { new MarkdownDocumentationExamplesGenerator( UtrechtPageBodyExamplesPanel.class, UtrechtPageBodyBorder.class, - "utrecht-page-body").generate(); + "utrecht-page-body", + "Page Body" + ).generate(); } @Test @@ -213,7 +243,9 @@ void generateUtrechtPageFooter() { new MarkdownDocumentationExamplesGenerator( UtrechtPageFooterExamplesPanel.class, UtrechtPageFooterBorder.class, - "utrecht-page-footer").generate(); + "utrecht-page-footer", + "Page Footer" + ).generate(); } @Test @@ -221,7 +253,9 @@ void generateUtrechtPageLayout() { new MarkdownDocumentationExamplesGenerator( UtrechtPageLayoutExamplesPanel.class, UtrechtPageLayoutBorder.class, - "utrecht-page-layout").generate(); + "utrecht-page-layout", + "Page Layout" + ).generate(); } @Test @@ -229,7 +263,9 @@ void generateUtrechtPreserveData() { new MarkdownDocumentationExamplesGenerator( UtrechtPreserveDataExamplesPanel.class, UtrechtPreserveDataLabel.class, - "utrecht-preserve-data").generate(); + "utrecht-preserve-data", + "Preserve Data" + ).generate(); } @Test @@ -237,7 +273,9 @@ void generateUtrechtRoot() { new MarkdownDocumentationExamplesGenerator( UtrechtRootExamplesPanel.class, UtrechtRootBorder.class, - "utrecht-root").generate(); + "utrecht-root", + "Root" + ).generate(); } @Test @@ -245,7 +283,9 @@ void generateUtrechtSeparator() { new MarkdownDocumentationExamplesGenerator( UtrechtSeparatorExamplesPanel.class, UtrechtSeparator.class, - "utrecht-separator").generate(); + "utrecht-separator", + "Separator" + ).generate(); } @Test @@ -253,7 +293,9 @@ void generateUtrechtOrderedList() { new MarkdownDocumentationExamplesGenerator( UtrechtOrderedListExamplesPanel.class, UtrechtOrderedList.class, - "utrecht-ordered-list").generate(); + "utrecht-ordered-list", + "Ordered List" + ).generate(); } @Test @@ -261,7 +303,9 @@ void generateUtrechtUnorderedList() { new MarkdownDocumentationExamplesGenerator( UtrechtUnorderedListExamplesPanel.class, UtrechtUnorderedList.class, - "utrecht-unordered-list").generate(); + "utrecht-unordered-list", + "Unordered List" + ).generate(); } @AfterEach diff --git a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java index 7998280e..1345660b 100644 --- a/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java +++ b/wicket/docs-wicket/src/test/java/nl/rotterdam/wicket/nl_design/docs/storybook_generator/MarkdownDocumentationExamplesGenerator.java @@ -1,15 +1,11 @@ package nl.rotterdam.wicket.nl_design.docs.storybook_generator; +import static nl.rotterdam.wicket.nl_design.docs.ModuleRootResolver.resolveModuleRootPath; + import com.github.javaparser.JavaParser; import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.body.MethodDeclaration; import com.vladsch.flexmark.html2md.converter.FlexmarkHtmlConverter; -import nl.rotterdam.wicket.docs.ComponentExample; -import org.apache.wicket.Component; -import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.util.string.Strings; -import org.junit.platform.commons.support.ModifierSupport; - import java.io.File; import java.io.IOException; import java.lang.reflect.Method; @@ -18,8 +14,11 @@ import java.util.Comparator; import java.util.List; import java.util.stream.IntStream; - -import static nl.rotterdam.wicket.nl_design.docs.ModuleRootResolver.resolveModuleRootPath; +import nl.rotterdam.wicket.docs.ComponentExample; +import org.apache.wicket.Component; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.util.string.Strings; +import org.junit.platform.commons.support.ModifierSupport; public class MarkdownDocumentationExamplesGenerator { @@ -28,6 +27,7 @@ public class MarkdownDocumentationExamplesGenerator { private final File markdownStorybookFile; private final Panel headingPanel; private final String componentName; + private final String componentTitle; private final String componentNameCapitalized; private final HtmlDocumentationExtractor documentationExtractor; private final String gitHubExamplePath; @@ -39,9 +39,12 @@ public MarkdownDocumentationExamplesGenerator( When you have a Behavior and a component, put them in the same package. */ Class componentClass, - String componentName) { - this(examplePanelClass, componentClass, componentName, null); + String componentName, + String componentTitle + ) { + this(examplePanelClass, componentClass, componentName, componentTitle, null); } + public MarkdownDocumentationExamplesGenerator( Class examplePanelClass, /* @@ -49,8 +52,11 @@ public MarkdownDocumentationExamplesGenerator( */ Class componentClass, String componentName, - String renderedHtml) { + String componentTitle, + String renderedHtml + ) { this.componentName = componentName; + this.componentTitle = componentTitle; this.componentNameCapitalized = Strings.capitalize(componentName); String moduleRootPath = resolveModuleRootPath(GenerateMarkdownAndStorybookExamples.class).getAbsolutePath(); @@ -63,11 +69,9 @@ public MarkdownDocumentationExamplesGenerator( String exampleFilenameWithoutExtension = basePathInDocs + examplePanelClass.getSimpleName(); exampleJavaFile = new File(exampleFilenameWithoutExtension + ".java"); - documentationExtractor = - renderedHtml != null - ? new HtmlDocumentationExtractor(renderedHtml) - : new HtmlDocumentationExtractor(new File(exampleFilenameWithoutExtension + ".html").toPath() - ); + documentationExtractor = renderedHtml != null + ? new HtmlDocumentationExtractor(renderedHtml) + : new HtmlDocumentationExtractor(new File(exampleFilenameWithoutExtension + ".html").toPath()); markdownReadmeFile = new File(moduleRootPath + "/stories/" + componentName + ".md"); markdownStorybookFile = new File(moduleRootPath + "/stories/" + componentName + ".mdx"); @@ -156,7 +160,7 @@ private void writeStoryBookFile() throws IOException { {markdown} """, componentName, - Strings.capitalize(componentName) + componentTitle ); Files.write(markdownStorybookFile.toPath(), content.getBytes());