Hi,

On Tue, Oct 6, 2026 at 8:39 AM Martin Grigorov <[email protected]> wrote:

> Hi Ernesto!
>
> On Mon, Oct 5, 2026 at 5:08 PM Ernesto Reinaldo Barreiro <
> [email protected]>
> wrote:
>
> > Ernesto Reinaldo Barreiro <[email protected]>
> > 7:35 AM (1 hour ago)
> > to dev
> > Hi all,
> >
> >   I have been working on a set of additions to wicket-extensions, in the
> > pull request https://github.com/apache/wicket/pull/1637. The pull
> request
> > is a work in progress (still a draft), and many more changes will follow.
> > Still, I would like early feedback on both the components themselves and
> > whether they belong in wicket-extensions in their current form.
> >
>
> Back in the day there was a (reasonable) resistance to add more components
> to wicket-extensions because almost every application has different
> requirements.
> Even a simple drop-down is not that simple. There are dozens of JS widgets
> like Select2 out there just because they need something different.
>

Most applications require unique features, and many need common features
that Wicket does not provide.
And in many cases those JavaScript frameworks were not designed to be
Wicket-like.
Or existing libraries get obsolete. Like e.g. libraries used by jQueryUI.
Then you need to hunt down available replacements and contact the
developers
and hope they will fix this and that.

The components I'm building or changing aren't because I wish to build
them, but rather because my current customer requires them (or will benefit
a lot if they are available).
To be honest right now their APP is a mesh of different components from
various libraries, sometimes not always very compatible with each other.
E.g., jQueryUI autocomplete and select2 are completely different things and
we need both use cases.


>
> I can foresee someone filing an issue to add support for infinite loading
> to the dynamic table. Or any other more complex functionality.
>

And why not? We want Wicket to rock again.


>
> The agreement was to make Wicket easy to integrate with any JavaScript
> widget. There were integrations with DojoJS, YahooUI, jQueryUI, ... during
> the years.
>

And this will stay so. Only core components and new ones will be better,
making life easier for companies using Wicket.
The agreement existed when AI was not around and creating and maintaining
things was a nightmare.
I will gladly move this "library" to some other place (not Wicket-stuff)
and maintain it myself. I will gladly add
any other Wicket committer who want to contribute as developers. This will
only make my life a little
bit more difficult. I think I will do so. And then I do not need to wait
for Wicket 12 to release it:
I could release a preview for Wicket 12.


>
> My 2c.
>

Thanks. Much appreciated. And Thanks again for core modern Wicket!


> Martin
>
>
>
> >
> >   Everything is new API for 11.0.0 (@since 11.0.0), works under a strict
> > Content Security Policy (no inline script or style anywhere), and comes
> > with WicketTester tests, QUnit tests and examples. mvn clean verify
> > -Pjs-test is green. The branch has ten commits, each one usable and
> > reviewable on its own:
> >
> >   1. DynamicDataTable, with ProgressBar and ResizableColumnsBehavior (
> > https://github.com/apache/wicket/issues/1635)
> >      A table that renders only the <table> and its header on the server.
> > The rows come as JSON from the table's own endpoint, or are pushed over a
> > web socket, and every cell is a column template evaluated in the browser
> (a
> > small built-in {{path}} engine, or Handlebars). Actions in the cells are
> > plain markup
> >      dispatched by the table, which looks the row up by its key, so a
> click
> > on a row that changed or went away since it was rendered no longer
> targets
> > a component that does not exist. Features:
> >      - paging, sorting, typed row keys and a selection kept on the server
> > (including "select all rows of the provider")
> >      - toolbars like DataTable's, a slot for a filter, CSV export
> >      - an overlay for edit forms and confirmations, and a veil while the
> > table's requests run
> >      - icon row actions and toolbar actions (any IIcon, see 6.)
> >      - resizable, movable (mouse, pen and touch) and hideable columns.
> The
> > layout can be kept through a pluggable IColumnStateStore (session,
> > database, ...), with columns identified by unique ids.
> >      - pushing single rows, pages or refreshes from background threads
> >      - ProgressBar: a native <progress> with a label, striped,
> > indeterminate when the value is null; also usable as a column
> >      - ResizableColumnsBehavior also works for a plain DataTable.
> >
> >      The column templates are trusted markup authored by the developer;
> the
> > Javadoc says so where it matters.
> >   2. Two fixes found on the way
> >      - The veil script could not be compiled by a second build without
> > clean (https://github.com/apache/wicket/issues/1631).
> >      - The web socket setup script still called jQuery.extend, so a
> > WebSocketBehavior failed on a page without jQuery (
> > https://github.com/apache/wicket/issues/1640).
> >   3. CollapsiblePanel (https://github.com/apache/wicket/issues/1636)
> >      A title and a body the user can expand and collapse, rendered as
> > native <details>/<summary>: works without JavaScript and is keyboard
> > accessible. It can report every toggle via Ajax, so the panel keeps the
> > user's choice when it is rendered again.
> >   4. FloatingPanel
> >      A window with a title bar, a close button and any body, for content
> > shown on top of a page or a component, such as an edit form.
> >   5. ClipboardCopyBehavior
> >      Copies a text to the clipboard on a click or double click and shows
> a
> > check mark. It also works for markup rendered in the browser
> > (data-wicket-copy attributes).
> >   6. Icons: IIcon, SvgIcon and FontAwesomeIcon
> >      IIcon is an icon that renders its own markup, so components can take
> > any icon. FontAwesomeIcon has the 2001 solid icons of Font Awesome Free
> as
> > CSS class names, and SvgIcon has the same icons as inline SVG, needing no
> > font or style sheet.
> >
> >      Licensing: the icons are CC BY 4.0, which is Category B. Wicket
> ships
> > no Font Awesome content: SvgIcon reads the SVGs at runtime from the Font
> > Awesome web jar the application puts on its class path. Only the examples
> > bundle the web jar, and they name it in their NOTICE and, through
> > appended-resources, in
> >      their LICENSE. I would appreciate a second pair of eyes on this
> part.
> >   7. Shared color themes (https://github.com/apache/wicket/issues/1638)
> >      The colors are CSS custom properties (--wicket-theme-*), defined
> once
> > by a theme class. Eight themes ship (including a dark one), and
> > ThemeBehavior puts a theme on a page or a single component. An
> application
> > defines its own theme as a CSS class setting the same properties.
> > Components read the properties
> >      only inside a theme, so an application that does not use themes sees
> > no change.
> >   8. The themes in more components (
> > https://github.com/apache/wicket/issues/1645, part of
> > https://github.com/apache/wicket/issues/1639)
> >      ModalDialog's DefaultTheme, AutoCompleteTextField, TabbedPanel
> (with a
> > new opt-in TabsStyleBehavior: tabs, pills or underline) and
> > UploadProgressBar follow the themes. The only visible change for existing
> > applications is that UploadProgressBar now renders the ProgressBar's bar,
> > so CSS written for its old
> >      .wupb-* elements no longer applies. The commit message describes how
> > to keep the old look. DataTable, Palette, the trees and a few others
> remain
> > open in https://github.com/apache/wicket/issues/1639.
> >   9. Examples
> >      An "Extensions" index on the home page gathers the examples built on
> > wicket-extensions. The DynamicDataTable example runs over a thousand
> > contacts with live progress bars, editing, deleting, a jCard download,
> > column chooser, movable columns and a persisted layout. There is an Icons
> > page, and a theme editor
> >      that edits a theme's colors with a live preview and gives the CSS
> > class to copy. The ajax examples of the themed components have a theme
> > drop-down.
> >
> >   Questions for the list:
> >   - Is this the right home for these components, and is one pull request
> > fine, or would you rather review them as separate pull requests (one per
> > commit, more or less)?
> >   - Is the Font Awesome / CC BY 4.0 handling acceptable under the ASF
> > third-party policy, and should the examples' LICENSE list their other
> > bundled libraries (jQuery, ...) as well?
> >   - Any concerns about the names and packages
> > (org.apache.wicket.extensions.theme, ...markup.html.icon,
> > ...repeater.data.table.dynamic, ...), or about defaults such as the table
> > keeping no column layout unless a store is set?
> >
> >   Thanks in advance for any feedback.
> >
> > --
> > Regards -
> > Ernesto Reinaldo Barreiro
> > Apache Wicket Committer
> > Emerging artist
> > https://www.instagram.com/reinaldo.barreiro.art/
> >
>


-- 
Regards -
Ernesto Reinaldo Barreiro
Apache Wicket Committer
Emerging artist
https://www.instagram.com/reinaldo.barreiro.art/

Reply via email to