c2942a7455
Signed-off-by: laurimaaninka <lauri.maaninka@gmail.com>
30 lines
1.0 KiB
Java
30 lines
1.0 KiB
Java
package fi.lpam.gui.tableCell;
|
|
|
|
import javafx.scene.control.TableCell;
|
|
import javafx.scene.control.TableColumn;
|
|
import javafx.scene.control.cell.TextFieldTableCell;
|
|
import javafx.scene.input.KeyEvent;
|
|
import javafx.util.Callback;
|
|
import javafx.util.converter.IntegerStringConverter;
|
|
|
|
public class IntegerFieldTableCellFactory<T> implements Callback<TableColumn<T, Integer>, TableCell<T, Integer>> {
|
|
@Override
|
|
public TableCell<T, Integer> call(TableColumn<T, Integer> param ) {
|
|
return new TextFieldTableCell<>(new IntegerStringConverter()) {
|
|
private boolean filterSet = false;
|
|
|
|
@Override
|
|
public void startEdit() {
|
|
super.startEdit();
|
|
if (!filterSet) {
|
|
getGraphic().addEventFilter(KeyEvent.KEY_TYPED, KE -> {
|
|
if (!"0123456789".contains(KE.getCharacter())) {
|
|
KE.consume();
|
|
}
|
|
});
|
|
filterSet = true;
|
|
}
|
|
}
|
|
};
|
|
}
|
|
} |