diff --git a/src/main/java/fi/lpam/ruokamanageri/gui/KuljetusListat.java b/src/main/java/fi/lpam/ruokamanageri/gui/KuljetusListat.java index 498f677..4dbe051 100644 --- a/src/main/java/fi/lpam/ruokamanageri/gui/KuljetusListat.java +++ b/src/main/java/fi/lpam/ruokamanageri/gui/KuljetusListat.java @@ -3,7 +3,8 @@ package fi.lpam.ruokamanageri.gui; import fi.lpam.ruokamanageri.dataluokat.Asiakas; import fi.lpam.ruokamanageri.dataluokat.Kierros; import fi.lpam.ruokamanageri.dataluokat.Kuljetus; -import fi.lpam.ruokamanageri.gui.elementit.KuljetaTableCell; +import fi.lpam.ruokamanageri.gui.elementit.tableCell.IntegerFieldTableCellFactory; +import fi.lpam.ruokamanageri.gui.elementit.tableCell.KuljetaTableCell; import fi.lpam.ruokamanageri.tulostajat.KuljetusListaTulostaja; import fi.lpam.ruokamanageri.gui.elementit.MaaraTableColumn; import fi.lpam.ruokamanageri.gui.elementit.TabPohja; @@ -13,7 +14,6 @@ import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.geometry.Pos; import javafx.scene.control.*; -import javafx.scene.control.cell.ChoiceBoxTableCell; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.control.cell.TextFieldTableCell; import javafx.scene.layout.BorderPane; @@ -109,17 +109,17 @@ public class KuljetusListat extends TabPohja { tcOsoite.setOnEditCommit((TableColumn.CellEditEvent event) -> {event.getTableView().getItems().get(event.getTablePosition().getRow()).setOsoite(event.getNewValue()); tallennusStatus.setText("Tallennettu: Ei");}); TableColumn tcSalaatit = new MaaraTableColumn<>("Salaatit", 100); - tcSalaatit.setCellFactory(ChoiceBoxTableCell.forTableColumn(määräVaihtoehdot)); + tcSalaatit.setCellFactory(new IntegerFieldTableCellFactory<>()); tcSalaatit.setCellValueFactory(new PropertyValueFactory<>("salaatit")); tcSalaatit.setOnEditCommit((TableColumn.CellEditEvent event) -> {event.getTableView().getItems().get(event.getTablePosition().getRow()).setSalaatit(event.getNewValue()); tallennusStatus.setText("Tallennettu: Ei");}); TableColumn tcPääruoat = new MaaraTableColumn<>("Pääruoat", 100); - tcPääruoat.setCellFactory(ChoiceBoxTableCell.forTableColumn(määräVaihtoehdot)); + tcPääruoat.setCellFactory(new IntegerFieldTableCellFactory<>()); tcPääruoat.setCellValueFactory(new PropertyValueFactory<>("pääruoat")); tcPääruoat.setOnEditCommit((TableColumn.CellEditEvent event) -> {event.getTableView().getItems().get(event.getTablePosition().getRow()).setPääruoat(event.getNewValue()); tallennusStatus.setText("Tallennettu: Ei");}); TableColumn tcJälkiruoat = new MaaraTableColumn<>("Jälkiruoat", 100); - tcJälkiruoat.setCellFactory(ChoiceBoxTableCell.forTableColumn(määräVaihtoehdot)); + tcJälkiruoat.setCellFactory(new IntegerFieldTableCellFactory<>()); tcJälkiruoat.setCellValueFactory(new PropertyValueFactory<>("jälkiruoat")); tcJälkiruoat.setOnEditCommit((TableColumn.CellEditEvent event) -> {event.getTableView().getItems().get(event.getTablePosition().getRow()).setJälkiruoat(event.getNewValue()); tallennusStatus.setText("Tallennettu: Ei");}); diff --git a/src/main/java/fi/lpam/ruokamanageri/gui/KuljetusRaportit.java b/src/main/java/fi/lpam/ruokamanageri/gui/KuljetusRaportit.java index 58110bd..0ae92fd 100644 --- a/src/main/java/fi/lpam/ruokamanageri/gui/KuljetusRaportit.java +++ b/src/main/java/fi/lpam/ruokamanageri/gui/KuljetusRaportit.java @@ -2,7 +2,7 @@ package fi.lpam.ruokamanageri.gui; import fi.lpam.ruokamanageri.dataluokat.RaporttiRivi; import fi.lpam.ruokamanageri.tulostajat.KuljetusRaporttiTulostaja; -import fi.lpam.ruokamanageri.gui.elementit.PaivamaaraTableCell; +import fi.lpam.ruokamanageri.gui.elementit.tableCell.PaivamaaraTableCell; import fi.lpam.ruokamanageri.gui.elementit.TabPohja; import javafx.collections.FXCollections; import javafx.geometry.Pos; diff --git a/src/main/java/fi/lpam/ruokamanageri/gui/elementit/MaaraTableColumn.java b/src/main/java/fi/lpam/ruokamanageri/gui/elementit/MaaraTableColumn.java index 2356ddf..0218bfa 100644 --- a/src/main/java/fi/lpam/ruokamanageri/gui/elementit/MaaraTableColumn.java +++ b/src/main/java/fi/lpam/ruokamanageri/gui/elementit/MaaraTableColumn.java @@ -1,8 +1,6 @@ package fi.lpam.ruokamanageri.gui.elementit; -import javafx.scene.control.TableCell; import javafx.scene.control.TableColumn; -import javafx.util.Callback; public class MaaraTableColumn extends TableColumn { public MaaraTableColumn(String columnLabel, int width) { diff --git a/src/main/java/fi/lpam/ruokamanageri/gui/elementit/tableCell/IntegerFieldTableCellFactory.java b/src/main/java/fi/lpam/ruokamanageri/gui/elementit/tableCell/IntegerFieldTableCellFactory.java new file mode 100644 index 0000000..4e673c5 --- /dev/null +++ b/src/main/java/fi/lpam/ruokamanageri/gui/elementit/tableCell/IntegerFieldTableCellFactory.java @@ -0,0 +1,30 @@ +package fi.lpam.ruokamanageri.gui.elementit.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 implements Callback, TableCell> { + @Override + public TableCell call(TableColumn 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; + } + } + }; + } +} \ No newline at end of file diff --git a/src/main/java/fi/lpam/ruokamanageri/gui/elementit/KuljetaTableCell.java b/src/main/java/fi/lpam/ruokamanageri/gui/elementit/tableCell/KuljetaTableCell.java similarity index 96% rename from src/main/java/fi/lpam/ruokamanageri/gui/elementit/KuljetaTableCell.java rename to src/main/java/fi/lpam/ruokamanageri/gui/elementit/tableCell/KuljetaTableCell.java index 8d614e8..75f92a1 100644 --- a/src/main/java/fi/lpam/ruokamanageri/gui/elementit/KuljetaTableCell.java +++ b/src/main/java/fi/lpam/ruokamanageri/gui/elementit/tableCell/KuljetaTableCell.java @@ -1,4 +1,4 @@ -package fi.lpam.ruokamanageri.gui.elementit; +package fi.lpam.ruokamanageri.gui.elementit.tableCell; import fi.lpam.ruokamanageri.dataluokat.Asiakas; import fi.lpam.ruokamanageri.dataluokat.Kuljetus; diff --git a/src/main/java/fi/lpam/ruokamanageri/gui/elementit/PaivamaaraTableCell.java b/src/main/java/fi/lpam/ruokamanageri/gui/elementit/tableCell/PaivamaaraTableCell.java similarity index 92% rename from src/main/java/fi/lpam/ruokamanageri/gui/elementit/PaivamaaraTableCell.java rename to src/main/java/fi/lpam/ruokamanageri/gui/elementit/tableCell/PaivamaaraTableCell.java index c8b2f0e..2993c3c 100644 --- a/src/main/java/fi/lpam/ruokamanageri/gui/elementit/PaivamaaraTableCell.java +++ b/src/main/java/fi/lpam/ruokamanageri/gui/elementit/tableCell/PaivamaaraTableCell.java @@ -1,4 +1,4 @@ -package fi.lpam.ruokamanageri.gui.elementit; +package fi.lpam.ruokamanageri.gui.elementit.tableCell; import fi.lpam.ruokamanageri.dataluokat.RaporttiRivi; import javafx.scene.control.TableCell;