#17 Luotu custom label luokka, otettu uudet säädöt käyttöön mahdollisimman monessa paikkaa #18

Manually merged
laurimaaninka merged 2 commits from asetukset-välilehti into asetukset 2026-05-14 21:25:49 +03:00
7 changed files with 52 additions and 42 deletions
+5 -10
View File
@@ -35,11 +35,7 @@ public class Asetukset extends TabPohja {
yläpalkki.getChildren().add(btnNollaa);
root.setTop(yläpalkki);
root.setLeft(getFonttiAsetukset());
Label asetukset = new Label("Asetukset");
asetukset.setFont(tekstiFont);
root.setRight(asetukset);
root.setCenter(getFonttiAsetukset());
this.getChildren().add(root);
}
@@ -47,7 +43,7 @@ public class Asetukset extends TabPohja {
private Spinner<Integer> tekstiFonttiKoko, buttonFonttiKoko, tulostusFonttiKoko, insets;
private ComboBox<String> tekstiFontti, buttonFontti;
private int minFonttiKoko = 8;
private int maxFonttiKoko = 30;
private int maxFonttiKoko = 25;
private int stepFontti = 1;
/**
@@ -57,8 +53,8 @@ public class Asetukset extends TabPohja {
private GridPane getFonttiAsetukset() {
GridPane root = new GridPane();
root.setAlignment(Pos.CENTER);
root.setHgap(10);
root.setVgap(10);
root.setHgap(spacing*2);
root.setVgap(spacing*2);
root.setBorder(oletusBorder);
root.setPadding(oletusInsets);
int row = 0;
@@ -112,7 +108,6 @@ public class Asetukset extends TabPohja {
}
private void palautaOletukset() {
//TODO
}
}
@@ -1,5 +1,6 @@
package fi.lpam.gui;
import fi.lpam.Main;
import fi.lpam.dataluokat.Asiakas;
import fi.lpam.gui.elementit.MaaraTableColumn;
import fi.lpam.gui.elementit.TabPohja;
@@ -36,7 +37,7 @@ public class Asiakashallinta extends TabPohja {
yläpalkki.setLeft(otsikko);
HBox yläpalkinNapit = new HBox();
yläpalkinNapit.setSpacing(5);
yläpalkinNapit.setSpacing(Double.parseDouble(Main.properties.getProperty("insets")));
yläpalkinNapit.setPadding(oletusInsets);
yläpalkki.setRight(yläpalkinNapit);
@@ -118,25 +119,18 @@ public class Asiakashallinta extends TabPohja {
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"));
TableColumn<Asiakas, String> tcYhteyshenkilönNimi = new TableColumn<>("Yhteyshenkilö");
// tcYhteyshenkilönNimi.setMinWidth(250);
tcYhteyshenkilönNimi.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönNimi"));
TableColumn<Asiakas, String> tcLaskutusOsoite = new TableColumn<>("Laskutusosoite");
// tcLaskutusOsoite.setMinWidth(250);
tcLaskutusOsoite.setCellValueFactory(new PropertyValueFactory<>("laskutusOsoite"));
TableColumn<Asiakas, String> tcYhteyshenkilönPuhelinnumero = new TableColumn<>("Yhteyshenkilön puhelinnumero");
// 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.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilö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);
@@ -145,7 +139,10 @@ public class Asiakashallinta extends TabPohja {
column.setEditable(false);
column.setReorderable(false);
column.setResizable(true);
column.setStyle("-fx-alignment: CENTER; -fx-font-size: 16px;");
column.setStyle(
"-fx-alignment: CENTER;" +
"-fx-font-size: " + Main.properties.getProperty("tekstiFonttiKoko") + "px;" +
"-fx-font-family: " + Main.properties.getProperty("tekstiFontti"));
}
@@ -5,6 +5,7 @@ import com.dlsc.gemsfx.MultiColumnListView;
import fi.lpam.dataluokat.Asiakas;
import fi.lpam.dataluokat.Kierros;
import fi.lpam.gui.elementit.AsiakasMCLVListCell;
import fi.lpam.gui.elementit.FontLabel;
import fi.lpam.gui.elementit.TabPohja;
import javafx.collections.FXCollections;
@@ -38,8 +39,7 @@ public class Kierroshallinta extends TabPohja {
BorderPane yläpalkki = new BorderPane();
root.setTop(yläpalkki);
Label infoTeksti = new Label("Siirrä asiakkaat haluamallesi kierrokselle. Kierroksia voit lisätä painamalla lisää uusi kierros painiketta.\nKierrosnumerot päivittyvät, sekä tyhjät poistuvat kierroksia tallentaessa.");
infoTeksti.setFont(tekstiFont);
Label infoTeksti = new FontLabel(tekstiFont, "Siirrä asiakkaat haluamallesi kierrokselle. Kierroksia voit lisätä painamalla lisää uusi kierros painiketta.\nKierrosnumerot päivittyvät, sekä tyhjät poistuvat kierroksia tallentaessa.");
yläpalkki.setLeft(infoTeksti);
HBox yläpalkinNapit = new HBox();
@@ -84,8 +84,7 @@ public class Kierroshallinta extends TabPohja {
}
}
MultiColumnListView.ListViewColumn<Asiakas> colEiKierroksella = new MultiColumnListView.ListViewColumn<>();
Label labelEiKierroksella = new Label("Ei vielä kierroksella");
labelEiKierroksella.setFont(tekstiFont);
Label labelEiKierroksella = new FontLabel(tekstiFont, "Ei vielä kierroksella");
colEiKierroksella.setHeader(labelEiKierroksella);
colEiKierroksella.setItems(FXCollections.observableArrayList(eiKierroksella));
mclv.getColumns().add(colEiKierroksella);
@@ -94,9 +93,7 @@ public class Kierroshallinta extends TabPohja {
private void lisaaKierros(Kierros kierros) {
if (kierros.getId() == -1) kierrokset.add(kierros);
MultiColumnListView.ListViewColumn<Asiakas> uusiSarake = new MultiColumnListView.ListViewColumn<>();
Label label = new Label("Kierros " + kierros.getKierrosNumero());
label.setFont(tekstiFont);
uusiSarake.setHeader(label);
uusiSarake.setHeader(new FontLabel(tekstiFont, "Kierros " + kierros.getKierrosNumero()));
uusiSarake.setItems(kierros.getAsiakkaat());
mclv.getColumns().add(kierros.getKierrosNumero()-1, uusiSarake);
}
+12 -9
View File
@@ -1,8 +1,10 @@
package fi.lpam.gui;
import fi.lpam.Main;
import fi.lpam.dataluokat.Asiakas;
import fi.lpam.dataluokat.Kierros;
import fi.lpam.dataluokat.Kuljetus;
import fi.lpam.gui.elementit.FontLabel;
import fi.lpam.gui.tableCell.IntegerFieldTableCellFactory;
import fi.lpam.gui.tableCell.KuljetaTableCell;
import fi.lpam.tulostajat.KuljetusListaTulostaja;
@@ -49,30 +51,28 @@ public class KuljetusListat extends TabPohja {
this.getChildren().add(root);
BorderPane yläpalkki = new BorderPane();
Label infoTeksti = new Label("Kuljetuslistojen luonti");
infoTeksti.setFont(tekstiFont);
Label infoTeksti = new FontLabel(tekstiFont, "Kuljetuslistojen luonti");
yläpalkki.setLeft(infoTeksti);
HBox kierroksenValintaLaatikko = new HBox();
kierroksenValintaLaatikko.setSpacing(5);
kierroksenValintaLaatikko.setSpacing(5);
kierroksenValintaLaatikko.setSpacing(spacing);
kierroksenValintaLaatikko.setAlignment(Pos.CENTER);
Button valitse = new Button("Valitse");
valitse.setFont(buttonFont);
valitse.setOnAction(_ -> päivitäListanäkymä());
tallennusStatus = new Label("Tallennettu: Kyllä");
tallennusStatus = new FontLabel(tekstiFont, "Tallennettu: Kyllä");
tallennusStatus.setFont(tekstiFont);
datePicker.valueProperty().addListener(_ -> päivitäListanäkymä());
kierrosValinta.valueProperty().addListener(_ -> päivitäListanäkymä());
kierroksenValintaLaatikko.getChildren().addAll(
new Label("Valitse päivämäärä:"),
new FontLabel(tekstiFont, "Valitse päivämäärä:"),
datePicker,
new Label("Valitse kierros:"),
new FontLabel(tekstiFont, "Valitse kierros:"),
kierrosValinta, tallennusStatus);
yläpalkki.setCenter(kierroksenValintaLaatikko);
HBox napit = new HBox();
napit.setSpacing(5);
napit.setSpacing(spacing);
Button poista = new Button("Poista kuljetusrivi");
poista.setOnAction(_ ->poistaRivi());
poista.setFont(buttonFont);
@@ -147,7 +147,10 @@ public class KuljetusListat extends TabPohja {
sarake.setSortable(false);
sarake.setEditable(true);
sarake.setResizable(true);
sarake.setStyle("-fx-alignment: CENTER; -fx-font-size: 16px;");
sarake.setStyle(
"-fx-alignment: CENTER;" +
"-fx-font-size: " + Main.properties.getProperty("tekstiFonttiKoko") + "px;" +
"-fx-font-family: " + Main.properties.getProperty("tekstiFontti"));
}
tcNimi.setEditable(false);
tcNimi.setResizable(false);
@@ -1,6 +1,8 @@
package fi.lpam.gui;
import fi.lpam.Main;
import fi.lpam.dataluokat.RaporttiRivi;
import fi.lpam.gui.elementit.FontLabel;
import fi.lpam.tulostajat.KuljetusRaporttiTulostaja;
import fi.lpam.gui.tableCell.PaivamaaraTableCell;
import fi.lpam.gui.elementit.TabPohja;
@@ -41,16 +43,16 @@ public class KuljetusRaportit extends TabPohja {
BorderPane yläpalkki = new BorderPane();
root.setTop(yläpalkki);
Label infoTeksti = new Label("Kuljetusraportit. \nTarkka-valinnalla koostetun raportin tulostaminen paperille ei suositeltua.");
infoTeksti.setFont(tekstiFont);
Label infoTeksti = new FontLabel(tekstiFont, "Kuljetusraportit. \nTarkka-valinnalla koostetun raportin tulostaminen paperille ei suositeltua.");
yläpalkki.setLeft(infoTeksti);
HBox yläpalkinNapit = new HBox();
yläpalkinNapit.setAlignment(Pos.CENTER);
yläpalkinNapit.setSpacing(5);
yläpalkinNapit.setSpacing(spacing);
yläpalkki.setRight(yläpalkinNapit);
tarkka = new CheckBox("Tarkka");
tarkka.setFont(tekstiFont);
alkuPvm = new DatePicker(LocalDate.now().minusDays(LocalDate.now().getDayOfMonth() - 1));
loppuPvm = new DatePicker(LocalDate.now());
Button haeKuljetukset = new Button("Hae");
@@ -60,8 +62,8 @@ public class KuljetusRaportit extends TabPohja {
tulostaRaportti.setFont(buttonFont);
tulostaRaportti.setOnAction(_ ->tulostaRaportti());
yläpalkinNapit.getChildren().addAll(tarkka,
new Label("Hae kuljetukset välillä:"),
alkuPvm, new Label("-"), loppuPvm,
new FontLabel(tekstiFont,"Hae kuljetukset välillä:"),
alkuPvm, new FontLabel(tekstiFont,"-"), loppuPvm,
haeKuljetukset, tulostaRaportti);
root.setCenter(tableView);
@@ -109,12 +111,15 @@ public class KuljetusRaportit extends TabPohja {
tableView.getColumns().addAll(tcNimi, tcPvm, tcSalaatit, tcPääruoat, tcJälkiruoat, tcLisätiedot,
tcYhteyshenkilönNimi, tcLaskutusOsoite, tcYhteyshenkilönPuhelinnumero, tcYhteyshenkilönSähköposti);
tableView.setPlaceholder(new Label("Hae raportti"));
tableView.setPlaceholder(new FontLabel(buttonFont, "Hae raportti"));
for (TableColumn<RaporttiRivi, ?> sarake : tableView.getColumns()) {
sarake.setSortable(false);
sarake.setEditable(false);
sarake.setResizable(true);
sarake.setStyle("-fx-alignment: CENTER; -fx-font-size: 16px;");
sarake.setStyle(
"-fx-alignment: CENTER;" +
"-fx-font-size: " + Main.properties.getProperty("tekstiFonttiKoko") + "px;" +
"-fx-font-family: " + Main.properties.getProperty("tekstiFontti"));
}
}
}
@@ -0,0 +1,11 @@
package fi.lpam.gui.elementit;
import javafx.scene.control.Label;
import javafx.scene.text.Font;
public class FontLabel extends Label {
public FontLabel(Font font, String text) {
super(text);
this.setFont(font);
}
}
@@ -18,10 +18,12 @@ public class TabPohja extends StackPane {
public static String oletusStyle;
public static Font buttonFont;
public static Font tekstiFont;
public static double spacing;
public TabPohja() {
Properties prop = Main.properties;
oletusInsets = new Insets(Double.parseDouble(prop.getProperty("insets")));
spacing = Double.parseDouble(prop.getProperty("insets"));
oletusStyle = "-fx-background-color: " + prop.getProperty("taustaVari") + ";";
buttonFont = Font.font(prop.getProperty("buttonFontti"), FontWeight.BOLD, Double.parseDouble(prop.getProperty("buttonFonttiKoko")));
tekstiFont = Font.font(prop.getProperty("tekstiFontti"), FontWeight.NORMAL, Double.parseDouble(prop.getProperty("tekstiFonttiKoko")));