package fr.lteconsulting.hexa.client.form.fieldtypes;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
import fr.lteconsulting.hexa.client.common.HexaDate;
import fr.lteconsulting.hexa.client.form.marshalls.Marshalls;
import fr.lteconsulting.hexa.client.other.DateViewImpl;
import fr.lteconsulting.hexa.client.other.SelectionHandler;
public class BirthDateFieldType extends FieldTypeBase
{
class DateWidget extends Composite
{
DateViewImpl impl = new DateViewImpl();
DateWidget()
{
initWidget( impl.asWidget() );
}
void installRealHandler()
{
impl.getChangeHandlerMng().addSelectionhandler( new SelectionHandler<HexaDate>()
{
public void onSelected( HexaDate selected )
{
signalChange( DateWidget.this );
}
} );
}
}
public Widget getWidget()
{
return new DateWidget();
}
@Override
public void setValue( Widget widget, JSONValue value )
{
((DateWidget) widget).impl.setData( Marshalls.date.get( value ) );
}
@Override
public JSONValue getValue( Widget widget )
{
return Marshalls.date.get( ((DateWidget) widget).impl.getDate() );
}
@Override
protected void installRealHandler( Widget widget )
{
((DateWidget) widget).installRealHandler();
}
}