diff --git a/src/main/java/fi/lpam/ruokamanageri/gui/AsiakasIkkuna.java b/src/main/java/fi/lpam/ruokamanageri/gui/AsiakasIkkuna.java index 2501ed8..4e62bda 100644 --- a/src/main/java/fi/lpam/ruokamanageri/gui/AsiakasIkkuna.java +++ b/src/main/java/fi/lpam/ruokamanageri/gui/AsiakasIkkuna.java @@ -30,7 +30,12 @@ public class AsiakasIkkuna extends Stage { */ public AsiakasIkkuna(Asiakas käsiteltäväAsiakas) { this.käsiteltäväAsiakas = käsiteltäväAsiakas; - this.setTitle("Asiakasikkuna"); + if (käsiteltäväAsiakas.getNimi() != null) { + this.setTitle(käsiteltäväAsiakas.getNimi()); + } + else { + this.setTitle("Uusi asiakas"); + } TabPane tabPane = new TabPane(); tabPane.setSide(Side.LEFT); diff --git a/src/main/java/fi/lpam/ruokamanageri/gui/Asiakashallinta.java b/src/main/java/fi/lpam/ruokamanageri/gui/Asiakashallinta.java index 4c962f4..bd5d502 100644 --- a/src/main/java/fi/lpam/ruokamanageri/gui/Asiakashallinta.java +++ b/src/main/java/fi/lpam/ruokamanageri/gui/Asiakashallinta.java @@ -83,11 +83,11 @@ public class Asiakashallinta extends TabPohja { }); root.setCenter(tvAsiakkaat); + TableColumn tcId = new TableColumn<>("Id"); + tcId.setCellValueFactory(new PropertyValueFactory<>("id")); TableColumn tcNimi = new TableColumn<>("Nimi"); - tcNimi.setMinWidth(180); tcNimi.setCellValueFactory(new PropertyValueFactory<>("nimi")); TableColumn tcOsoite = new TableColumn<>("Osoite"); - tcOsoite.setMinWidth(250); tcOsoite.setCellValueFactory(new PropertyValueFactory<>("osoite")); int minWidth = 40; @@ -109,42 +109,42 @@ public class Asiakashallinta extends TabPohja { tcKuljetuspäivät.getColumns().addAll(tcMaanantaiKpl, tcTiistaiKpl, tcKeskiviikkoKpl, tcTorstaiKpl, tcPerjantaiKpl, tcLauantaiKpl, tcSunnuntaiKpl); TableColumn> tcKuljetusmäärät = new TableColumn<>("Määrät per kuljetus"); - MaaraTableColumn tcSalaatit = new MaaraTableColumn<>("Salaatit", 80); + MaaraTableColumn tcSalaatit = new MaaraTableColumn<>("Salaatit", minWidth, 150); tcSalaatit.setCellValueFactory(new PropertyValueFactory<>("salaatit")); - MaaraTableColumn tcPääruoat = new MaaraTableColumn<>("Pääruoat", 80); + MaaraTableColumn tcPääruoat = new MaaraTableColumn<>("Pääruoat", minWidth, 150); tcPääruoat.setCellValueFactory(new PropertyValueFactory<>("pääruoat")); - MaaraTableColumn tcJälkiruoat = new MaaraTableColumn<>("Jälkiruoat", 80); + MaaraTableColumn tcJälkiruoat = new MaaraTableColumn<>("Jälkiruoat", minWidth, 150); tcJälkiruoat.setCellValueFactory(new PropertyValueFactory<>("jälkiruoat")); tcKuljetusmäärät.getColumns().addAll(tcSalaatit, tcPääruoat, tcJälkiruoat); TableColumn tcErityisruokavalio = new TableColumn<>("Ruokarajoitteet"); - tcErityisruokavalio.setMinWidth(150); +// tcErityisruokavalio.setMinWidth(150); tcErityisruokavalio.setCellValueFactory(new PropertyValueFactory<>("erityisruokavalio")); TableColumn tcAvainTieto = new TableColumn<>("Avaintieto"); - tcAvainTieto.setMinWidth(150); +// tcAvainTieto.setMinWidth(150); tcAvainTieto.setCellValueFactory(new PropertyValueFactory<>("avainTieto")); TableColumn tcLisätiedot = new TableColumn<>("Lisätieto kuljetukselle"); - tcLisätiedot.setMinWidth(250); +// tcLisätiedot.setMinWidth(250); tcLisätiedot.setCellValueFactory(new PropertyValueFactory<>("lisätiedot")); TableColumn tcYhteyshenkilönNimi = new TableColumn<>("Yhteyshenkilö"); - tcYhteyshenkilönNimi.setMinWidth(250); +// tcYhteyshenkilönNimi.setMinWidth(250); tcYhteyshenkilönNimi.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönNimi")); TableColumn tcLaskutusOsoite = new TableColumn<>("Laskutusosoite"); - tcLaskutusOsoite.setMinWidth(250); +// tcLaskutusOsoite.setMinWidth(250); tcLaskutusOsoite.setCellValueFactory(new PropertyValueFactory<>("laskutusOsoite")); TableColumn tcYhteyshenkilönPuhelinnumero = new TableColumn<>("Yhteyshenkilön puhelinnumero"); - tcYhteyshenkilönPuhelinnumero.setMinWidth(250); +// tcYhteyshenkilönPuhelinnumero.setMinWidth(250); tcYhteyshenkilönPuhelinnumero.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönPuhelinnumero")); TableColumn tcYhteyshenkilönSähköposti = new TableColumn<>("Yhteyshenkilön sähköposti"); - tcYhteyshenkilönSähköposti.setMinWidth(250); +// tcYhteyshenkilönSähköposti.setMinWidth(250); tcYhteyshenkilönSähköposti.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönSähköposti")); - tvAsiakkaat.getColumns().addAll(tcNimi, tcOsoite, tcKuljetuspäivät, tcKuljetusmäärät, tcErityisruokavalio, tcAvainTieto, tcLisätiedot, tcYhteyshenkilönNimi, tcLaskutusOsoite, tcYhteyshenkilönPuhelinnumero, tcYhteyshenkilönSähköposti); + tvAsiakkaat.getColumns().addAll(tcId, tcNimi, tcOsoite, tcKuljetuspäivät, tcKuljetusmäärät, tcErityisruokavalio, tcAvainTieto, tcLisätiedot, tcYhteyshenkilönNimi, tcLaskutusOsoite, tcYhteyshenkilönPuhelinnumero, tcYhteyshenkilönSähköposti); for (TableColumn column : tvAsiakkaat.getColumns()) { column.setEditable(false); column.setReorderable(false); - column.setResizable(false); + column.setResizable(true); column.setStyle("-fx-alignment: CENTER; -fx-font-size: 16px;"); } diff --git a/src/main/java/fi/lpam/ruokamanageri/gui/Kierroshallinta.java b/src/main/java/fi/lpam/ruokamanageri/gui/Kierroshallinta.java index 00f6d97..5a53a6c 100644 --- a/src/main/java/fi/lpam/ruokamanageri/gui/Kierroshallinta.java +++ b/src/main/java/fi/lpam/ruokamanageri/gui/Kierroshallinta.java @@ -12,6 +12,7 @@ import javafx.collections.ObservableList; import javafx.scene.control.Alert; import javafx.scene.control.Button; import javafx.scene.control.Label; +import javafx.scene.control.ScrollPane; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; @@ -47,7 +48,10 @@ public class Kierroshallinta extends TabPohja { yläpalkki.setRight(yläpalkinNapit); Button lisääKierros = new Button("Lisää uusi kierros"); - lisääKierros.setOnAction(_ -> lisaaKierros()); + lisääKierros.setOnAction(_ -> { + int uudenKierroksenNumero = mclv.getColumns().size(); + lisaaKierros(new Kierros(uudenKierroksenNumero, FXCollections.observableArrayList(new ArrayList<>()))); + }); lisääKierros.setFont(TabPohja.buttonFont); yläpalkinNapit.getChildren().add(lisääKierros); @@ -67,14 +71,11 @@ public class Kierroshallinta extends TabPohja { HashSet kierroksellaOlevatAsiakasIDt = new HashSet<>(); if (!kierrokset.isEmpty()) { - for (Kierros k : kierrokset) { - MultiColumnListView.ListViewColumn sarake = new MultiColumnListView.ListViewColumn<>(); - sarake.setHeader(new Label("Kierros " + k.getKierrosNumero())); - sarake.setItems(k.getAsiakkaat()); - for (Asiakas asiakas : k.getAsiakkaat()) { + for (Kierros kierros : kierrokset) { + lisaaKierros(kierros); + for (Asiakas asiakas : kierros.getAsiakkaat()) { kierroksellaOlevatAsiakasIDt.add(asiakas.getId()); } - mclv.getColumns().add(sarake); } } @@ -89,14 +90,12 @@ public class Kierroshallinta extends TabPohja { mclv.getColumns().add(colEiKierroksella); } - private void lisaaKierros() { - int uudenKierroksenNumero = mclv.getColumns().size(); - Kierros lisättäväKierros = new Kierros(uudenKierroksenNumero, FXCollections.observableArrayList(new ArrayList<>())); - kierrokset.add(lisättäväKierros); + private void lisaaKierros(Kierros kierros) { + if (kierros.getId() == -1) kierrokset.add(kierros); MultiColumnListView.ListViewColumn uusiSarake = new MultiColumnListView.ListViewColumn<>(); - uusiSarake.setHeader(new Label("Kierros " + uudenKierroksenNumero)); - uusiSarake.setItems(lisättäväKierros.getAsiakkaat()); - mclv.getColumns().add(uudenKierroksenNumero-1, uusiSarake); + uusiSarake.setHeader(new Label("Kierros " + kierros.getKierrosNumero())); + uusiSarake.setItems(kierros.getAsiakkaat()); + mclv.getColumns().add(kierros.getKierrosNumero()-1, uusiSarake); } private void tallennaKierrokset() { diff --git a/src/main/java/fi/lpam/ruokamanageri/gui/elementit/AsiakasListCell.java b/src/main/java/fi/lpam/ruokamanageri/gui/elementit/AsiakasListCell.java index 02164c9..6a7b370 100644 --- a/src/main/java/fi/lpam/ruokamanageri/gui/elementit/AsiakasListCell.java +++ b/src/main/java/fi/lpam/ruokamanageri/gui/elementit/AsiakasListCell.java @@ -4,6 +4,7 @@ import com.dlsc.gemsfx.MultiColumnListView; import fi.lpam.ruokamanageri.dataluokat.Asiakas; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; +import javafx.geometry.Pos; import javafx.scene.Node; import javafx.scene.control.ContentDisplay; import javafx.scene.control.Label; @@ -14,12 +15,10 @@ import javafx.scene.layout.VBox; public class AsiakasListCell extends MultiColumnListView.ColumnListCell { private final StackPane wrapper; - public AsiakasListCell(MultiColumnListView multiColumnListView) { - //noinspection unchecked + public AsiakasListCell(MultiColumnListView multiColumnListView) { super(multiColumnListView); - this.setHeight(150); - this.setPrefHeight(50); - + this.setMinHeight(60); + this.setMaxHeight(60); VBox content = new VBox(); content.visibleProperty().bind(placeholder.not().and(emptyProperty().not())); @@ -30,9 +29,11 @@ public class AsiakasListCell extends MultiColumnListView.ColumnListCell contentPlaceholder.managedProperty().bind(placeholder); Label label = new Label(); + label.setFont(TabPohja.tekstiFont); label.textProperty().bind(textProperty()); wrapper = new StackPane(content, contentPlaceholder, label); + wrapper.setAlignment(Pos.CENTER_LEFT); setGraphic(wrapper); setContentDisplay(ContentDisplay.GRAPHIC_ONLY); } @@ -59,7 +60,7 @@ public class AsiakasListCell extends MultiColumnListView.ColumnListCell placeholder.set(true); setText(""); } else { - setText(asiakas.getNimi() + ": " + asiakas.getOsoite()); + setText(asiakas.getNimi() + "\n" + asiakas.getOsoite()); } } else { setText(""); 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 0218bfa..c2daa33 100644 --- a/src/main/java/fi/lpam/ruokamanageri/gui/elementit/MaaraTableColumn.java +++ b/src/main/java/fi/lpam/ruokamanageri/gui/elementit/MaaraTableColumn.java @@ -3,19 +3,17 @@ package fi.lpam.ruokamanageri.gui.elementit; import javafx.scene.control.TableColumn; public class MaaraTableColumn extends TableColumn { - public MaaraTableColumn(String columnLabel, int width) { - super(columnLabel); - this.setResizable(false); - this.setReorderable(false); - this.setMinWidth(width); - this.setMaxWidth(width); - } - public MaaraTableColumn(String columnLabel, int minWidth, int maxWidth) { super(columnLabel); - this.setResizable(false); + this.setResizable(true); this.setReorderable(false); this.setMinWidth(minWidth); this.setMaxWidth(maxWidth); + this.setStyle("-fx-alignment: CENTER; -fx-font-size: 16px;"); + } + + public MaaraTableColumn(String columnLabel, int width) { + this(columnLabel, width, width); + this.setResizable(false); } } \ No newline at end of file