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.Composite;
import com.google.gwt.user.client.ui.TextBox;
import fr.lteconsulting.hexa.client.ui.search.ValueUI;
import fr.lteconsulting.hexa.client.ui.search.ValueUIFactory;
public class UIValueInteger extends Composite implements ValueUI
{
TextBox tb = new TextBox();
private UIValueInteger( boolean fReadOnly )
{
tb.setEnabled( !fReadOnly );
initWidget( tb );
}
@Override
public void setValue( JSONValue json )
{
tb.setText( String.valueOf( ((int) json.isNumber().doubleValue()) ) );
}
@Override
public JSONValue getValue()
{
try
{
return new JSONNumber( Integer.parseInt( tb.getText() ) );
}
catch( Exception e )
{
return new JSONNumber( 0 );
}
}
private static ValueUIFactory factory = new ValueUIFactory()
{
@Override
public ValueUI create( boolean fReadOnly )
{
return new UIValueInteger( fReadOnly );
}
};
public static ValueUIFactory factory()
{
return factory;
}
}