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); |
|