Compare commits
5 Commits
3.0.0
..
deb2f49fb6
| Author | SHA1 | Date | |
|---|---|---|---|
| deb2f49fb6 | |||
| ded6accd29 | |||
| f9e868918c | |||
| f76d4413d4 | |||
| 65b4a7ef9b |
@@ -1,3 +1,7 @@
|
||||
# 3.0.1
|
||||
- Kierroshallinnan muokkaus tukemaan paremmin useampaa kierrosta
|
||||
- Kosmeettisia viilauksia muuallekin
|
||||
|
||||
# 3.0.0
|
||||
- Lisätty lauantai ja sunnuntai mahdollisiksi kuljetuspäiviksi
|
||||
- Mahdollisuus kuljettaa (ja muokata listaa) yli 10 ateriaa per asiakas
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>fi.lpam.ruokamanageri</groupId>
|
||||
<artifactId>Ruokamanageri</artifactId>
|
||||
<version>3.0.0</version>
|
||||
<version>3.0.1</version>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>25</maven.compiler.source>
|
||||
@@ -43,24 +43,24 @@
|
||||
<dependency>
|
||||
<groupId>com.dlsc.gemsfx</groupId>
|
||||
<artifactId>gemsfx</artifactId>
|
||||
<version>3.10.1</version>
|
||||
<version>4.0.5</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.pdfbox</groupId>
|
||||
<artifactId>pdfbox</artifactId>
|
||||
<version>3.0.6</version>
|
||||
<version>3.0.7</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-logging</groupId>
|
||||
<artifactId>commons-logging</artifactId>
|
||||
<version>1.3.5</version>
|
||||
<version>1.3.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.xerial</groupId>
|
||||
<artifactId>sqlite-jdbc</artifactId>
|
||||
<version>3.51.2.0</version>
|
||||
<version>3.53.1.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -83,11 +83,11 @@ public class Asiakashallinta extends TabPohja {
|
||||
});
|
||||
root.setCenter(tvAsiakkaat);
|
||||
|
||||
TableColumn<Asiakas, String> tcId = new TableColumn<>("Id");
|
||||
tcId.setCellValueFactory(new PropertyValueFactory<>("id"));
|
||||
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"));
|
||||
|
||||
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<Asiakas, MaaraTableColumn<Asiakas, Integer>> tcKuljetusmäärät = new TableColumn<>("Määrät per kuljetus");
|
||||
MaaraTableColumn<Asiakas, Integer> tcSalaatit = new MaaraTableColumn<>("Salaatit", 80);
|
||||
MaaraTableColumn<Asiakas, Integer> tcSalaatit = new MaaraTableColumn<>("Salaatit", minWidth, 150);
|
||||
tcSalaatit.setCellValueFactory(new PropertyValueFactory<>("salaatit"));
|
||||
MaaraTableColumn<Asiakas, Integer> tcPääruoat = new MaaraTableColumn<>("Pääruoat", 80);
|
||||
MaaraTableColumn<Asiakas, Integer> tcPääruoat = new MaaraTableColumn<>("Pääruoat", minWidth, 150);
|
||||
tcPääruoat.setCellValueFactory(new PropertyValueFactory<>("pääruoat"));
|
||||
MaaraTableColumn<Asiakas, Integer> tcJälkiruoat = new MaaraTableColumn<>("Jälkiruoat", 80);
|
||||
MaaraTableColumn<Asiakas, Integer> 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<Asiakas, String> tcErityisruokavalio = new TableColumn<>("Ruokarajoitteet");
|
||||
tcErityisruokavalio.setMinWidth(150);
|
||||
// tcErityisruokavalio.setMinWidth(150);
|
||||
tcErityisruokavalio.setCellValueFactory(new PropertyValueFactory<>("erityisruokavalio"));
|
||||
TableColumn<Asiakas, String> tcAvainTieto = new TableColumn<>("Avaintieto");
|
||||
tcAvainTieto.setMinWidth(150);
|
||||
// tcAvainTieto.setMinWidth(150);
|
||||
tcAvainTieto.setCellValueFactory(new PropertyValueFactory<>("avainTieto"));
|
||||
TableColumn<Asiakas, String> tcLisätiedot = new TableColumn<>("Lisätieto kuljetukselle");
|
||||
tcLisätiedot.setMinWidth(250);
|
||||
// tcLisätiedot.setMinWidth(250);
|
||||
tcLisätiedot.setCellValueFactory(new PropertyValueFactory<>("lisätiedot"));
|
||||
TableColumn<Asiakas, String> tcYhteyshenkilönNimi = new TableColumn<>("Yhteyshenkilö");
|
||||
tcYhteyshenkilönNimi.setMinWidth(250);
|
||||
// tcYhteyshenkilönNimi.setMinWidth(250);
|
||||
tcYhteyshenkilönNimi.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönNimi"));
|
||||
TableColumn<Asiakas, String> tcLaskutusOsoite = new TableColumn<>("Laskutusosoite");
|
||||
tcLaskutusOsoite.setMinWidth(250);
|
||||
// tcLaskutusOsoite.setMinWidth(250);
|
||||
tcLaskutusOsoite.setCellValueFactory(new PropertyValueFactory<>("laskutusOsoite"));
|
||||
TableColumn<Asiakas, String> tcYhteyshenkilönPuhelinnumero = new TableColumn<>("Yhteyshenkilön puhelinnumero");
|
||||
tcYhteyshenkilönPuhelinnumero.setMinWidth(250);
|
||||
// tcYhteyshenkilönPuhelinnumero.setMinWidth(250);
|
||||
tcYhteyshenkilönPuhelinnumero.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönPuhelinnumero"));
|
||||
TableColumn<Asiakas, String> 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<Asiakas, ?> column : tvAsiakkaat.getColumns()) {
|
||||
column.setEditable(false);
|
||||
column.setReorderable(false);
|
||||
column.setResizable(false);
|
||||
column.setResizable(true);
|
||||
column.setStyle("-fx-alignment: CENTER; -fx-font-size: 16px;");
|
||||
|
||||
}
|
||||
|
||||
@@ -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<Integer> kierroksellaOlevatAsiakasIDt = new HashSet<>();
|
||||
|
||||
if (!kierrokset.isEmpty()) {
|
||||
for (Kierros k : kierrokset) {
|
||||
MultiColumnListView.ListViewColumn<Asiakas> 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<Asiakas> 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() {
|
||||
|
||||
@@ -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<Asiakas> {
|
||||
private final StackPane wrapper;
|
||||
|
||||
public AsiakasListCell(MultiColumnListView multiColumnListView) {
|
||||
//noinspection unchecked
|
||||
public AsiakasListCell(MultiColumnListView<Asiakas> 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<Asiakas>
|
||||
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<Asiakas>
|
||||
placeholder.set(true);
|
||||
setText("");
|
||||
} else {
|
||||
setText(asiakas.getNimi() + ": " + asiakas.getOsoite());
|
||||
setText(asiakas.getNimi() + "\n" + asiakas.getOsoite());
|
||||
}
|
||||
} else {
|
||||
setText("");
|
||||
|
||||
@@ -3,19 +3,17 @@ package fi.lpam.ruokamanageri.gui.elementit;
|
||||
import javafx.scene.control.TableColumn;
|
||||
|
||||
public class MaaraTableColumn<Asiakas, Integer> extends TableColumn<Asiakas, Integer> {
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user