You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Guillaume Smet (JIRA)" <ji...@apache.org> on 2014/03/19 17:55:47 UTC
[jira] [Created] (WICKET-5538) When using
Component.setDefaultModel, only detach the previous model if the new one is
different
Guillaume Smet created WICKET-5538:
--------------------------------------
Summary: When using Component.setDefaultModel, only detach the previous model if the new one is different
Key: WICKET-5538
URL: https://issues.apache.org/jira/browse/WICKET-5538
Project: Wicket
Issue Type: Improvement
Components: wicket
Reporter: Guillaume Smet
Priority: Minor
>From my post on the list:
{quote}
Hi,
I don't see the point of detaching the prevModel if the model is not changing.
I was thinking about changing the logic of Component.setDefaultModel like that:
public Component setDefaultModel(final IModel<?> model)
{
IModel<?> prevModel = getModelImpl();
IModel<?> wrappedModel = prevModel;
if (prevModel instanceof IWrapModel)
{
wrappedModel = ((IWrapModel<?>)prevModel).getWrappedModel();
}
// Change model
if (wrappedModel != model)
{
// Detach current model only if we really change the model
if (prevModel != null)
{
prevModel.detach();
}
modelChanging();
setModelImpl(wrap(model));
modelChanged();
}
return this;
}
Note that it's something that hurts us a lot in a particular pattern
we have here. We change the default model in onConfigure and every
time we do it it's detached even if it's the exact same model.
We could add a check in our code but I'm thinking it could be better
to do it in Wicket directly.
Thoughts?
{quote}
--
This message was sent by Atlassian JIRA
(v6.2#6252)