package fr.lteconsulting.hexa.client.ui.search.uivalues; import com.google.gwt.json.client.JSONNumber; import com.google.gwt.json.client.JSONValue; import com.google.gwt.user.client.ui.CheckBox; import com.google.gwt.user.client.ui.Composite; import fr.lteconsulting.hexa.client.ui.search.ICriteriaMng; import fr.lteconsulting.hexa.client.ui.search.StandardNoOpCriteriaMng; import fr.lteconsulting.hexa.client.ui.search.ValueUI; public class UIValueBoolean extends Composite implements ValueUI { CheckBox cb = new CheckBox(); private UIValueBoolean( boolean fReadOnly ) { cb.setEnabled( !fReadOnly ); initWidget( cb ); } @Override public void setValue( JSONValue json ) { if( json == null ) cb.setValue( false ); else cb.setValue( ((int) json.isNumber().doubleValue()) > 0 ? true : false ); } @Override public JSONValue getValue() { try { return new JSONNumber( cb.getValue() ? 1 : 0 ); } catch( Exception e ) { return new JSONNumber( 0 ); } } public static ICriteriaMng createCriteriaMng( String displayName, String fieldName ) { return new StandardNoOpCriteriaMng( displayName, fieldName ) { @Override public ValueUI factory( boolean fReadOnly ) { return new UIValueBoolean( fReadOnly ); } }; } }