You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Johan Compagner (JIRA)" <ji...@apache.org> on 2007/11/03 14:01:51 UTC

[jira] Closed: (WICKET-1117) FormComponent.setType is called in AbstractTextComponent.onBeforeRender

     [ https://issues.apache.org/jira/browse/WICKET-1117?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Johan Compagner closed WICKET-1117.
-----------------------------------

    Resolution: Fixed

instead of getType() == null we have now !getFlag(TYPE_RESOLVED)

> FormComponent.setType is called in AbstractTextComponent.onBeforeRender
> -----------------------------------------------------------------------
>
>                 Key: WICKET-1117
>                 URL: https://issues.apache.org/jira/browse/WICKET-1117
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket
>    Affects Versions: 1.3.0-beta4
>         Environment: Linux
>            Reporter: Bruno Borges
>            Assignee: Johan Compagner
>             Fix For: 1.3.0-beta5
>
>
> The method FormComponent.setType() is called in onBeforeRender() and this will happen everytime, without having changes in the Model.
> The only way I see to change the Model's Component,  is calling setModel().
> So, my suggestion is to override Component.setModel in AsbtractTextComponent calling super.setModel, and after that update the type.
> public Component setModel(final IModel model)
> {
>     Component component = super.setModel(model);
>     updateType();
>     return component;
> }
> protected void updateType()
> {
> 	if (getType() == null)
> 	{
> 		// Set the type, but only if it's not a String (see WICKET-606).
> 		// Otherwise, getConvertEmptyInputStringToNull() won't work.
> 		Class type = getModelType(getModel());
> 		if (!String.class.equals(type))
> 		{
> 			setType(type);
> 		}
> 	}
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.