Projektin moduulirakenteen formatointi

Signed-off-by: laurimaaninka <lauri.maaninka@gmail.com>
This commit is contained in:
2026-04-12 20:25:49 +03:00
parent 8cf1d03e5c
commit e83bdee4d0
33 changed files with 82 additions and 92 deletions
@@ -1,156 +0,0 @@
package fi.lpam.gui;
import fi.lpam.dataluokat.Asiakas;
import fi.lpam.gui.elementit.MaaraTableColumn;
import fi.lpam.gui.elementit.TabPohja;
import javafx.collections.FXCollections;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.KeyCode;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.*;
import java.util.Objects;
import java.util.Optional;
@SuppressWarnings("unchecked")
public class Asiakashallinta extends TabPohja {
final TableView<Asiakas> tvAsiakkaat = new TableView<>();
public Asiakashallinta() {
BorderPane root = new BorderPane();
this.getChildren().add(root);
root.setPadding(oletusInsets);
BorderPane yläpalkki = new BorderPane();
root.setTop(yläpalkki);
Label otsikko = new Label("Asiakashallinta");
otsikko.setFont(tekstiFont);
yläpalkki.setLeft(otsikko);
HBox yläpalkinNapit = new HBox();
yläpalkinNapit.setSpacing(5);
yläpalkki.setRight(yläpalkinNapit);
Button poistaValittu = new Button("Poista");
poistaValittu.setOnAction(_ -> poistaValittu());
poistaValittu.setFont(TabPohja.buttonFont);
yläpalkinNapit.getChildren().add(poistaValittu);
Button muokkaaAsiakasta = new Button("Muokkaa");
muokkaaAsiakasta.setOnAction(_ -> muokkaaValittua());
muokkaaAsiakasta.setFont(TabPohja.buttonFont);
yläpalkinNapit.getChildren().add(muokkaaAsiakasta);
Button uusiAsiakas = new Button("Uusi asiakas");
uusiAsiakas.setOnAction(_ -> uusiAsiakas());
uusiAsiakas.setFont(TabPohja.buttonFont);
yläpalkinNapit.getChildren().add(uusiAsiakas);
tvAsiakkaat.setEditable(false);
tvAsiakkaat.setPlaceholder(new Label("Ei vielä tietoja"));
tvAsiakkaat.setOnMouseClicked((MouseEvent mouseEvent) -> {
if (mouseEvent.getClickCount() == 2) {
muokkaaValittua();
}
});
tvAsiakkaat.setOnKeyPressed(e -> {
if (tvAsiakkaat.getSelectionModel().getSelectedItem() != null) {
if (e.getCode() == KeyCode.ENTER) {
muokkaaValittua();
}
}
});
root.setCenter(tvAsiakkaat);
TableColumn<Asiakas, String> tcNimi = new TableColumn<>("Nimi");
tcNimi.setMinWidth(180);
tcNimi.setCellValueFactory(new PropertyValueFactory<>("nimi"));
TableColumn<Asiakas, String> tcOsoite = new TableColumn<>("Osoite");
tcOsoite.setMinWidth(250);
tcOsoite.setCellValueFactory(new PropertyValueFactory<>("osoite"));
TableColumn<Asiakas, MaaraTableColumn<Asiakas, Integer>> tcKuljetuspäivät = new TableColumn<>("Kuljetukset per päivä");
MaaraTableColumn<Asiakas, Integer> tcMaanantaiKpl = new MaaraTableColumn<>("MA", 20);
tcMaanantaiKpl.setCellValueFactory(new PropertyValueFactory<>("maanantaiKpl"));
MaaraTableColumn<Asiakas, Integer> tcTiistaiKpl = new MaaraTableColumn<>("TI", 20);
tcTiistaiKpl.setCellValueFactory(new PropertyValueFactory<>("tiistaiKpl"));
MaaraTableColumn<Asiakas, Integer> tcKeskiviikkoKpl = new MaaraTableColumn<>("KE", 20);
tcKeskiviikkoKpl.setCellValueFactory(new PropertyValueFactory<>("keskiviikkoKpl"));
MaaraTableColumn<Asiakas, Integer> tcTorstaiKpl = new MaaraTableColumn<>("TO", 20);
tcTorstaiKpl.setCellValueFactory(new PropertyValueFactory<>("torstaiKpl"));
MaaraTableColumn<Asiakas, Integer> tcPerjantaiKpl = new MaaraTableColumn<>("PE", 20);
tcPerjantaiKpl.setCellValueFactory(new PropertyValueFactory<>("perjantaiKpl"));
tcKuljetuspäivät.getColumns().addAll(tcMaanantaiKpl, tcTiistaiKpl, tcKeskiviikkoKpl, tcTorstaiKpl, tcPerjantaiKpl);
TableColumn<Asiakas, MaaraTableColumn<Asiakas, Integer>> tcKuljetusmäärät = new TableColumn<>("Määrät per kuljetus");
MaaraTableColumn<Asiakas, Integer> tcSalaatit = new MaaraTableColumn<>("Salaatit", 90);
tcSalaatit.setCellValueFactory(new PropertyValueFactory<>("salaatit"));
MaaraTableColumn<Asiakas, Integer> tcPääruoat = new MaaraTableColumn<>("Pääruoat", 90);
tcPääruoat.setCellValueFactory(new PropertyValueFactory<>("pääruoat"));
MaaraTableColumn<Asiakas, Integer> tcJälkiruoat = new MaaraTableColumn<>("Jälkiruoat", 90);
tcJälkiruoat.setCellValueFactory(new PropertyValueFactory<>("jälkiruoat"));
tcKuljetusmäärät.getColumns().addAll(tcSalaatit, tcPääruoat, tcJälkiruoat);
TableColumn<Asiakas, String> tcErityisruokavalio = new TableColumn<>("Ruokarajoitteet");
tcErityisruokavalio.setMinWidth(150);
tcErityisruokavalio.setCellValueFactory(new PropertyValueFactory<>("erityisruokavalio"));
TableColumn<Asiakas, String> tcAvainTieto = new TableColumn<>("Avaintieto");
tcAvainTieto.setMinWidth(150);
tcAvainTieto.setCellValueFactory(new PropertyValueFactory<>("avainTieto"));
TableColumn<Asiakas, String> tcLisätiedot = new TableColumn<>("Lisätieto kuljetukselle");
tcLisätiedot.setMinWidth(250);
tcLisätiedot.setCellValueFactory(new PropertyValueFactory<>("lisätiedot"));
tvAsiakkaat.getColumns().addAll(tcNimi, tcOsoite, tcKuljetuspäivät, tcKuljetusmäärät, tcErityisruokavalio, tcAvainTieto, tcLisätiedot);
for (TableColumn<Asiakas, ?> column : tvAsiakkaat.getColumns()) {
column.setEditable(false);
column.setReorderable(false);
column.setResizable(false);
column.setStyle("-fx-alignment: CENTER; -fx-font-size: 16px;");
}
tvAsiakkaat.setItems(FXCollections.observableArrayList(Objects.requireNonNull(Asiakas.haeKaikki())));
}
private void uusiAsiakas() {
Asiakas luotavaAsiakas = new Asiakas();
AsiakasIkkuna asiakasIkkuna = new AsiakasIkkuna(luotavaAsiakas);
asiakasIkkuna.showAndWait();
if (luotavaAsiakas.getId() != -1) {
//Asiakas luotu ja id saatu tietokannasta
tvAsiakkaat.getItems().add(luotavaAsiakas);
tvAsiakkaat.refresh();
}
}
private void muokkaaValittua() {
Asiakas muokattavaAsiakas = tvAsiakkaat.getSelectionModel().getSelectedItem();
if (muokattavaAsiakas == null) {return;}
AsiakasIkkuna asiakasIkkuna = new AsiakasIkkuna(muokattavaAsiakas);
asiakasIkkuna.showAndWait();
tvAsiakkaat.refresh();
}
private void poistaValittu() {
Asiakas valittuAsiakas = tvAsiakkaat.getSelectionModel().getSelectedItem();
boolean läpi = false;
if (valittuAsiakas != null) {
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.setTitle("Oletko varma?");
alert.setHeaderText("Poistetaanko valittu asiakas?");
alert.setContentText(valittuAsiakas.getNimi());
Optional<ButtonType> result = alert.showAndWait();
if (result.isPresent() && result.get() == ButtonType.OK) {
läpi = valittuAsiakas.poista();
}
if (läpi) {
tvAsiakkaat.getItems().remove(valittuAsiakas);
tvAsiakkaat.refresh();
}
}
}
}