Hi team,

Not every model is detachable, but right now all models extends from
IDetachable because this contract is forced to any implementation for
IModel.

The only way users have to communicate their model isn't detachable, for
their own purpose, is by creating their own mechanism; but I think
IDetachable interface should serve its purpose and to mark / be extended by
detachable models, like documented in its own javadoc.

I did the changes necessary for this improvement in the branch
'not-detachable' at [1], and hope you can give your input. While working on
the branch I noticed a few problems in Wicket's code and already added a
fix:

- LabeledWebMarkupContainer called wrapped model detach twice (fixed)

- SessionSizeModel has no detach logic but was being detached at
SessionSizeDebugPanel (fixed)

- The following classes had anonymous model wrappers that weren't extending
from IWrapModel, that would better communicates their purpose(fixed):
LambdaColumn, IModel, LambdaModel, AjaxEditableLabel, LambdaColumn

1 - https://github.com/pedrosans/wicket/tree/not-detachable

Pedro Santos

Reply via email to