Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1617 → Rev 1618

/trunk/src/org/tela_botanica/client/vues/collection/CollectionFormDescription.java
67,6 → 67,7
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.i18n.client.NumberFormat;
 
public class CollectionFormDescription extends FormulaireOnglet implements Rafraichissable {
181,6 → 182,70
return precisionCombo;
}
/**
* La classe NumberField est sujette à un bug qui empeche son
* édition dans firefox, il faut donc la surcharger
**/
private NumberField creerNumberFieldWorkaround() {
NumberField champNombre = new NumberField() {
@Override
protected void onKeyDown( FieldEvent fe )
{
super.onKeyDown( fe ) ;
int keyCode = fe.getKeyCode( ) ;
 
if( keyCode == 0 )
{
keyCode = fe.getEvent( ).getCharCode( ) ;
}
 
_setLasKeyCode( keyCode ) ;
}
 
@Override
protected void onKeyPress( FieldEvent fe )
{
fireEvent( Events.KeyPress, new FieldEvent( this, fe.getEvent( ) ) ) ;
 
int keyCode = fe.getKeyCode( ) ;
 
char key = ( char )keyCode ;
 
if( keyCode == 0 )
{
key = ( char )fe.getEvent( ).getCharCode( ) ;
}
 
if( fe.isSpecialKey( _getLasKeyCode( ) )
|| _getLasKeyCode( ) == KeyCodes.KEY_BACKSPACE
|| _getLasKeyCode( ) == KeyCodes.KEY_DELETE
|| fe.isControlKey( ) )
{
return ;
}
 
if( !_getAllowed( ).contains( key ) )
{
fe.stopEvent( ) ;
}
}
 
private native int _getLasKeyCode( ) /*-{
return this.@com.extjs.gxt.ui.client.widget.form.NumberField::lastKeyCode ;
}-*/;
 
private native void _setLasKeyCode( int keycode ) /*-{
this.@com.extjs.gxt.ui.client.widget.form.NumberField::lastKeyCode = keycode ;
}-*/;
 
private native List<Character> _getAllowed( ) /*-{
return this.@com.extjs.gxt.ui.client.widget.form.NumberField::allowed ;
}-*/;
};
return champNombre;
}
private void creerFieldSetTypesUnite() {
FieldSet typesUniteFieldSet = new FieldSet();
typesUniteFieldSet.setHeading(i18nC.collectionUniteType());
232,9 → 297,9
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
colonnes.add(new ColumnConfig("type", i18nC.collectionUniteType(), 150));
NumberField champNombre = new NumberField();
NumberField champNombre = creerNumberFieldWorkaround();
champNombre.setFormat(NumberFormat.getFormat("#"));
//TextField<String> champNombre = new TextField<String>();
ColumnConfig nombreColonne = new ColumnConfig("nombre", i18nC.collectionUniteNbre(), 50);
nombreColonne.setEditor(new CellEditor(champNombre));
nombreColonne.setNumberFormat(NumberFormat.getFormat("#"));
470,7 → 535,7
List<ColumnConfig> colonnes = new ArrayList<ColumnConfig>();
colonnes.add(new ColumnConfig("type", i18nC.collectionUniteType(), 150));
NumberField champNombre = new NumberField();
NumberField champNombre = creerNumberFieldWorkaround();
champNombre.setFormat(NumberFormat.getFormat("#"));
CellEditor editeurNombre = new CellEditor(champNombre);