myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mario Ivankovits (JIRA)" <...@myfaces.apache.org>
Subject [jira] Commented: (MYFACES-1023) inputCalendar with CalendarConverter loses value data
Date Fri, 17 Feb 2006 10:37:25 GMT
    [ http://issues.apache.org/jira/browse/MYFACES-1023?page=comments#action_12366768 ] 

Mario Ivankovits commented on MYFACES-1023:
-------------------------------------------

I think the problem with the joda converter is it do not implement the DateConverter (also
introduced by me ;) ) interface.


For the inputCalender thing I use a simpler converter:

package com.ops.OPSJ.jsflib;

import java.util.Date;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;

import org.apache.myfaces.custom.calendar.HtmlCalendarRenderer;
import org.apache.myfaces.renderkit.RendererUtils;
import org.joda.time.DateTime;

public class DateTimeConverter extends HtmlCalendarRenderer.CalendarDateTimeConverter
{
	public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String s)
	{
		Date date = (Date) super.getAsObject(facesContext, uiComponent, s);
		if (date == null)
		{
			return null;
		}
		
		return new DateTime(date);
	}

	public Date getAsDate(FacesContext facesContext, UIComponent uiComponent)
	{
		Object value = RendererUtils.getObjectValue(uiComponent);
		if (value instanceof DateTime)
		{
			return ((DateTime) value).toDate();
		}

		throw new IllegalArgumentException("Expected submitted value of type DateTime for component
: "
			+RendererUtils.getPathToComponent(uiComponent));
	}

	public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object o)
	{
		if (o == null)
		{
			return null;
		}

		if (o instanceof String)
		{
			return (String) o;
		}

		Date date;
		if (o instanceof Date)
		{
			date = (Date) o;
		}
		else
		{
			date = ((DateTime) o).toDate();
		}

		return super.getAsString(facesContext, uiComponent, date);
	}
}


> inputCalendar with CalendarConverter loses value data
> -----------------------------------------------------
>
>          Key: MYFACES-1023
>          URL: http://issues.apache.org/jira/browse/MYFACES-1023
>      Project: MyFaces
>         Type: Bug
>   Components: Tomahawk
>     Versions: 1.1.1
>  Environment: windows xp pro
>     Reporter: Sven Vogt

>
> When I set a Converter for java.util.Calendar to inputCalendar, the value will not be
rendered.
> <t:inputCalendar id="calendar_1"
> 	         value="#{exampleInputBean.calendar}"
> 	         renderAsPopup="true">
> 	<f:converter converterId="de.orgaplan.faces.CalendarConverter" />
> </t:inputCalendar>
> Because the HtmlCalendarRenderer throws an IllegalArgumentException and set the value
to null.
> My Converter is not an Instance of DateConverter.
>         Date value;
>         try
>         {
>             // value = RendererUtils.getDateValue(inputCalendar);
>             Converter converter = getConverter(inputCalendar);
>             if (converter instanceof DateConverter)
>             {
>                 value = ((DateConverter) converter).getAsDate(facesContext, component);
>             }
>             else
>             {
>                 value = RendererUtils.getDateValue(inputCalendar);
>             }
> 		}
>         catch (IllegalArgumentException illegalArgumentException)
>         {
>             value = null;
>         }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message