You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by andrew goh <go...@yahoo.com.INVALID> on 2025/04/16 09:25:10 UTC

An Apache Wicket reusable Data List

While I'm learning the ropes of Apache Wicket currently and I'm 
exploring making reusable components.

I tried making An Apache Wicket reusable Data List

This component displays a list of JavaBeans as a html table

DataListPanel takes as input in the constructor :

the wicket:id of the component
itemclass The java class of the JavaBean
List items the list of JavaBeans

https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e

This version is pretty rough as I'm trying out a 'proof of concept' test.
it actually works, rendering the list of JavaBeans as a html table.

I used an often 'neglected' java package java.beans, technology Javabeans
https://en.wikipedia.org/wiki/JavaBeans
https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
practically as 'old' as Java itself.

It is probably quite interesting as many database interfaces basically 
use JavaBeans to represent the records and as well used in forms.
This practically makes the task of displaying records in a (html) table 
done using a reusable component.

It is likely possible to implement similar setup say with 
spring-framework, spring-boot and templates, but that Apache Wicket 
makes the codes and templates very concise.
The magic is implemented by the repeating views
https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component
and java.beans itself which I get the 'field' (beaninfo) names and java 
reflection retrieval.

I think it is likely feasible to implement such reusable pages as form 
components too, i.e. give a form a JavaBean it renders it and 
handles/process it with database CRUD and all.

Cheers,
   Andrew



Re: An Apache Wicket reusable Data List

Posted by andrew goh <go...@yahoo.com.INVALID>.
It turns out RepeatingView component works in Forms as well

https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component

And I've been able to make a reusable form given a java bean and its 
customized BeanInfo class.
The BeanInfo serves as 'configuration metadata' to configure the 
rendering and setup of the form and fields.


On 16/04/2025 17:25, andrew goh wrote:
> While I'm learning the ropes of Apache Wicket currently and I'm 
> exploring making reusable components.
>
> I tried making An Apache Wicket reusable Data List
>
> This component displays a list of JavaBeans as a html table
>
> DataListPanel takes as input in the constructor :
>
> the wicket:id of the component
> itemclass The java class of the JavaBean
> List items the list of JavaBeans
>
> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
>
> This version is pretty rough as I'm trying out a 'proof of concept' test.
> it actually works, rendering the list of JavaBeans as a html table.
>
> I used an often 'neglected' java package java.beans, technology Javabeans
> https://en.wikipedia.org/wiki/JavaBeans
> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/ 
>
> practically as 'old' as Java itself.
>
> It is probably quite interesting as many database interfaces basically 
> use JavaBeans to represent the records and as well used in forms.
> This practically makes the task of displaying records in a (html) 
> table done using a reusable component.
>
> It is likely possible to implement similar setup say with 
> spring-framework, spring-boot and templates, but that Apache Wicket 
> makes the codes and templates very concise.
> The magic is implemented by the repeating views
> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component 
>
> and java.beans itself which I get the 'field' (beaninfo) names and 
> java reflection retrieval.
>
> I think it is likely feasible to implement such reusable pages as form 
> components too, i.e. give a form a JavaBean it renders it and 
> handles/process it with database CRUD and all.
>
> Cheers,
>   Andrew
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: An Apache Wicket reusable Data List

Posted by andrew goh <go...@yahoo.com.INVALID>.
Thanks, Rob Audenaerde

I'd check out ISortableDataProvider and DataTable.

I did this 'experiment' as I'm using handcrafted Bootstrap 
https://getbootstrap.com/ based pages.
And in part coming from spring-boot and Thymeleaf templates, I'm 
starting to have a lot of HTMLs in the templates and rather often 
repetitive blocks.
Hence, creating these components in part to keep the 'look and feel' 
consistent with 'Bootstrap' style of pages and that the Apache Wicket 
components
abstracts away the verbose HTMLs making them far more concise vs 
littering them in templates.

I think in spring-boot + Thymeleaf, what is normally done is to build a 
'dialect' and abstract those components away. But that without doing so, 
HTML codes repeat and proliferate, e.g. for the likes of forms, tables etc.

I'd nevertheless try out ISortableDataProvider and DataTable. to see how 
they works and possibly use them where they are appropriate.

On 16/04/2025 19:23, Rob Audenaerde wrote:
> I'm also not actively working with Wicket anymore (a shame), but we made
> extensive use of the `ISortableDataProvider` and `DataTable`. It should not
> be to hard to create a `BeanSortableDataProvider<T>` and a class that
> generated the `AbstractColumn<T, S>` from the beans?
>
> On Wed, Apr 16, 2025 at 12:56 PM andrew goh <go...@yahoo.com.invalid>
> wrote:
>
>> I think some of these stuff may be good to be added in
>> https://wicketstuff.org/
>>
>> But for now this is very rough and 'only about works'.
>>
>> Back in the 'early' days of GUI development, there has been lots of
>> re-usable GUI data components, e.g. the old Powerbuilder data windows
>>
>>
>> https://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00044_0250/html/dwprgnet/CHDHFGCJ.htm
>>
>> For some reasons, that art is 'lost' and it became 'scripting in
>> templates' jsp/etc, yup there is MVC and all, but that 'scripting in
>> templates' seemed to become an 'accepted norm' for web development. It
>> starts to get on my nerves when I realised that I'm copying lots of
>> (HTML+script) codes between forms, the HTML is verbose often much more
>> so than the java codes and error prone, missing tags / closures, they
>> are very state dependent (e.g. after you 'display' an error, forget to
>> 'hide' it etc) upon submit etc.
>> Hence, I looked elsewhere for a solution and I stumbled into Apache Wicket.
>>
>> Apache Wicket and its components based design alleviates a lot of that.
>> And I think it'd be good to explore further e.g. like what I'm trying
>> out currently give the forms or pages a Java Bean and the components
>> handle it fully. It can make database web apps a lot less verbose to write
>>
>> Cheers,
>>     Andrew
>>
>> On 16/04/2025 18:26, Jonathan Locke wrote:
>>> Hi Andrew,
>>>
>>> Interesting idea. I’ve been mostly away from Wicket for about 10 years
>> as a committer, but I’m drawn back to the project again by some things I’d
>> like to see done that would provide more automation like this and also
>> improve support for CSS and JavaScript and more concise syntax for fluency
>> in building UIs (I know this is one of Martian’s wishlist items). I also
>> have some curiosity about whether Wicket could have core features that
>> might make integrations with client-side frameworks like React and Angular
>> easy. The pipe dream there is that you might build a Wicket app where there
>> are some richer client side components you’d like to work with in a small
>> portion of the site.
>>> I have a client right now that I’m working with on a system for viewing
>> and editing models automatically, kind of like your bean table project, but
>> for individual beans.
>>> I think you’re thinking along the right lines in general. My client and
>> I would ideally like to find one or two other companies with a financial
>> interest in conquering some of these complexities. I think for some very
>> complex apps, what we’re working on could yield significant cost savings.
>> It would be a further good if our project were sufficiently useful to other
>> parties that it would make a good, solid addition to wicket core or wicket
>> extensions.
>>> If we can find some other interested parties, I might be able to work on
>> these problems full time. Additionally, we would have more perspectives and
>> possibly some assistance with implementing some of these design I am
>> flushing out now.
>>> Let me know if you know of any interested parties and please keep us
>> posted on your bean table project. I’m interested in how that goes and what
>> design you come up with.
>>> Best,
>>>
>>> Jon
>>>
>>> Sent from my iPhone
>>>
>>>> On Apr 16, 2025, at 3:26 AM, andrew goh <go...@yahoo.com.invalid>
>> wrote:
>>>> While I'm learning the ropes of Apache Wicket currently and I'm
>> exploring making reusable components.
>>>> I tried making An Apache Wicket reusable Data List
>>>>
>>>> This component displays a list of JavaBeans as a html table
>>>>
>>>> DataListPanel takes as input in the constructor :
>>>>
>>>> the wicket:id of the component
>>>> itemclass The java class of the JavaBean
>>>> List items the list of JavaBeans
>>>>
>>>> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
>>>>
>>>> This version is pretty rough as I'm trying out a 'proof of concept'
>> test.
>>>> it actually works, rendering the list of JavaBeans as a html table.
>>>>
>>>> I used an often 'neglected' java package java.beans, technology
>> Javabeans
>>>> https://en.wikipedia.org/wiki/JavaBeans
>>>>
>> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
>>>> practically as 'old' as Java itself.
>>>>
>>>> It is probably quite interesting as many database interfaces basically
>> use JavaBeans to represent the records and as well used in forms.
>>>> This practically makes the task of displaying records in a (html) table
>> done using a reusable component.
>>>> It is likely possible to implement similar setup say with
>> spring-framework, spring-boot and templates, but that Apache Wicket makes
>> the codes and templates very concise.
>>>> The magic is implemented by the repeating views
>>>>
>> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component
>>>> and java.beans itself which I get the 'field' (beaninfo) names and java
>> reflection retrieval.
>>>> I think it is likely feasible to implement such reusable pages as form
>> components too, i.e. give a form a JavaBean it renders it and
>> handles/process it with database CRUD and all.
>>>> Cheers,
>>>>     Andrew
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>

Re: An Apache Wicket reusable Data List

Posted by andrew goh <go...@yahoo.com.INVALID>.
Now for the downsides and gotchas:

The use of javabeans depends on java.beans.Introspector
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/beans/Introspector.html
among the catches are:
- the fields / properties returned are not in source code order 
(accordingly, there isn't a formal/proper way to get it in that order)
- fields like "class" (shown in the prior example) are retrieved as 
properties

hence a 'solution' is needed. From the javadocs for Introspector above:
For each class "Foo", explicit information may be available if there 
exists a corresponding "FooBeanInfo" class that provides a non-null 
value when queried for the information. We first look for the BeanInfo 
class by taking the full package-qualified name of the target bean class 
and appending "BeanInfo" to form a new class name. If this fails, then 
we take the final classname component of this name, and look for that 
class in each of the packages specified in the BeanInfo package search path.

Thus for a class such as "sun.xyz.OurButton" we would first look for a 
BeanInfo class called "sun.xyz.OurButtonBeanInfo" and if that failed 
we'd look in each package in the BeanInfo search path for an 
OurButtonBeanInfo class. With the default search path, this would mean 
looking for "sun.beans.infos.OurButtonBeanInfo".
---
This means that the fields to be displayed can be 'configured' in the 
Beaninfo class, e.g. in the getPropertyDescriptors() method.
I've tested that and it causes those fields specified in the BeanInfo 
class's getPropertyDescriptors() to be returned.
However, it is still not in source code order.

Hence, I hacked the Beaninfo class added a method e.g. getFieldOrder() 
which would need to list the fields in the appropriate order in a 
String[] array.
Then that I sorted the properties according to it.

Well, this works and the HTML table display appropriately.

Unfortunately, this practically means that the 'configuration' shifted 
from the templates into the BeanInfo class, practically.
It is a 'good and bad' thing, BeanInfo class and field ordering can be 
shared by several components processing it. (a slight improvement over 
templates)
But that it means maintaining a separate BeanInfo class for each Bean class.

On 16/04/2025 21:38, andrew goh wrote:
> Taking in context:
> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
> The templates:
> DataListPanel.html
> <wicket:panel>
>     <table id="dataitems" class="table table-striped">
>         <thead class="table-secondary">
>             <th class="col-md-1" wicket:id="hdrRepeater"></th>
>         </thead>
>         <tbody>
>             <wicket:container 
> wicket:id="dataRepeater"></wicket:container>
>         </tbody>
>     </table>
> </wicket:panel>
> DataRowPanel.html
> <wicket:panel>
>     <tr>
>         <td wicket:id="dataField" class="col-md-1"></td>
>     </tr>
> </wicket:panel>
>
> And in the demo app where it is implemented
>
> https://github.com/ag88/wickettest1
>
> expands to:
>     <table id="dataitems" class="table table-striped">
>         <thead class="table-secondary">
>             <th class="col-md-1">class</th><th 
> class="col-md-1">firstname</th><th class="col-md-1">lastname</th>
>         </thead>
>         <tbody>
>     <tr>
>         <td class="col-md-1">class 
> com.wicketest.pages.DataListExample$Person</td><td 
> class="col-md-1">Smith</td><td class="col-md-1">John</td>
>     </tr>
>     <tr>
>         <td class="col-md-1">class 
> com.wicketest.pages.DataListExample$Person</td><td 
> class="col-md-1">Johnson</td><td class="col-md-1">Emily</td>
>     </tr>
> ...
>
>         </tbody>
>     </table>
>
> --------------
>
> Even if for that matter say that I specify each column (field) in the 
> template the template itself would be fairly verbose.
>
> Apache Wicket components practically reduced the templates to 'regular 
> expressions'
> <table>
> <thead> <th>*</th><thead>
> <tbody><tr><td>*</td></tr></tbody>
>
> plus the javabeans, it literally fills in those *, given the javabean, 
> generic, reusable.
>
> Yes, I think this design pattern made possible by Apache Wicket matters.
>
> On 16/04/2025 20:54, andrew goh wrote:
>> Thanks, Rob Audenaerde
>>
>> I'd check out ISortableDataProvider and DataTable.
>>
>> I did this 'experiment' as I'm using handcrafted Bootstrap 
>> https://getbootstrap.com/ based pages.
>> And in part coming from spring-boot and Thymeleaf templates, I'm 
>> starting to have a lot of HTMLs in the templates and rather often 
>> repetitive blocks.
>> Hence, creating these components in part to keep the 'look and feel' 
>> consistent with 'Bootstrap' style of pages and that the Apache Wicket 
>> components
>> abstracts away the verbose HTMLs making them far more concise vs 
>> littering them in templates.
>>
>> I think in spring-boot + Thymeleaf, what is normally done is to build 
>> a 'dialect' and abstract those components away. But that without 
>> doing so, HTML codes repeat and proliferate, e.g. for the likes of 
>> forms, tables etc.
>>
>> I'd nevertheless try out ISortableDataProvider and DataTable. to see 
>> how they works and possibly use them where they are appropriate.
>>
>> On 16/04/2025 19:23, Rob Audenaerde wrote:
>>> I'm also not actively working with Wicket anymore (a shame), but we 
>>> made
>>> extensive use of the `ISortableDataProvider` and `DataTable`. It 
>>> should not
>>> be to hard to create a `BeanSortableDataProvider<T>` and a class that
>>> generated the `AbstractColumn<T, S>` from the beans?
>>>
>>> On Wed, Apr 16, 2025 at 12:56 PM andrew goh 
>>> <go...@yahoo.com.invalid>
>>> wrote:
>>>
>>>> I think some of these stuff may be good to be added in
>>>> https://wicketstuff.org/
>>>>
>>>> But for now this is very rough and 'only about works'.
>>>>
>>>> Back in the 'early' days of GUI development, there has been lots of
>>>> re-usable GUI data components, e.g. the old Powerbuilder data windows
>>>>
>>>>
>>>> https://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00044_0250/html/dwprgnet/CHDHFGCJ.htm 
>>>>
>>>>
>>>> For some reasons, that art is 'lost' and it became 'scripting in
>>>> templates' jsp/etc, yup there is MVC and all, but that 'scripting in
>>>> templates' seemed to become an 'accepted norm' for web development. It
>>>> starts to get on my nerves when I realised that I'm copying lots of
>>>> (HTML+script) codes between forms, the HTML is verbose often much more
>>>> so than the java codes and error prone, missing tags / closures, they
>>>> are very state dependent (e.g. after you 'display' an error, forget to
>>>> 'hide' it etc) upon submit etc.
>>>> Hence, I looked elsewhere for a solution and I stumbled into Apache 
>>>> Wicket.
>>>>
>>>> Apache Wicket and its components based design alleviates a lot of 
>>>> that.
>>>> And I think it'd be good to explore further e.g. like what I'm trying
>>>> out currently give the forms or pages a Java Bean and the components
>>>> handle it fully. It can make database web apps a lot less verbose 
>>>> to write
>>>>
>>>> Cheers,
>>>> Andrew
>>>>
>>>> On 16/04/2025 18:26, Jonathan Locke wrote:
>>>>> Hi Andrew,
>>>>>
>>>>> Interesting idea. I’ve been mostly away from Wicket for about 10 
>>>>> years
>>>> as a committer, but I’m drawn back to the project again by some 
>>>> things I’d
>>>> like to see done that would provide more automation like this and also
>>>> improve support for CSS and JavaScript and more concise syntax for 
>>>> fluency
>>>> in building UIs (I know this is one of Martian’s wishlist items). I 
>>>> also
>>>> have some curiosity about whether Wicket could have core features that
>>>> might make integrations with client-side frameworks like React and 
>>>> Angular
>>>> easy. The pipe dream there is that you might build a Wicket app 
>>>> where there
>>>> are some richer client side components you’d like to work with in a 
>>>> small
>>>> portion of the site.
>>>>> I have a client right now that I’m working with on a system for 
>>>>> viewing
>>>> and editing models automatically, kind of like your bean table 
>>>> project, but
>>>> for individual beans.
>>>>> I think you’re thinking along the right lines in general. My 
>>>>> client and
>>>> I would ideally like to find one or two other companies with a 
>>>> financial
>>>> interest in conquering some of these complexities. I think for some 
>>>> very
>>>> complex apps, what we’re working on could yield significant cost 
>>>> savings.
>>>> It would be a further good if our project were sufficiently useful 
>>>> to other
>>>> parties that it would make a good, solid addition to wicket core or 
>>>> wicket
>>>> extensions.
>>>>> If we can find some other interested parties, I might be able to 
>>>>> work on
>>>> these problems full time. Additionally, we would have more 
>>>> perspectives and
>>>> possibly some assistance with implementing some of these design I am
>>>> flushing out now.
>>>>> Let me know if you know of any interested parties and please keep us
>>>> posted on your bean table project. I’m interested in how that goes 
>>>> and what
>>>> design you come up with.
>>>>> Best,
>>>>>
>>>>> Jon
>>>>>
>>>>> Sent from my iPhone
>>>>>
>>>>>> On Apr 16, 2025, at 3:26 AM, andrew goh 
>>>>>> <go...@yahoo.com.invalid>
>>>> wrote:
>>>>>> While I'm learning the ropes of Apache Wicket currently and I'm
>>>> exploring making reusable components.
>>>>>> I tried making An Apache Wicket reusable Data List
>>>>>>
>>>>>> This component displays a list of JavaBeans as a html table
>>>>>>
>>>>>> DataListPanel takes as input in the constructor :
>>>>>>
>>>>>> the wicket:id of the component
>>>>>> itemclass The java class of the JavaBean
>>>>>> List items the list of JavaBeans
>>>>>>
>>>>>> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
>>>>>>
>>>>>> This version is pretty rough as I'm trying out a 'proof of concept'
>>>> test.
>>>>>> it actually works, rendering the list of JavaBeans as a html table.
>>>>>>
>>>>>> I used an often 'neglected' java package java.beans, technology
>>>> Javabeans
>>>>>> https://en.wikipedia.org/wiki/JavaBeans
>>>>>>
>>>> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/ 
>>>>
>>>>>> practically as 'old' as Java itself.
>>>>>>
>>>>>> It is probably quite interesting as many database interfaces 
>>>>>> basically
>>>> use JavaBeans to represent the records and as well used in forms.
>>>>>> This practically makes the task of displaying records in a (html) 
>>>>>> table
>>>> done using a reusable component.
>>>>>> It is likely possible to implement similar setup say with
>>>> spring-framework, spring-boot and templates, but that Apache Wicket 
>>>> makes
>>>> the codes and templates very concise.
>>>>>> The magic is implemented by the repeating views
>>>>>>
>>>> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component 
>>>>
>>>>>> and java.beans itself which I get the 'field' (beaninfo) names 
>>>>>> and java
>>>> reflection retrieval.
>>>>>> I think it is likely feasible to implement such reusable pages as 
>>>>>> form
>>>> components too, i.e. give a form a JavaBean it renders it and
>>>> handles/process it with database CRUD and all.
>>>>>> Cheers,
>>>>>> Andrew
>>>>>>
>>>>>>
>>>>>>
>>>>>> --------------------------------------------------------------------- 
>>>>>>
>>>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>>>

Re: An Apache Wicket reusable Data List

Posted by andrew goh <go...@yahoo.com.INVALID>.
Now for the downsides and gotchas:

The use of javabeans depends on java.beans.Introspector
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/beans/Introspector.html
among the catches are:
- the fields / properties returned are not in source code order 
(accordingly, there isn't a formal/proper way to get it in that order)
- fields like "class" (shown in the prior example) are retrieved as 
properties

hence a 'solution' is needed. From the javadocs for Introspector above:
For each class "Foo", explicit information may be available if there 
exists a corresponding "FooBeanInfo" class that provides a non-null 
value when queried for the information. We first look for the BeanInfo 
class by taking the full package-qualified name of the target bean class 
and appending "BeanInfo" to form a new class name. If this fails, then 
we take the final classname component of this name, and look for that 
class in each of the packages specified in the BeanInfo package search path.

Thus for a class such as "sun.xyz.OurButton" we would first look for a 
BeanInfo class called "sun.xyz.OurButtonBeanInfo" and if that failed 
we'd look in each package in the BeanInfo search path for an 
OurButtonBeanInfo class. With the default search path, this would mean 
looking for "sun.beans.infos.OurButtonBeanInfo".
---
This means that the fields to be displayed can be 'configured' in the 
Beaninfo class, e.g. in the getPropertyDescriptors() method.
I've tested that and it causes those fields specified in the BeanInfo 
class's getPropertyDescriptors() to be returned.
However, it is still not in source code order.

Hence, I hacked the Beaninfo class added a method e.g. getFieldOrder() 
which would need to list the fields in the appropriate order in a 
String[] array.
Then that I sorted the properties according to it.

Well, this works and the HTML table display appropriately.

Unfortunately, this practically means that the 'configuration' shifted 
from the templates into the BeanInfo class, practically.
It is a 'good and bad' thing, BeanInfo class and field ordering can be 
shared by several components processing it. (a slight improvement over 
templates)
But that it means maintaining a separate BeanInfo class for each Bean class.

On 16/04/2025 21:38, andrew goh wrote:
> Taking in context:
> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
> The templates:
> DataListPanel.html
> <wicket:panel>
>     <table id="dataitems" class="table table-striped">
>         <thead class="table-secondary">
>             <th class="col-md-1" wicket:id="hdrRepeater"></th>
>         </thead>
>         <tbody>
>             <wicket:container 
> wicket:id="dataRepeater"></wicket:container>
>         </tbody>
>     </table>
> </wicket:panel>
> DataRowPanel.html
> <wicket:panel>
>     <tr>
>         <td wicket:id="dataField" class="col-md-1"></td>
>     </tr>
> </wicket:panel>
>
> And in the demo app where it is implemented
>
> https://github.com/ag88/wickettest1
>
> expands to:
>     <table id="dataitems" class="table table-striped">
>         <thead class="table-secondary">
>             <th class="col-md-1">class</th><th 
> class="col-md-1">firstname</th><th class="col-md-1">lastname</th>
>         </thead>
>         <tbody>
>     <tr>
>         <td class="col-md-1">class 
> com.wicketest.pages.DataListExample$Person</td><td 
> class="col-md-1">Smith</td><td class="col-md-1">John</td>
>     </tr>
>     <tr>
>         <td class="col-md-1">class 
> com.wicketest.pages.DataListExample$Person</td><td 
> class="col-md-1">Johnson</td><td class="col-md-1">Emily</td>
>     </tr>
> ...
>
>         </tbody>
>     </table>
>
> --------------
>
> Even if for that matter say that I specify each column (field) in the 
> template the template itself would be fairly verbose.
>
> Apache Wicket components practically reduced the templates to 'regular 
> expressions'
> <table>
> <thead> <th>*</th><thead>
> <tbody><tr><td>*</td></tr></tbody>
>
> plus the javabeans, it literally fills in those *, given the javabean, 
> generic, reusable.
>
> Yes, I think this design pattern made possible by Apache Wicket matters.
>
> On 16/04/2025 20:54, andrew goh wrote:
>> Thanks, Rob Audenaerde
>>
>> I'd check out ISortableDataProvider and DataTable.
>>
>> I did this 'experiment' as I'm using handcrafted Bootstrap 
>> https://getbootstrap.com/ based pages.
>> And in part coming from spring-boot and Thymeleaf templates, I'm 
>> starting to have a lot of HTMLs in the templates and rather often 
>> repetitive blocks.
>> Hence, creating these components in part to keep the 'look and feel' 
>> consistent with 'Bootstrap' style of pages and that the Apache Wicket 
>> components
>> abstracts away the verbose HTMLs making them far more concise vs 
>> littering them in templates.
>>
>> I think in spring-boot + Thymeleaf, what is normally done is to build 
>> a 'dialect' and abstract those components away. But that without 
>> doing so, HTML codes repeat and proliferate, e.g. for the likes of 
>> forms, tables etc.
>>
>> I'd nevertheless try out ISortableDataProvider and DataTable. to see 
>> how they works and possibly use them where they are appropriate.
>>
>> On 16/04/2025 19:23, Rob Audenaerde wrote:
>>> I'm also not actively working with Wicket anymore (a shame), but we 
>>> made
>>> extensive use of the `ISortableDataProvider` and `DataTable`. It 
>>> should not
>>> be to hard to create a `BeanSortableDataProvider<T>` and a class that
>>> generated the `AbstractColumn<T, S>` from the beans?
>>>
>>> On Wed, Apr 16, 2025 at 12:56 PM andrew goh 
>>> <go...@yahoo.com.invalid>
>>> wrote:
>>>
>>>> I think some of these stuff may be good to be added in
>>>> https://wicketstuff.org/
>>>>
>>>> But for now this is very rough and 'only about works'.
>>>>
>>>> Back in the 'early' days of GUI development, there has been lots of
>>>> re-usable GUI data components, e.g. the old Powerbuilder data windows
>>>>
>>>>
>>>> https://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00044_0250/html/dwprgnet/CHDHFGCJ.htm 
>>>>
>>>>
>>>> For some reasons, that art is 'lost' and it became 'scripting in
>>>> templates' jsp/etc, yup there is MVC and all, but that 'scripting in
>>>> templates' seemed to become an 'accepted norm' for web development. It
>>>> starts to get on my nerves when I realised that I'm copying lots of
>>>> (HTML+script) codes between forms, the HTML is verbose often much more
>>>> so than the java codes and error prone, missing tags / closures, they
>>>> are very state dependent (e.g. after you 'display' an error, forget to
>>>> 'hide' it etc) upon submit etc.
>>>> Hence, I looked elsewhere for a solution and I stumbled into Apache 
>>>> Wicket.
>>>>
>>>> Apache Wicket and its components based design alleviates a lot of 
>>>> that.
>>>> And I think it'd be good to explore further e.g. like what I'm trying
>>>> out currently give the forms or pages a Java Bean and the components
>>>> handle it fully. It can make database web apps a lot less verbose 
>>>> to write
>>>>
>>>> Cheers,
>>>> Andrew
>>>>
>>>> On 16/04/2025 18:26, Jonathan Locke wrote:
>>>>> Hi Andrew,
>>>>>
>>>>> Interesting idea. I’ve been mostly away from Wicket for about 10 
>>>>> years
>>>> as a committer, but I’m drawn back to the project again by some 
>>>> things I’d
>>>> like to see done that would provide more automation like this and also
>>>> improve support for CSS and JavaScript and more concise syntax for 
>>>> fluency
>>>> in building UIs (I know this is one of Martian’s wishlist items). I 
>>>> also
>>>> have some curiosity about whether Wicket could have core features that
>>>> might make integrations with client-side frameworks like React and 
>>>> Angular
>>>> easy. The pipe dream there is that you might build a Wicket app 
>>>> where there
>>>> are some richer client side components you’d like to work with in a 
>>>> small
>>>> portion of the site.
>>>>> I have a client right now that I’m working with on a system for 
>>>>> viewing
>>>> and editing models automatically, kind of like your bean table 
>>>> project, but
>>>> for individual beans.
>>>>> I think you’re thinking along the right lines in general. My 
>>>>> client and
>>>> I would ideally like to find one or two other companies with a 
>>>> financial
>>>> interest in conquering some of these complexities. I think for some 
>>>> very
>>>> complex apps, what we’re working on could yield significant cost 
>>>> savings.
>>>> It would be a further good if our project were sufficiently useful 
>>>> to other
>>>> parties that it would make a good, solid addition to wicket core or 
>>>> wicket
>>>> extensions.
>>>>> If we can find some other interested parties, I might be able to 
>>>>> work on
>>>> these problems full time. Additionally, we would have more 
>>>> perspectives and
>>>> possibly some assistance with implementing some of these design I am
>>>> flushing out now.
>>>>> Let me know if you know of any interested parties and please keep us
>>>> posted on your bean table project. I’m interested in how that goes 
>>>> and what
>>>> design you come up with.
>>>>> Best,
>>>>>
>>>>> Jon
>>>>>
>>>>> Sent from my iPhone
>>>>>
>>>>>> On Apr 16, 2025, at 3:26 AM, andrew goh 
>>>>>> <go...@yahoo.com.invalid>
>>>> wrote:
>>>>>> While I'm learning the ropes of Apache Wicket currently and I'm
>>>> exploring making reusable components.
>>>>>> I tried making An Apache Wicket reusable Data List
>>>>>>
>>>>>> This component displays a list of JavaBeans as a html table
>>>>>>
>>>>>> DataListPanel takes as input in the constructor :
>>>>>>
>>>>>> the wicket:id of the component
>>>>>> itemclass The java class of the JavaBean
>>>>>> List items the list of JavaBeans
>>>>>>
>>>>>> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
>>>>>>
>>>>>> This version is pretty rough as I'm trying out a 'proof of concept'
>>>> test.
>>>>>> it actually works, rendering the list of JavaBeans as a html table.
>>>>>>
>>>>>> I used an often 'neglected' java package java.beans, technology
>>>> Javabeans
>>>>>> https://en.wikipedia.org/wiki/JavaBeans
>>>>>>
>>>> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/ 
>>>>
>>>>>> practically as 'old' as Java itself.
>>>>>>
>>>>>> It is probably quite interesting as many database interfaces 
>>>>>> basically
>>>> use JavaBeans to represent the records and as well used in forms.
>>>>>> This practically makes the task of displaying records in a (html) 
>>>>>> table
>>>> done using a reusable component.
>>>>>> It is likely possible to implement similar setup say with
>>>> spring-framework, spring-boot and templates, but that Apache Wicket 
>>>> makes
>>>> the codes and templates very concise.
>>>>>> The magic is implemented by the repeating views
>>>>>>
>>>> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component 
>>>>
>>>>>> and java.beans itself which I get the 'field' (beaninfo) names 
>>>>>> and java
>>>> reflection retrieval.
>>>>>> I think it is likely feasible to implement such reusable pages as 
>>>>>> form
>>>> components too, i.e. give a form a JavaBean it renders it and
>>>> handles/process it with database CRUD and all.
>>>>>> Cheers,
>>>>>> Andrew
>>>>>>
>>>>>>
>>>>>>
>>>>>> --------------------------------------------------------------------- 
>>>>>>
>>>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>>>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: An Apache Wicket reusable Data List

Posted by andrew goh <go...@yahoo.com.INVALID>.
Taking in context:
https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
The templates:
DataListPanel.html
<wicket:panel>
     <table id="dataitems" class="table table-striped">
         <thead class="table-secondary">
             <th class="col-md-1" wicket:id="hdrRepeater"></th>
         </thead>
         <tbody>
             <wicket:container wicket:id="dataRepeater"></wicket:container>
         </tbody>
     </table>
</wicket:panel>
DataRowPanel.html
<wicket:panel>
     <tr>
         <td wicket:id="dataField" class="col-md-1"></td>
     </tr>
</wicket:panel>

And in the demo app where it is implemented

https://github.com/ag88/wickettest1

expands to:
     <table id="dataitems" class="table table-striped">
         <thead class="table-secondary">
             <th class="col-md-1">class</th><th 
class="col-md-1">firstname</th><th class="col-md-1">lastname</th>
         </thead>
         <tbody>
     <tr>
         <td class="col-md-1">class 
com.wicketest.pages.DataListExample$Person</td><td 
class="col-md-1">Smith</td><td class="col-md-1">John</td>
     </tr>
     <tr>
         <td class="col-md-1">class 
com.wicketest.pages.DataListExample$Person</td><td 
class="col-md-1">Johnson</td><td class="col-md-1">Emily</td>
     </tr>
...

         </tbody>
     </table>

--------------

Even if for that matter say that I specify each column (field) in the 
template the template itself would be fairly verbose.

Apache Wicket components practically reduced the templates to 'regular 
expressions'
<table>
<thead> <th>*</th><thead>
<tbody><tr><td>*</td></tr></tbody>

plus the javabeans, it literally fills in those *, given the javabean, 
generic, reusable.

Yes, I think this design pattern made possible by Apache Wicket matters.

On 16/04/2025 20:54, andrew goh wrote:
> Thanks, Rob Audenaerde
>
> I'd check out ISortableDataProvider and DataTable.
>
> I did this 'experiment' as I'm using handcrafted Bootstrap 
> https://getbootstrap.com/ based pages.
> And in part coming from spring-boot and Thymeleaf templates, I'm 
> starting to have a lot of HTMLs in the templates and rather often 
> repetitive blocks.
> Hence, creating these components in part to keep the 'look and feel' 
> consistent with 'Bootstrap' style of pages and that the Apache Wicket 
> components
> abstracts away the verbose HTMLs making them far more concise vs 
> littering them in templates.
>
> I think in spring-boot + Thymeleaf, what is normally done is to build 
> a 'dialect' and abstract those components away. But that without doing 
> so, HTML codes repeat and proliferate, e.g. for the likes of forms, 
> tables etc.
>
> I'd nevertheless try out ISortableDataProvider and DataTable. to see 
> how they works and possibly use them where they are appropriate.
>
> On 16/04/2025 19:23, Rob Audenaerde wrote:
>> I'm also not actively working with Wicket anymore (a shame), but we made
>> extensive use of the `ISortableDataProvider` and `DataTable`. It 
>> should not
>> be to hard to create a `BeanSortableDataProvider<T>` and a class that
>> generated the `AbstractColumn<T, S>` from the beans?
>>
>> On Wed, Apr 16, 2025 at 12:56 PM andrew goh 
>> <go...@yahoo.com.invalid>
>> wrote:
>>
>>> I think some of these stuff may be good to be added in
>>> https://wicketstuff.org/
>>>
>>> But for now this is very rough and 'only about works'.
>>>
>>> Back in the 'early' days of GUI development, there has been lots of
>>> re-usable GUI data components, e.g. the old Powerbuilder data windows
>>>
>>>
>>> https://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00044_0250/html/dwprgnet/CHDHFGCJ.htm 
>>>
>>>
>>> For some reasons, that art is 'lost' and it became 'scripting in
>>> templates' jsp/etc, yup there is MVC and all, but that 'scripting in
>>> templates' seemed to become an 'accepted norm' for web development. It
>>> starts to get on my nerves when I realised that I'm copying lots of
>>> (HTML+script) codes between forms, the HTML is verbose often much more
>>> so than the java codes and error prone, missing tags / closures, they
>>> are very state dependent (e.g. after you 'display' an error, forget to
>>> 'hide' it etc) upon submit etc.
>>> Hence, I looked elsewhere for a solution and I stumbled into Apache 
>>> Wicket.
>>>
>>> Apache Wicket and its components based design alleviates a lot of that.
>>> And I think it'd be good to explore further e.g. like what I'm trying
>>> out currently give the forms or pages a Java Bean and the components
>>> handle it fully. It can make database web apps a lot less verbose to 
>>> write
>>>
>>> Cheers,
>>> Andrew
>>>
>>> On 16/04/2025 18:26, Jonathan Locke wrote:
>>>> Hi Andrew,
>>>>
>>>> Interesting idea. I’ve been mostly away from Wicket for about 10 years
>>> as a committer, but I’m drawn back to the project again by some 
>>> things I’d
>>> like to see done that would provide more automation like this and also
>>> improve support for CSS and JavaScript and more concise syntax for 
>>> fluency
>>> in building UIs (I know this is one of Martian’s wishlist items). I 
>>> also
>>> have some curiosity about whether Wicket could have core features that
>>> might make integrations with client-side frameworks like React and 
>>> Angular
>>> easy. The pipe dream there is that you might build a Wicket app 
>>> where there
>>> are some richer client side components you’d like to work with in a 
>>> small
>>> portion of the site.
>>>> I have a client right now that I’m working with on a system for 
>>>> viewing
>>> and editing models automatically, kind of like your bean table 
>>> project, but
>>> for individual beans.
>>>> I think you’re thinking along the right lines in general. My client 
>>>> and
>>> I would ideally like to find one or two other companies with a 
>>> financial
>>> interest in conquering some of these complexities. I think for some 
>>> very
>>> complex apps, what we’re working on could yield significant cost 
>>> savings.
>>> It would be a further good if our project were sufficiently useful 
>>> to other
>>> parties that it would make a good, solid addition to wicket core or 
>>> wicket
>>> extensions.
>>>> If we can find some other interested parties, I might be able to 
>>>> work on
>>> these problems full time. Additionally, we would have more 
>>> perspectives and
>>> possibly some assistance with implementing some of these design I am
>>> flushing out now.
>>>> Let me know if you know of any interested parties and please keep us
>>> posted on your bean table project. I’m interested in how that goes 
>>> and what
>>> design you come up with.
>>>> Best,
>>>>
>>>> Jon
>>>>
>>>> Sent from my iPhone
>>>>
>>>>> On Apr 16, 2025, at 3:26 AM, andrew goh <go...@yahoo.com.invalid>
>>> wrote:
>>>>> While I'm learning the ropes of Apache Wicket currently and I'm
>>> exploring making reusable components.
>>>>> I tried making An Apache Wicket reusable Data List
>>>>>
>>>>> This component displays a list of JavaBeans as a html table
>>>>>
>>>>> DataListPanel takes as input in the constructor :
>>>>>
>>>>> the wicket:id of the component
>>>>> itemclass The java class of the JavaBean
>>>>> List items the list of JavaBeans
>>>>>
>>>>> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
>>>>>
>>>>> This version is pretty rough as I'm trying out a 'proof of concept'
>>> test.
>>>>> it actually works, rendering the list of JavaBeans as a html table.
>>>>>
>>>>> I used an often 'neglected' java package java.beans, technology
>>> Javabeans
>>>>> https://en.wikipedia.org/wiki/JavaBeans
>>>>>
>>> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/ 
>>>
>>>>> practically as 'old' as Java itself.
>>>>>
>>>>> It is probably quite interesting as many database interfaces 
>>>>> basically
>>> use JavaBeans to represent the records and as well used in forms.
>>>>> This practically makes the task of displaying records in a (html) 
>>>>> table
>>> done using a reusable component.
>>>>> It is likely possible to implement similar setup say with
>>> spring-framework, spring-boot and templates, but that Apache Wicket 
>>> makes
>>> the codes and templates very concise.
>>>>> The magic is implemented by the repeating views
>>>>>
>>> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component 
>>>
>>>>> and java.beans itself which I get the 'field' (beaninfo) names and 
>>>>> java
>>> reflection retrieval.
>>>>> I think it is likely feasible to implement such reusable pages as 
>>>>> form
>>> components too, i.e. give a form a JavaBean it renders it and
>>> handles/process it with database CRUD and all.
>>>>> Cheers,
>>>>> Andrew
>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: An Apache Wicket reusable Data List

Posted by andrew goh <go...@yahoo.com.INVALID>.
Taking in context:
https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
The templates:
DataListPanel.html
<wicket:panel>
     <table id="dataitems" class="table table-striped">
         <thead class="table-secondary">
             <th class="col-md-1" wicket:id="hdrRepeater"></th>
         </thead>
         <tbody>
             <wicket:container wicket:id="dataRepeater"></wicket:container>
         </tbody>
     </table>
</wicket:panel>
DataRowPanel.html
<wicket:panel>
     <tr>
         <td wicket:id="dataField" class="col-md-1"></td>
     </tr>
</wicket:panel>

And in the demo app where it is implemented

https://github.com/ag88/wickettest1

expands to:
     <table id="dataitems" class="table table-striped">
         <thead class="table-secondary">
             <th class="col-md-1">class</th><th 
class="col-md-1">firstname</th><th class="col-md-1">lastname</th>
         </thead>
         <tbody>
     <tr>
         <td class="col-md-1">class 
com.wicketest.pages.DataListExample$Person</td><td 
class="col-md-1">Smith</td><td class="col-md-1">John</td>
     </tr>
     <tr>
         <td class="col-md-1">class 
com.wicketest.pages.DataListExample$Person</td><td 
class="col-md-1">Johnson</td><td class="col-md-1">Emily</td>
     </tr>
...

         </tbody>
     </table>

--------------

Even if for that matter say that I specify each column (field) in the 
template the template itself would be fairly verbose.

Apache Wicket components practically reduced the templates to 'regular 
expressions'
<table>
<thead> <th>*</th><thead>
<tbody><tr><td>*</td></tr></tbody>

plus the javabeans, it literally fills in those *, given the javabean, 
generic, reusable.

Yes, I think this design pattern made possible by Apache Wicket matters.

On 16/04/2025 20:54, andrew goh wrote:
> Thanks, Rob Audenaerde
>
> I'd check out ISortableDataProvider and DataTable.
>
> I did this 'experiment' as I'm using handcrafted Bootstrap 
> https://getbootstrap.com/ based pages.
> And in part coming from spring-boot and Thymeleaf templates, I'm 
> starting to have a lot of HTMLs in the templates and rather often 
> repetitive blocks.
> Hence, creating these components in part to keep the 'look and feel' 
> consistent with 'Bootstrap' style of pages and that the Apache Wicket 
> components
> abstracts away the verbose HTMLs making them far more concise vs 
> littering them in templates.
>
> I think in spring-boot + Thymeleaf, what is normally done is to build 
> a 'dialect' and abstract those components away. But that without doing 
> so, HTML codes repeat and proliferate, e.g. for the likes of forms, 
> tables etc.
>
> I'd nevertheless try out ISortableDataProvider and DataTable. to see 
> how they works and possibly use them where they are appropriate.
>
> On 16/04/2025 19:23, Rob Audenaerde wrote:
>> I'm also not actively working with Wicket anymore (a shame), but we made
>> extensive use of the `ISortableDataProvider` and `DataTable`. It 
>> should not
>> be to hard to create a `BeanSortableDataProvider<T>` and a class that
>> generated the `AbstractColumn<T, S>` from the beans?
>>
>> On Wed, Apr 16, 2025 at 12:56 PM andrew goh 
>> <go...@yahoo.com.invalid>
>> wrote:
>>
>>> I think some of these stuff may be good to be added in
>>> https://wicketstuff.org/
>>>
>>> But for now this is very rough and 'only about works'.
>>>
>>> Back in the 'early' days of GUI development, there has been lots of
>>> re-usable GUI data components, e.g. the old Powerbuilder data windows
>>>
>>>
>>> https://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00044_0250/html/dwprgnet/CHDHFGCJ.htm 
>>>
>>>
>>> For some reasons, that art is 'lost' and it became 'scripting in
>>> templates' jsp/etc, yup there is MVC and all, but that 'scripting in
>>> templates' seemed to become an 'accepted norm' for web development. It
>>> starts to get on my nerves when I realised that I'm copying lots of
>>> (HTML+script) codes between forms, the HTML is verbose often much more
>>> so than the java codes and error prone, missing tags / closures, they
>>> are very state dependent (e.g. after you 'display' an error, forget to
>>> 'hide' it etc) upon submit etc.
>>> Hence, I looked elsewhere for a solution and I stumbled into Apache 
>>> Wicket.
>>>
>>> Apache Wicket and its components based design alleviates a lot of that.
>>> And I think it'd be good to explore further e.g. like what I'm trying
>>> out currently give the forms or pages a Java Bean and the components
>>> handle it fully. It can make database web apps a lot less verbose to 
>>> write
>>>
>>> Cheers,
>>> Andrew
>>>
>>> On 16/04/2025 18:26, Jonathan Locke wrote:
>>>> Hi Andrew,
>>>>
>>>> Interesting idea. I’ve been mostly away from Wicket for about 10 years
>>> as a committer, but I’m drawn back to the project again by some 
>>> things I’d
>>> like to see done that would provide more automation like this and also
>>> improve support for CSS and JavaScript and more concise syntax for 
>>> fluency
>>> in building UIs (I know this is one of Martian’s wishlist items). I 
>>> also
>>> have some curiosity about whether Wicket could have core features that
>>> might make integrations with client-side frameworks like React and 
>>> Angular
>>> easy. The pipe dream there is that you might build a Wicket app 
>>> where there
>>> are some richer client side components you’d like to work with in a 
>>> small
>>> portion of the site.
>>>> I have a client right now that I’m working with on a system for 
>>>> viewing
>>> and editing models automatically, kind of like your bean table 
>>> project, but
>>> for individual beans.
>>>> I think you’re thinking along the right lines in general. My client 
>>>> and
>>> I would ideally like to find one or two other companies with a 
>>> financial
>>> interest in conquering some of these complexities. I think for some 
>>> very
>>> complex apps, what we’re working on could yield significant cost 
>>> savings.
>>> It would be a further good if our project were sufficiently useful 
>>> to other
>>> parties that it would make a good, solid addition to wicket core or 
>>> wicket
>>> extensions.
>>>> If we can find some other interested parties, I might be able to 
>>>> work on
>>> these problems full time. Additionally, we would have more 
>>> perspectives and
>>> possibly some assistance with implementing some of these design I am
>>> flushing out now.
>>>> Let me know if you know of any interested parties and please keep us
>>> posted on your bean table project. I’m interested in how that goes 
>>> and what
>>> design you come up with.
>>>> Best,
>>>>
>>>> Jon
>>>>
>>>> Sent from my iPhone
>>>>
>>>>> On Apr 16, 2025, at 3:26 AM, andrew goh <go...@yahoo.com.invalid>
>>> wrote:
>>>>> While I'm learning the ropes of Apache Wicket currently and I'm
>>> exploring making reusable components.
>>>>> I tried making An Apache Wicket reusable Data List
>>>>>
>>>>> This component displays a list of JavaBeans as a html table
>>>>>
>>>>> DataListPanel takes as input in the constructor :
>>>>>
>>>>> the wicket:id of the component
>>>>> itemclass The java class of the JavaBean
>>>>> List items the list of JavaBeans
>>>>>
>>>>> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
>>>>>
>>>>> This version is pretty rough as I'm trying out a 'proof of concept'
>>> test.
>>>>> it actually works, rendering the list of JavaBeans as a html table.
>>>>>
>>>>> I used an often 'neglected' java package java.beans, technology
>>> Javabeans
>>>>> https://en.wikipedia.org/wiki/JavaBeans
>>>>>
>>> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/ 
>>>
>>>>> practically as 'old' as Java itself.
>>>>>
>>>>> It is probably quite interesting as many database interfaces 
>>>>> basically
>>> use JavaBeans to represent the records and as well used in forms.
>>>>> This practically makes the task of displaying records in a (html) 
>>>>> table
>>> done using a reusable component.
>>>>> It is likely possible to implement similar setup say with
>>> spring-framework, spring-boot and templates, but that Apache Wicket 
>>> makes
>>> the codes and templates very concise.
>>>>> The magic is implemented by the repeating views
>>>>>
>>> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component 
>>>
>>>>> and java.beans itself which I get the 'field' (beaninfo) names and 
>>>>> java
>>> reflection retrieval.
>>>>> I think it is likely feasible to implement such reusable pages as 
>>>>> form
>>> components too, i.e. give a form a JavaBean it renders it and
>>> handles/process it with database CRUD and all.
>>>>> Cheers,
>>>>> Andrew
>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>>

Re: An Apache Wicket reusable Data List

Posted by andrew goh <go...@yahoo.com.INVALID>.
Thanks, Rob Audenaerde

I'd check out ISortableDataProvider and DataTable.

I did this 'experiment' as I'm using handcrafted Bootstrap 
https://getbootstrap.com/ based pages.
And in part coming from spring-boot and Thymeleaf templates, I'm 
starting to have a lot of HTMLs in the templates and rather often 
repetitive blocks.
Hence, creating these components in part to keep the 'look and feel' 
consistent with 'Bootstrap' style of pages and that the Apache Wicket 
components
abstracts away the verbose HTMLs making them far more concise vs 
littering them in templates.

I think in spring-boot + Thymeleaf, what is normally done is to build a 
'dialect' and abstract those components away. But that without doing so, 
HTML codes repeat and proliferate, e.g. for the likes of forms, tables etc.

I'd nevertheless try out ISortableDataProvider and DataTable. to see how 
they works and possibly use them where they are appropriate.

On 16/04/2025 19:23, Rob Audenaerde wrote:
> I'm also not actively working with Wicket anymore (a shame), but we made
> extensive use of the `ISortableDataProvider` and `DataTable`. It 
> should not
> be to hard to create a `BeanSortableDataProvider<T>` and a class that
> generated the `AbstractColumn<T, S>` from the beans?
>
> On Wed, Apr 16, 2025 at 12:56 PM andrew goh <go...@yahoo.com.invalid>
> wrote:
>
>> I think some of these stuff may be good to be added in
>> https://wicketstuff.org/
>>
>> But for now this is very rough and 'only about works'.
>>
>> Back in the 'early' days of GUI development, there has been lots of
>> re-usable GUI data components, e.g. the old Powerbuilder data windows
>>
>>
>> https://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00044_0250/html/dwprgnet/CHDHFGCJ.htm
>>
>> For some reasons, that art is 'lost' and it became 'scripting in
>> templates' jsp/etc, yup there is MVC and all, but that 'scripting in
>> templates' seemed to become an 'accepted norm' for web development. It
>> starts to get on my nerves when I realised that I'm copying lots of
>> (HTML+script) codes between forms, the HTML is verbose often much more
>> so than the java codes and error prone, missing tags / closures, they
>> are very state dependent (e.g. after you 'display' an error, forget to
>> 'hide' it etc) upon submit etc.
>> Hence, I looked elsewhere for a solution and I stumbled into Apache 
>> Wicket.
>>
>> Apache Wicket and its components based design alleviates a lot of that.
>> And I think it'd be good to explore further e.g. like what I'm trying
>> out currently give the forms or pages a Java Bean and the components
>> handle it fully. It can make database web apps a lot less verbose to 
>> write
>>
>> Cheers,
>> Andrew
>>
>> On 16/04/2025 18:26, Jonathan Locke wrote:
>>> Hi Andrew,
>>>
>>> Interesting idea. I’ve been mostly away from Wicket for about 10 years
>> as a committer, but I’m drawn back to the project again by some 
>> things I’d
>> like to see done that would provide more automation like this and also
>> improve support for CSS and JavaScript and more concise syntax for 
>> fluency
>> in building UIs (I know this is one of Martian’s wishlist items). I also
>> have some curiosity about whether Wicket could have core features that
>> might make integrations with client-side frameworks like React and 
>> Angular
>> easy. The pipe dream there is that you might build a Wicket app where 
>> there
>> are some richer client side components you’d like to work with in a small
>> portion of the site.
>>> I have a client right now that I’m working with on a system for viewing
>> and editing models automatically, kind of like your bean table 
>> project, but
>> for individual beans.
>>> I think you’re thinking along the right lines in general. My client and
>> I would ideally like to find one or two other companies with a financial
>> interest in conquering some of these complexities. I think for some very
>> complex apps, what we’re working on could yield significant cost savings.
>> It would be a further good if our project were sufficiently useful to 
>> other
>> parties that it would make a good, solid addition to wicket core or 
>> wicket
>> extensions.
>>> If we can find some other interested parties, I might be able to work on
>> these problems full time. Additionally, we would have more 
>> perspectives and
>> possibly some assistance with implementing some of these design I am
>> flushing out now.
>>> Let me know if you know of any interested parties and please keep us
>> posted on your bean table project. I’m interested in how that goes 
>> and what
>> design you come up with.
>>> Best,
>>>
>>> Jon
>>>
>>> Sent from my iPhone
>>>
>>>> On Apr 16, 2025, at 3:26 AM, andrew goh <go...@yahoo.com.invalid>
>> wrote:
>>>> While I'm learning the ropes of Apache Wicket currently and I'm
>> exploring making reusable components.
>>>> I tried making An Apache Wicket reusable Data List
>>>>
>>>> This component displays a list of JavaBeans as a html table
>>>>
>>>> DataListPanel takes as input in the constructor :
>>>>
>>>> the wicket:id of the component
>>>> itemclass The java class of the JavaBean
>>>> List items the list of JavaBeans
>>>>
>>>> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
>>>>
>>>> This version is pretty rough as I'm trying out a 'proof of concept'
>> test.
>>>> it actually works, rendering the list of JavaBeans as a html table.
>>>>
>>>> I used an often 'neglected' java package java.beans, technology
>> Javabeans
>>>> https://en.wikipedia.org/wiki/JavaBeans
>>>>
>> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
>>>> practically as 'old' as Java itself.
>>>>
>>>> It is probably quite interesting as many database interfaces basically
>> use JavaBeans to represent the records and as well used in forms.
>>>> This practically makes the task of displaying records in a (html) table
>> done using a reusable component.
>>>> It is likely possible to implement similar setup say with
>> spring-framework, spring-boot and templates, but that Apache Wicket makes
>> the codes and templates very concise.
>>>> The magic is implemented by the repeating views
>>>>
>> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component
>>>> and java.beans itself which I get the 'field' (beaninfo) names and java
>> reflection retrieval.
>>>> I think it is likely feasible to implement such reusable pages as form
>> components too, i.e. give a form a JavaBean it renders it and
>> handles/process it with database CRUD and all.
>>>> Cheers,
>>>> Andrew
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> For additional commands, e-mail: users-help@wicket.apache.org
>>>>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: An Apache Wicket reusable Data List

Posted by Rob Audenaerde <ro...@gmail.com>.
I'm also not actively working with Wicket anymore (a shame), but we made
extensive use of the `ISortableDataProvider` and `DataTable`. It should not
be to hard to create a `BeanSortableDataProvider<T>` and a class that
generated the `AbstractColumn<T, S>` from the beans?

On Wed, Apr 16, 2025 at 12:56 PM andrew goh <go...@yahoo.com.invalid>
wrote:

> I think some of these stuff may be good to be added in
> https://wicketstuff.org/
>
> But for now this is very rough and 'only about works'.
>
> Back in the 'early' days of GUI development, there has been lots of
> re-usable GUI data components, e.g. the old Powerbuilder data windows
>
>
> https://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00044_0250/html/dwprgnet/CHDHFGCJ.htm
>
> For some reasons, that art is 'lost' and it became 'scripting in
> templates' jsp/etc, yup there is MVC and all, but that 'scripting in
> templates' seemed to become an 'accepted norm' for web development. It
> starts to get on my nerves when I realised that I'm copying lots of
> (HTML+script) codes between forms, the HTML is verbose often much more
> so than the java codes and error prone, missing tags / closures, they
> are very state dependent (e.g. after you 'display' an error, forget to
> 'hide' it etc) upon submit etc.
> Hence, I looked elsewhere for a solution and I stumbled into Apache Wicket.
>
> Apache Wicket and its components based design alleviates a lot of that.
> And I think it'd be good to explore further e.g. like what I'm trying
> out currently give the forms or pages a Java Bean and the components
> handle it fully. It can make database web apps a lot less verbose to write
>
> Cheers,
>    Andrew
>
> On 16/04/2025 18:26, Jonathan Locke wrote:
> > Hi Andrew,
> >
> > Interesting idea. I’ve been mostly away from Wicket for about 10 years
> as a committer, but I’m drawn back to the project again by some things I’d
> like to see done that would provide more automation like this and also
> improve support for CSS and JavaScript and more concise syntax for fluency
> in building UIs (I know this is one of Martian’s wishlist items). I also
> have some curiosity about whether Wicket could have core features that
> might make integrations with client-side frameworks like React and Angular
> easy. The pipe dream there is that you might build a Wicket app where there
> are some richer client side components you’d like to work with in a small
> portion of the site.
> >
> > I have a client right now that I’m working with on a system for viewing
> and editing models automatically, kind of like your bean table project, but
> for individual beans.
> >
> > I think you’re thinking along the right lines in general. My client and
> I would ideally like to find one or two other companies with a financial
> interest in conquering some of these complexities. I think for some very
> complex apps, what we’re working on could yield significant cost savings.
> It would be a further good if our project were sufficiently useful to other
> parties that it would make a good, solid addition to wicket core or wicket
> extensions.
> >
> > If we can find some other interested parties, I might be able to work on
> these problems full time. Additionally, we would have more perspectives and
> possibly some assistance with implementing some of these design I am
> flushing out now.
> >
> > Let me know if you know of any interested parties and please keep us
> posted on your bean table project. I’m interested in how that goes and what
> design you come up with.
> >
> > Best,
> >
> > Jon
> >
> > Sent from my iPhone
> >
> >> On Apr 16, 2025, at 3:26 AM, andrew goh <go...@yahoo.com.invalid>
> wrote:
> >>
> >> While I'm learning the ropes of Apache Wicket currently and I'm
> exploring making reusable components.
> >>
> >> I tried making An Apache Wicket reusable Data List
> >>
> >> This component displays a list of JavaBeans as a html table
> >>
> >> DataListPanel takes as input in the constructor :
> >>
> >> the wicket:id of the component
> >> itemclass The java class of the JavaBean
> >> List items the list of JavaBeans
> >>
> >> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
> >>
> >> This version is pretty rough as I'm trying out a 'proof of concept'
> test.
> >> it actually works, rendering the list of JavaBeans as a html table.
> >>
> >> I used an often 'neglected' java package java.beans, technology
> Javabeans
> >> https://en.wikipedia.org/wiki/JavaBeans
> >>
> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
> >> practically as 'old' as Java itself.
> >>
> >> It is probably quite interesting as many database interfaces basically
> use JavaBeans to represent the records and as well used in forms.
> >> This practically makes the task of displaying records in a (html) table
> done using a reusable component.
> >>
> >> It is likely possible to implement similar setup say with
> spring-framework, spring-boot and templates, but that Apache Wicket makes
> the codes and templates very concise.
> >> The magic is implemented by the repeating views
> >>
> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component
> >> and java.beans itself which I get the 'field' (beaninfo) names and java
> reflection retrieval.
> >>
> >> I think it is likely feasible to implement such reusable pages as form
> components too, i.e. give a form a JavaBean it renders it and
> handles/process it with database CRUD and all.
> >>
> >> Cheers,
> >>    Andrew
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>
>

Re: An Apache Wicket reusable Data List

Posted by Rob Audenaerde <ro...@gmail.com>.
I'm also not actively working with Wicket anymore (a shame), but we made
extensive use of the `ISortableDataProvider` and `DataTable`. It should not
be to hard to create a `BeanSortableDataProvider<T>` and a class that
generated the `AbstractColumn<T, S>` from the beans?

On Wed, Apr 16, 2025 at 12:56 PM andrew goh <go...@yahoo.com.invalid>
wrote:

> I think some of these stuff may be good to be added in
> https://wicketstuff.org/
>
> But for now this is very rough and 'only about works'.
>
> Back in the 'early' days of GUI development, there has been lots of
> re-usable GUI data components, e.g. the old Powerbuilder data windows
>
>
> https://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00044_0250/html/dwprgnet/CHDHFGCJ.htm
>
> For some reasons, that art is 'lost' and it became 'scripting in
> templates' jsp/etc, yup there is MVC and all, but that 'scripting in
> templates' seemed to become an 'accepted norm' for web development. It
> starts to get on my nerves when I realised that I'm copying lots of
> (HTML+script) codes between forms, the HTML is verbose often much more
> so than the java codes and error prone, missing tags / closures, they
> are very state dependent (e.g. after you 'display' an error, forget to
> 'hide' it etc) upon submit etc.
> Hence, I looked elsewhere for a solution and I stumbled into Apache Wicket.
>
> Apache Wicket and its components based design alleviates a lot of that.
> And I think it'd be good to explore further e.g. like what I'm trying
> out currently give the forms or pages a Java Bean and the components
> handle it fully. It can make database web apps a lot less verbose to write
>
> Cheers,
>    Andrew
>
> On 16/04/2025 18:26, Jonathan Locke wrote:
> > Hi Andrew,
> >
> > Interesting idea. I’ve been mostly away from Wicket for about 10 years
> as a committer, but I’m drawn back to the project again by some things I’d
> like to see done that would provide more automation like this and also
> improve support for CSS and JavaScript and more concise syntax for fluency
> in building UIs (I know this is one of Martian’s wishlist items). I also
> have some curiosity about whether Wicket could have core features that
> might make integrations with client-side frameworks like React and Angular
> easy. The pipe dream there is that you might build a Wicket app where there
> are some richer client side components you’d like to work with in a small
> portion of the site.
> >
> > I have a client right now that I’m working with on a system for viewing
> and editing models automatically, kind of like your bean table project, but
> for individual beans.
> >
> > I think you’re thinking along the right lines in general. My client and
> I would ideally like to find one or two other companies with a financial
> interest in conquering some of these complexities. I think for some very
> complex apps, what we’re working on could yield significant cost savings.
> It would be a further good if our project were sufficiently useful to other
> parties that it would make a good, solid addition to wicket core or wicket
> extensions.
> >
> > If we can find some other interested parties, I might be able to work on
> these problems full time. Additionally, we would have more perspectives and
> possibly some assistance with implementing some of these design I am
> flushing out now.
> >
> > Let me know if you know of any interested parties and please keep us
> posted on your bean table project. I’m interested in how that goes and what
> design you come up with.
> >
> > Best,
> >
> > Jon
> >
> > Sent from my iPhone
> >
> >> On Apr 16, 2025, at 3:26 AM, andrew goh <go...@yahoo.com.invalid>
> wrote:
> >>
> >> While I'm learning the ropes of Apache Wicket currently and I'm
> exploring making reusable components.
> >>
> >> I tried making An Apache Wicket reusable Data List
> >>
> >> This component displays a list of JavaBeans as a html table
> >>
> >> DataListPanel takes as input in the constructor :
> >>
> >> the wicket:id of the component
> >> itemclass The java class of the JavaBean
> >> List items the list of JavaBeans
> >>
> >> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
> >>
> >> This version is pretty rough as I'm trying out a 'proof of concept'
> test.
> >> it actually works, rendering the list of JavaBeans as a html table.
> >>
> >> I used an often 'neglected' java package java.beans, technology
> Javabeans
> >> https://en.wikipedia.org/wiki/JavaBeans
> >>
> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
> >> practically as 'old' as Java itself.
> >>
> >> It is probably quite interesting as many database interfaces basically
> use JavaBeans to represent the records and as well used in forms.
> >> This practically makes the task of displaying records in a (html) table
> done using a reusable component.
> >>
> >> It is likely possible to implement similar setup say with
> spring-framework, spring-boot and templates, but that Apache Wicket makes
> the codes and templates very concise.
> >> The magic is implemented by the repeating views
> >>
> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component
> >> and java.beans itself which I get the 'field' (beaninfo) names and java
> reflection retrieval.
> >>
> >> I think it is likely feasible to implement such reusable pages as form
> components too, i.e. give a form a JavaBean it renders it and
> handles/process it with database CRUD and all.
> >>
> >> Cheers,
> >>    Andrew
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>
>

Re: An Apache Wicket reusable Data List

Posted by andrew goh <go...@yahoo.com.INVALID>.
I think some of these stuff may be good to be added in 
https://wicketstuff.org/

But for now this is very rough and 'only about works'.

Back in the 'early' days of GUI development, there has been lots of 
re-usable GUI data components, e.g. the old Powerbuilder data windows

https://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00044_0250/html/dwprgnet/CHDHFGCJ.htm

For some reasons, that art is 'lost' and it became 'scripting in 
templates' jsp/etc, yup there is MVC and all, but that 'scripting in 
templates' seemed to become an 'accepted norm' for web development. It 
starts to get on my nerves when I realised that I'm copying lots of 
(HTML+script) codes between forms, the HTML is verbose often much more 
so than the java codes and error prone, missing tags / closures, they 
are very state dependent (e.g. after you 'display' an error, forget to 
'hide' it etc) upon submit etc.
Hence, I looked elsewhere for a solution and I stumbled into Apache Wicket.

Apache Wicket and its components based design alleviates a lot of that. 
And I think it'd be good to explore further e.g. like what I'm trying 
out currently give the forms or pages a Java Bean and the components 
handle it fully. It can make database web apps a lot less verbose to write

Cheers,
   Andrew

On 16/04/2025 18:26, Jonathan Locke wrote:
> Hi Andrew,
>
> Interesting idea. I’ve been mostly away from Wicket for about 10 years as a committer, but I’m drawn back to the project again by some things I’d like to see done that would provide more automation like this and also improve support for CSS and JavaScript and more concise syntax for fluency in building UIs (I know this is one of Martian’s wishlist items). I also have some curiosity about whether Wicket could have core features that might make integrations with client-side frameworks like React and Angular easy. The pipe dream there is that you might build a Wicket app where there are some richer client side components you’d like to work with in a small portion of the site.
>
> I have a client right now that I’m working with on a system for viewing and editing models automatically, kind of like your bean table project, but for individual beans.
>
> I think you’re thinking along the right lines in general. My client and I would ideally like to find one or two other companies with a financial interest in conquering some of these complexities. I think for some very complex apps, what we’re working on could yield significant cost savings. It would be a further good if our project were sufficiently useful to other parties that it would make a good, solid addition to wicket core or wicket extensions.
>
> If we can find some other interested parties, I might be able to work on these problems full time. Additionally, we would have more perspectives and possibly some assistance with implementing some of these design I am flushing out now.
>
> Let me know if you know of any interested parties and please keep us posted on your bean table project. I’m interested in how that goes and what design you come up with.
>
> Best,
>
> Jon
>
> Sent from my iPhone
>
>> On Apr 16, 2025, at 3:26 AM, andrew goh <go...@yahoo.com.invalid> wrote:
>>
>> While I'm learning the ropes of Apache Wicket currently and I'm exploring making reusable components.
>>
>> I tried making An Apache Wicket reusable Data List
>>
>> This component displays a list of JavaBeans as a html table
>>
>> DataListPanel takes as input in the constructor :
>>
>> the wicket:id of the component
>> itemclass The java class of the JavaBean
>> List items the list of JavaBeans
>>
>> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
>>
>> This version is pretty rough as I'm trying out a 'proof of concept' test.
>> it actually works, rendering the list of JavaBeans as a html table.
>>
>> I used an often 'neglected' java package java.beans, technology Javabeans
>> https://en.wikipedia.org/wiki/JavaBeans
>> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
>> practically as 'old' as Java itself.
>>
>> It is probably quite interesting as many database interfaces basically use JavaBeans to represent the records and as well used in forms.
>> This practically makes the task of displaying records in a (html) table done using a reusable component.
>>
>> It is likely possible to implement similar setup say with spring-framework, spring-boot and templates, but that Apache Wicket makes the codes and templates very concise.
>> The magic is implemented by the repeating views
>> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component
>> and java.beans itself which I get the 'field' (beaninfo) names and java reflection retrieval.
>>
>> I think it is likely feasible to implement such reusable pages as form components too, i.e. give a form a JavaBean it renders it and handles/process it with database CRUD and all.
>>
>> Cheers,
>>    Andrew
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>

Re: An Apache Wicket reusable Data List

Posted by andrew goh <go...@yahoo.com.INVALID>.
I think some of these stuff may be good to be added in 
https://wicketstuff.org/

But for now this is very rough and 'only about works'.

Back in the 'early' days of GUI development, there has been lots of 
re-usable GUI data components, e.g. the old Powerbuilder data windows

https://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc00044_0250/html/dwprgnet/CHDHFGCJ.htm

For some reasons, that art is 'lost' and it became 'scripting in 
templates' jsp/etc, yup there is MVC and all, but that 'scripting in 
templates' seemed to become an 'accepted norm' for web development. It 
starts to get on my nerves when I realised that I'm copying lots of 
(HTML+script) codes between forms, the HTML is verbose often much more 
so than the java codes and error prone, missing tags / closures, they 
are very state dependent (e.g. after you 'display' an error, forget to 
'hide' it etc) upon submit etc.
Hence, I looked elsewhere for a solution and I stumbled into Apache Wicket.

Apache Wicket and its components based design alleviates a lot of that. 
And I think it'd be good to explore further e.g. like what I'm trying 
out currently give the forms or pages a Java Bean and the components 
handle it fully. It can make database web apps a lot less verbose to write

Cheers,
   Andrew

On 16/04/2025 18:26, Jonathan Locke wrote:
> Hi Andrew,
>
> Interesting idea. I’ve been mostly away from Wicket for about 10 years as a committer, but I’m drawn back to the project again by some things I’d like to see done that would provide more automation like this and also improve support for CSS and JavaScript and more concise syntax for fluency in building UIs (I know this is one of Martian’s wishlist items). I also have some curiosity about whether Wicket could have core features that might make integrations with client-side frameworks like React and Angular easy. The pipe dream there is that you might build a Wicket app where there are some richer client side components you’d like to work with in a small portion of the site.
>
> I have a client right now that I’m working with on a system for viewing and editing models automatically, kind of like your bean table project, but for individual beans.
>
> I think you’re thinking along the right lines in general. My client and I would ideally like to find one or two other companies with a financial interest in conquering some of these complexities. I think for some very complex apps, what we’re working on could yield significant cost savings. It would be a further good if our project were sufficiently useful to other parties that it would make a good, solid addition to wicket core or wicket extensions.
>
> If we can find some other interested parties, I might be able to work on these problems full time. Additionally, we would have more perspectives and possibly some assistance with implementing some of these design I am flushing out now.
>
> Let me know if you know of any interested parties and please keep us posted on your bean table project. I’m interested in how that goes and what design you come up with.
>
> Best,
>
> Jon
>
> Sent from my iPhone
>
>> On Apr 16, 2025, at 3:26 AM, andrew goh <go...@yahoo.com.invalid> wrote:
>>
>> While I'm learning the ropes of Apache Wicket currently and I'm exploring making reusable components.
>>
>> I tried making An Apache Wicket reusable Data List
>>
>> This component displays a list of JavaBeans as a html table
>>
>> DataListPanel takes as input in the constructor :
>>
>> the wicket:id of the component
>> itemclass The java class of the JavaBean
>> List items the list of JavaBeans
>>
>> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
>>
>> This version is pretty rough as I'm trying out a 'proof of concept' test.
>> it actually works, rendering the list of JavaBeans as a html table.
>>
>> I used an often 'neglected' java package java.beans, technology Javabeans
>> https://en.wikipedia.org/wiki/JavaBeans
>> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
>> practically as 'old' as Java itself.
>>
>> It is probably quite interesting as many database interfaces basically use JavaBeans to represent the records and as well used in forms.
>> This practically makes the task of displaying records in a (html) table done using a reusable component.
>>
>> It is likely possible to implement similar setup say with spring-framework, spring-boot and templates, but that Apache Wicket makes the codes and templates very concise.
>> The magic is implemented by the repeating views
>> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component
>> and java.beans itself which I get the 'field' (beaninfo) names and java reflection retrieval.
>>
>> I think it is likely feasible to implement such reusable pages as form components too, i.e. give a form a JavaBean it renders it and handles/process it with database CRUD and all.
>>
>> Cheers,
>>    Andrew
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: An Apache Wicket reusable Data List

Posted by Jonathan Locke <jo...@thanlocke.com>.
Hi Andrew,

Interesting idea. I’ve been mostly away from Wicket for about 10 years as a committer, but I’m drawn back to the project again by some things I’d like to see done that would provide more automation like this and also improve support for CSS and JavaScript and more concise syntax for fluency in building UIs (I know this is one of Martian’s wishlist items). I also have some curiosity about whether Wicket could have core features that might make integrations with client-side frameworks like React and Angular easy. The pipe dream there is that you might build a Wicket app where there are some richer client side components you’d like to work with in a small portion of the site.

I have a client right now that I’m working with on a system for viewing and editing models automatically, kind of like your bean table project, but for individual beans. 

I think you’re thinking along the right lines in general. My client and I would ideally like to find one or two other companies with a financial interest in conquering some of these complexities. I think for some very complex apps, what we’re working on could yield significant cost savings. It would be a further good if our project were sufficiently useful to other parties that it would make a good, solid addition to wicket core or wicket extensions.

If we can find some other interested parties, I might be able to work on these problems full time. Additionally, we would have more perspectives and possibly some assistance with implementing some of these design I am flushing out now. 

Let me know if you know of any interested parties and please keep us posted on your bean table project. I’m interested in how that goes and what design you come up with.

Best,

Jon

Sent from my iPhone

> On Apr 16, 2025, at 3:26 AM, andrew goh <go...@yahoo.com.invalid> wrote:
> 
> While I'm learning the ropes of Apache Wicket currently and I'm exploring making reusable components.
> 
> I tried making An Apache Wicket reusable Data List
> 
> This component displays a list of JavaBeans as a html table
> 
> DataListPanel takes as input in the constructor :
> 
> the wicket:id of the component
> itemclass The java class of the JavaBean
> List items the list of JavaBeans
> 
> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
> 
> This version is pretty rough as I'm trying out a 'proof of concept' test.
> it actually works, rendering the list of JavaBeans as a html table.
> 
> I used an often 'neglected' java package java.beans, technology Javabeans
> https://en.wikipedia.org/wiki/JavaBeans
> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
> practically as 'old' as Java itself.
> 
> It is probably quite interesting as many database interfaces basically use JavaBeans to represent the records and as well used in forms.
> This practically makes the task of displaying records in a (html) table done using a reusable component.
> 
> It is likely possible to implement similar setup say with spring-framework, spring-boot and templates, but that Apache Wicket makes the codes and templates very concise.
> The magic is implemented by the repeating views
> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component
> and java.beans itself which I get the 'field' (beaninfo) names and java reflection retrieval.
> 
> I think it is likely feasible to implement such reusable pages as form components too, i.e. give a form a JavaBean it renders it and handles/process it with database CRUD and all.
> 
> Cheers,
>   Andrew
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 


Re: An Apache Wicket reusable Data List

Posted by andrew goh <go...@yahoo.com.INVALID>.
It turns out RepeatingView component works in Forms as well

https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component

And I've been able to make a reusable form given a java bean and its 
customized BeanInfo class.
The BeanInfo serves as 'configuration metadata' to configure the 
rendering and setup of the form and fields.


On 16/04/2025 17:25, andrew goh wrote:
> While I'm learning the ropes of Apache Wicket currently and I'm 
> exploring making reusable components.
>
> I tried making An Apache Wicket reusable Data List
>
> This component displays a list of JavaBeans as a html table
>
> DataListPanel takes as input in the constructor :
>
> the wicket:id of the component
> itemclass The java class of the JavaBean
> List items the list of JavaBeans
>
> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
>
> This version is pretty rough as I'm trying out a 'proof of concept' test.
> it actually works, rendering the list of JavaBeans as a html table.
>
> I used an often 'neglected' java package java.beans, technology Javabeans
> https://en.wikipedia.org/wiki/JavaBeans
> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/ 
>
> practically as 'old' as Java itself.
>
> It is probably quite interesting as many database interfaces basically 
> use JavaBeans to represent the records and as well used in forms.
> This practically makes the task of displaying records in a (html) 
> table done using a reusable component.
>
> It is likely possible to implement similar setup say with 
> spring-framework, spring-boot and templates, but that Apache Wicket 
> makes the codes and templates very concise.
> The magic is implemented by the repeating views
> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component 
>
> and java.beans itself which I get the 'field' (beaninfo) names and 
> java reflection retrieval.
>
> I think it is likely feasible to implement such reusable pages as form 
> components too, i.e. give a form a JavaBean it renders it and 
> handles/process it with database CRUD and all.
>
> Cheers,
>   Andrew
>
>

Re: An Apache Wicket reusable Data List

Posted by andrew goh <go...@yahoo.com.INVALID>.
The codes is committed in part of a demo here as well:

https://github.com/ag88/wickettest1

On 16/04/2025 17:25, andrew goh wrote:
> While I'm learning the ropes of Apache Wicket currently and I'm 
> exploring making reusable components.
>
> I tried making An Apache Wicket reusable Data List
>
> This component displays a list of JavaBeans as a html table
>
> DataListPanel takes as input in the constructor :
>
> the wicket:id of the component
> itemclass The java class of the JavaBean
> List items the list of JavaBeans
>
> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
>
> This version is pretty rough as I'm trying out as a 'proof of concept' 
> test.
> it actually works, rendering the list of JavaBeans as a html table.
>
> I used an often 'neglected' java package java.beans, technology Javabeans
> https://en.wikipedia.org/wiki/JavaBeans
> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/ 
>
> practically as 'old' as Java itself.
>
> It is probably quite interesting as many database interfaces basically 
> use JavaBeans to represent the records and as well used in forms.
> This practically makes the task of displaying records in a (html) 
> table done using a reusable component.
>
> It is likely possible to implement similar setup say with 
> spring-framework, spring-boot and templates, but that Apache Wicket 
> makes the codes and templates very concise.
> The magic is implemented by the repeating views
> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component 
>
> and java.beans itself which I get the 'field' (beaninfo) names and 
> java reflection retrieval.
>
> I think it is likely feasible to implement such reusable pages as form 
> components too, i.e. give a form a JavaBean it renders it and 
> handles/process it with database CRUD and all.
>
> Cheers,
>   Andrew
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: An Apache Wicket reusable Data List

Posted by andrew goh <go...@yahoo.com.INVALID>.
The codes is committed in part of a demo here as well:

https://github.com/ag88/wickettest1

On 16/04/2025 17:25, andrew goh wrote:
> While I'm learning the ropes of Apache Wicket currently and I'm 
> exploring making reusable components.
>
> I tried making An Apache Wicket reusable Data List
>
> This component displays a list of JavaBeans as a html table
>
> DataListPanel takes as input in the constructor :
>
> the wicket:id of the component
> itemclass The java class of the JavaBean
> List items the list of JavaBeans
>
> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
>
> This version is pretty rough as I'm trying out as a 'proof of concept' 
> test.
> it actually works, rendering the list of JavaBeans as a html table.
>
> I used an often 'neglected' java package java.beans, technology Javabeans
> https://en.wikipedia.org/wiki/JavaBeans
> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/ 
>
> practically as 'old' as Java itself.
>
> It is probably quite interesting as many database interfaces basically 
> use JavaBeans to represent the records and as well used in forms.
> This practically makes the task of displaying records in a (html) 
> table done using a reusable component.
>
> It is likely possible to implement similar setup say with 
> spring-framework, spring-boot and templates, but that Apache Wicket 
> makes the codes and templates very concise.
> The magic is implemented by the repeating views
> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component 
>
> and java.beans itself which I get the 'field' (beaninfo) names and 
> java reflection retrieval.
>
> I think it is likely feasible to implement such reusable pages as form 
> components too, i.e. give a form a JavaBean it renders it and 
> handles/process it with database CRUD and all.
>
> Cheers,
>   Andrew
>
>

Re: An Apache Wicket reusable Data List

Posted by Jonathan Locke <jo...@thanlocke.com>.
Hi Andrew,

Interesting idea. I’ve been mostly away from Wicket for about 10 years as a committer, but I’m drawn back to the project again by some things I’d like to see done that would provide more automation like this and also improve support for CSS and JavaScript and more concise syntax for fluency in building UIs (I know this is one of Martian’s wishlist items). I also have some curiosity about whether Wicket could have core features that might make integrations with client-side frameworks like React and Angular easy. The pipe dream there is that you might build a Wicket app where there are some richer client side components you’d like to work with in a small portion of the site.

I have a client right now that I’m working with on a system for viewing and editing models automatically, kind of like your bean table project, but for individual beans. 

I think you’re thinking along the right lines in general. My client and I would ideally like to find one or two other companies with a financial interest in conquering some of these complexities. I think for some very complex apps, what we’re working on could yield significant cost savings. It would be a further good if our project were sufficiently useful to other parties that it would make a good, solid addition to wicket core or wicket extensions.

If we can find some other interested parties, I might be able to work on these problems full time. Additionally, we would have more perspectives and possibly some assistance with implementing some of these design I am flushing out now. 

Let me know if you know of any interested parties and please keep us posted on your bean table project. I’m interested in how that goes and what design you come up with.

Best,

Jon

Sent from my iPhone

> On Apr 16, 2025, at 3:26 AM, andrew goh <go...@yahoo.com.invalid> wrote:
> 
> While I'm learning the ropes of Apache Wicket currently and I'm exploring making reusable components.
> 
> I tried making An Apache Wicket reusable Data List
> 
> This component displays a list of JavaBeans as a html table
> 
> DataListPanel takes as input in the constructor :
> 
> the wicket:id of the component
> itemclass The java class of the JavaBean
> List items the list of JavaBeans
> 
> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
> 
> This version is pretty rough as I'm trying out a 'proof of concept' test.
> it actually works, rendering the list of JavaBeans as a html table.
> 
> I used an often 'neglected' java package java.beans, technology Javabeans
> https://en.wikipedia.org/wiki/JavaBeans
> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
> practically as 'old' as Java itself.
> 
> It is probably quite interesting as many database interfaces basically use JavaBeans to represent the records and as well used in forms.
> This practically makes the task of displaying records in a (html) table done using a reusable component.
> 
> It is likely possible to implement similar setup say with spring-framework, spring-boot and templates, but that Apache Wicket makes the codes and templates very concise.
> The magic is implemented by the repeating views
> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component
> and java.beans itself which I get the 'field' (beaninfo) names and java reflection retrieval.
> 
> I think it is likely feasible to implement such reusable pages as form components too, i.e. give a form a JavaBean it renders it and handles/process it with database CRUD and all.
> 
> Cheers,
>   Andrew
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: An Apache Wicket reusable Data List

Posted by Martin Grigorov <mg...@apache.org>.
On Wed, 16 Apr 2025 at 20:39, Rob Audenaerde <ro...@gmail.com>
wrote:

> Apache isis?


It has been renamed to Causeway
https://causeway.apache.org/



>
> On Wed, Apr 16, 2025, 18:45 Ernesto Reinaldo Barreiro <re...@gmail.com>
> wrote:
>
> > Hi,
> >
> > Over the years I have heard of similar ideas... and I also implemented
> some
> > "factory thing" that was able to create some CRUD form out of some
> > annotated Hibernate JPA/POJO for some private project: I remember it was
> > Spring based too...
> >
> > I think there was also some apache project exploring such ideas. Maybe
> > other wicket developers can remember if this is correct?
> >
> > On Wed, Apr 16, 2025 at 4:27 AM andrew goh <go...@yahoo.com.invalid>
> > wrote:
> >
> > > While I'm learning the ropes of Apache Wicket currently and I'm
> > > exploring making reusable components.
> > >
> > > I tried making An Apache Wicket reusable Data List
> > >
> > > This component displays a list of JavaBeans as a html table
> > >
> > > DataListPanel takes as input in the constructor :
> > >
> > > the wicket:id of the component
> > > itemclass The java class of the JavaBean
> > > List items the list of JavaBeans
> > >
> > > https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
> > >
> > > This version is pretty rough as I'm trying out a 'proof of concept'
> test.
> > > it actually works, rendering the list of JavaBeans as a html table.
> > >
> > > I used an often 'neglected' java package java.beans, technology
> Javabeans
> > > https://en.wikipedia.org/wiki/JavaBeans
> > >
> > >
> >
> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
> > > practically as 'old' as Java itself.
> > >
> > > It is probably quite interesting as many database interfaces basically
> > > use JavaBeans to represent the records and as well used in forms.
> > > This practically makes the task of displaying records in a (html) table
> > > done using a reusable component.
> > >
> > > It is likely possible to implement similar setup say with
> > > spring-framework, spring-boot and templates, but that Apache Wicket
> > > makes the codes and templates very concise.
> > > The magic is implemented by the repeating views
> > >
> > >
> >
> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component
> > > and java.beans itself which I get the 'field' (beaninfo) names and java
> > > reflection retrieval.
> > >
> > > I think it is likely feasible to implement such reusable pages as form
> > > components too, i.e. give a form a JavaBean it renders it and
> > > handles/process it with database CRUD and all.
> > >
> > > Cheers,
> > >    Andrew
> > >
> > >
> > >
> >
> > --
> > Regards - Ernesto Reinaldo Barreiro
> >
>

Re: An Apache Wicket reusable Data List

Posted by Ernesto Reinaldo Barreiro <re...@gmail.com>.
Yes. I think that was it. Thanks

On Wed, Apr 16, 2025 at 12:39 PM Rob Audenaerde <ro...@gmail.com>
wrote:

> Apache isis?
>
> On Wed, Apr 16, 2025, 18:45 Ernesto Reinaldo Barreiro <re...@gmail.com>
> wrote:
>
> > Hi,
> >
> > Over the years I have heard of similar ideas... and I also implemented
> some
> > "factory thing" that was able to create some CRUD form out of some
> > annotated Hibernate JPA/POJO for some private project: I remember it was
> > Spring based too...
> >
> > I think there was also some apache project exploring such ideas. Maybe
> > other wicket developers can remember if this is correct?
> >
> > On Wed, Apr 16, 2025 at 4:27 AM andrew goh <go...@yahoo.com.invalid>
> > wrote:
> >
> > > While I'm learning the ropes of Apache Wicket currently and I'm
> > > exploring making reusable components.
> > >
> > > I tried making An Apache Wicket reusable Data List
> > >
> > > This component displays a list of JavaBeans as a html table
> > >
> > > DataListPanel takes as input in the constructor :
> > >
> > > the wicket:id of the component
> > > itemclass The java class of the JavaBean
> > > List items the list of JavaBeans
> > >
> > > https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
> > >
> > > This version is pretty rough as I'm trying out a 'proof of concept'
> test.
> > > it actually works, rendering the list of JavaBeans as a html table.
> > >
> > > I used an often 'neglected' java package java.beans, technology
> Javabeans
> > > https://en.wikipedia.org/wiki/JavaBeans
> > >
> > >
> >
> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
> > > practically as 'old' as Java itself.
> > >
> > > It is probably quite interesting as many database interfaces basically
> > > use JavaBeans to represent the records and as well used in forms.
> > > This practically makes the task of displaying records in a (html) table
> > > done using a reusable component.
> > >
> > > It is likely possible to implement similar setup say with
> > > spring-framework, spring-boot and templates, but that Apache Wicket
> > > makes the codes and templates very concise.
> > > The magic is implemented by the repeating views
> > >
> > >
> >
> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component
> > > and java.beans itself which I get the 'field' (beaninfo) names and java
> > > reflection retrieval.
> > >
> > > I think it is likely feasible to implement such reusable pages as form
> > > components too, i.e. give a form a JavaBean it renders it and
> > > handles/process it with database CRUD and all.
> > >
> > > Cheers,
> > >    Andrew
> > >
> > >
> > >
> >
> > --
> > Regards - Ernesto Reinaldo Barreiro
> >
>


-- 
Regards - Ernesto Reinaldo Barreiro

Re: An Apache Wicket reusable Data List

Posted by Rob Audenaerde <ro...@gmail.com>.
Apache isis?

On Wed, Apr 16, 2025, 18:45 Ernesto Reinaldo Barreiro <re...@gmail.com>
wrote:

> Hi,
>
> Over the years I have heard of similar ideas... and I also implemented some
> "factory thing" that was able to create some CRUD form out of some
> annotated Hibernate JPA/POJO for some private project: I remember it was
> Spring based too...
>
> I think there was also some apache project exploring such ideas. Maybe
> other wicket developers can remember if this is correct?
>
> On Wed, Apr 16, 2025 at 4:27 AM andrew goh <go...@yahoo.com.invalid>
> wrote:
>
> > While I'm learning the ropes of Apache Wicket currently and I'm
> > exploring making reusable components.
> >
> > I tried making An Apache Wicket reusable Data List
> >
> > This component displays a list of JavaBeans as a html table
> >
> > DataListPanel takes as input in the constructor :
> >
> > the wicket:id of the component
> > itemclass The java class of the JavaBean
> > List items the list of JavaBeans
> >
> > https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
> >
> > This version is pretty rough as I'm trying out a 'proof of concept' test.
> > it actually works, rendering the list of JavaBeans as a html table.
> >
> > I used an often 'neglected' java package java.beans, technology Javabeans
> > https://en.wikipedia.org/wiki/JavaBeans
> >
> >
> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
> > practically as 'old' as Java itself.
> >
> > It is probably quite interesting as many database interfaces basically
> > use JavaBeans to represent the records and as well used in forms.
> > This practically makes the task of displaying records in a (html) table
> > done using a reusable component.
> >
> > It is likely possible to implement similar setup say with
> > spring-framework, spring-boot and templates, but that Apache Wicket
> > makes the codes and templates very concise.
> > The magic is implemented by the repeating views
> >
> >
> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component
> > and java.beans itself which I get the 'field' (beaninfo) names and java
> > reflection retrieval.
> >
> > I think it is likely feasible to implement such reusable pages as form
> > components too, i.e. give a form a JavaBean it renders it and
> > handles/process it with database CRUD and all.
> >
> > Cheers,
> >    Andrew
> >
> >
> >
>
> --
> Regards - Ernesto Reinaldo Barreiro
>

Re: An Apache Wicket reusable Data List

Posted by Ernesto Reinaldo Barreiro <re...@gmail.com>.
Hi,

Over the years I have heard of similar ideas... and I also implemented some
"factory thing" that was able to create some CRUD form out of some
annotated Hibernate JPA/POJO for some private project: I remember it was
Spring based too...

I think there was also some apache project exploring such ideas. Maybe
other wicket developers can remember if this is correct?

On Wed, Apr 16, 2025 at 4:27 AM andrew goh <go...@yahoo.com.invalid>
wrote:

> While I'm learning the ropes of Apache Wicket currently and I'm
> exploring making reusable components.
>
> I tried making An Apache Wicket reusable Data List
>
> This component displays a list of JavaBeans as a html table
>
> DataListPanel takes as input in the constructor :
>
> the wicket:id of the component
> itemclass The java class of the JavaBean
> List items the list of JavaBeans
>
> https://gist.github.com/ag88/a0232510c28b4c45b82943527b7ea87e
>
> This version is pretty rough as I'm trying out a 'proof of concept' test.
> it actually works, rendering the list of JavaBeans as a html table.
>
> I used an often 'neglected' java package java.beans, technology Javabeans
> https://en.wikipedia.org/wiki/JavaBeans
>
> https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/
> practically as 'old' as Java itself.
>
> It is probably quite interesting as many database interfaces basically
> use JavaBeans to represent the records and as well used in forms.
> This practically makes the task of displaying records in a (html) table
> done using a reusable component.
>
> It is likely possible to implement similar setup say with
> spring-framework, spring-boot and templates, but that Apache Wicket
> makes the codes and templates very concise.
> The magic is implemented by the repeating views
>
> https://nightlies.apache.org/wicket/guide/9.x/single.html#_the_repeatingview_component
> and java.beans itself which I get the 'field' (beaninfo) names and java
> reflection retrieval.
>
> I think it is likely feasible to implement such reusable pages as form
> components too, i.e. give a form a JavaBean it renders it and
> handles/process it with database CRUD and all.
>
> Cheers,
>    Andrew
>
>
>

-- 
Regards - Ernesto Reinaldo Barreiro