diff --git a/src/main/java/fi/lpam/App.java b/src/main/java/fi/lpam/App.java index ea5880b..4a96af0 100644 --- a/src/main/java/fi/lpam/App.java +++ b/src/main/java/fi/lpam/App.java @@ -1,9 +1,6 @@ package fi.lpam; import fi.lpam.dataluokat.Tietokanta; -import fi.lpam.gui.Asiakashallinta; -import fi.lpam.gui.Kierroshallinta; -import fi.lpam.gui.KuljetusRaportit; -import fi.lpam.gui.KuljetusListat; +import fi.lpam.gui.*; import fi.lpam.gui.elementit.MuutosIlmoitus; import javafx.application.Application; import javafx.geometry.Side; @@ -29,15 +26,16 @@ public class App extends Application { TabPane root = new TabPane(); root.setSide(Side.LEFT); root.setTabMinWidth(50); - root.setTabMinHeight(35); - root.setTabMaxHeight(50); + root.setTabMinHeight(Double.parseDouble(Main.properties.getProperty("buttonFonttiKoko"))*2); + root.setTabMaxHeight(Double.parseDouble(Main.properties.getProperty("buttonFonttiKoko"))*2); - Tab asiakasHallinta, kierrostenHallinta, kuljetusListat, kuljetetut; + Tab asiakasHallinta, kierrostenHallinta, kuljetusListat, kuljetetut, asetukset; asiakasHallinta = new Tab("Asiakashallinta", new Asiakashallinta()); kierrostenHallinta = new Tab("Kierrostenhallinta"); kuljetusListat = new Tab("Kuljetuslistat"); kuljetetut = new Tab("Kuljetetut"); - root.getTabs().addAll(asiakasHallinta, kierrostenHallinta, kuljetusListat, kuljetetut); + asetukset = new Tab("Asetukset"); + root.getTabs().addAll(asiakasHallinta, kierrostenHallinta, kuljetusListat, kuljetetut, asetukset); root.getSelectionModel().selectedItemProperty().addListener((_, _, newValue) -> { switch (newValue.getText()) { @@ -45,12 +43,16 @@ public class App extends Application { case "Kierrostenhallinta": newValue.setContent(new Kierroshallinta()); break; case "Kuljetuslistat": newValue.setContent(new KuljetusListat()); break; case "Kuljetetut": newValue.setContent(new KuljetusRaportit()); break; + case "Asetukset": newValue.setContent(new Asetukset()); break; } }); for (Tab tab : root.getTabs()) { tab.setClosable(false); - tab.setStyle("-fx-font-size: 18px; -fx-font-weight: bold; -fx-font-family: Open Sans"); + tab.setStyle( + "-fx-font-size: " + Main.properties.getProperty("buttonFonttiKoko") + "px;" + + " -fx-font-weight: bold;" + + " -fx-font-family: " + Main.properties.getProperty("buttonFontti")); } Scene scene = new Scene(root); @@ -66,6 +68,6 @@ public class App extends Application { primaryStage.show(); primaryStage.getIcons().add(new Image(Objects.requireNonNull(Main.class.getClassLoader().getResourceAsStream("kuljetusruokalaatikko.jpg")))); - if (!Main.properties.getProperty("version").equals(Main.properties.getProperty("viimeisinVersio"))) new MuutosIlmoitus(); + if (!Main.properties.getProperty("version").equals(Main.properties.getProperty("viimeisinVersio", "0.0.0"))) new MuutosIlmoitus(); } } \ No newline at end of file diff --git a/src/main/java/fi/lpam/gui/Asetukset.java b/src/main/java/fi/lpam/gui/Asetukset.java new file mode 100644 index 0000000..1a4d66c --- /dev/null +++ b/src/main/java/fi/lpam/gui/Asetukset.java @@ -0,0 +1,124 @@ +package fi.lpam.gui; + +import fi.lpam.Main; +import fi.lpam.gui.elementit.TabPohja; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.geometry.Pos; +import javafx.scene.control.*; +import javafx.scene.layout.BorderPane; +import javafx.scene.layout.GridPane; +import javafx.scene.layout.HBox; +import javafx.scene.text.Font; + +import java.io.IOException; +import java.util.Properties; + + +public class Asetukset extends TabPohja { + private static final Properties prop = Main.properties; + private static final ObservableList järjestelmäFontit = FXCollections.observableArrayList(Font.getFamilies()); + + + public Asetukset() { + BorderPane root = new BorderPane(); + root.setPadding(oletusInsets); + + HBox yläpalkki = new HBox(); + yläpalkki.setSpacing(5); + yläpalkki.setAlignment(Pos.CENTER_RIGHT); + Button btnNollaa = new Button("Palauta oletukset"); + btnNollaa.setFont(buttonFont); + btnNollaa.setOnAction(_ -> palautaOletukset()); + yläpalkki.getChildren().add(btnNollaa); + root.setTop(yläpalkki); + + root.setCenter(getFonttiAsetukset()); + + this.getChildren().add(root); + } + + private Spinner tekstiFonttiKoko, buttonFonttiKoko, tulostusFonttiKoko, insets; + private ComboBox tekstiFontti, buttonFontti; + + /** + * Luo paneelin fonttien asetusten säätämiseen + * @return paneeli + */ + private GridPane getFonttiAsetukset() { + GridPane root = new GridPane(); + root.setAlignment(Pos.CENTER); + root.setHgap(spacing*2); + root.setVgap(spacing*2); + root.setBorder(oletusBorder); + root.setPadding(oletusInsets); + int row = 0; + + Label otsikko = new Label("Fonttien asetukset"); + otsikko.setFont(tekstiFont); + root.addRow(row++, otsikko); + + int minFonttiKoko = 8; + int maxFonttiKoko = 18; + int stepFontti = 1; + tekstiFonttiKoko = new Spinner<>(minFonttiKoko, maxFonttiKoko, Integer.parseInt(prop.getProperty("tekstiFonttiKoko")), stepFontti); + tekstiFonttiKoko.valueProperty().addListener((_) -> prop.setProperty("tekstiFonttiKoko", String.valueOf(tekstiFonttiKoko.getValue()))); + Label tekstinKoko = new Label("Tekstin koko"); + tekstinKoko.setFont(tekstiFont); + root.addRow(row++, tekstinKoko, tekstiFonttiKoko); + + tekstiFontti = new ComboBox<>(); + tekstiFontti.setItems(järjestelmäFontit); + tekstiFontti.getSelectionModel().select(prop.getProperty("tekstiFontti")); + tekstiFontti.valueProperty().addListener((_) -> prop.setProperty("tekstiFontti", tekstiFontti.getValue())); + Label tekstinFontti = new Label("Tekstin fontti"); + tekstinFontti.setFont(tekstiFont); + root.addRow(row++, tekstinFontti, tekstiFontti); + + buttonFonttiKoko = new Spinner<>(minFonttiKoko, maxFonttiKoko, Integer.parseInt(prop.getProperty("buttonFonttiKoko")), stepFontti); + buttonFonttiKoko.valueProperty().addListener((_) -> prop.setProperty("buttonFonttiKoko", String.valueOf(buttonFonttiKoko.getValue()))); + Label nappiTekstinKoko = new Label("Painikkeiden koko"); + nappiTekstinKoko.setFont(tekstiFont); + root.addRow(row++, nappiTekstinKoko, buttonFonttiKoko); + + buttonFontti = new ComboBox<>(); + buttonFontti.setItems(järjestelmäFontit); + buttonFontti.getSelectionModel().select(prop.getProperty("buttonFontti")); + buttonFontti.valueProperty().addListener((_) -> prop.setProperty("buttonFontti", buttonFontti.getValue())); + Label napinFontti = new Label("Painikkeiden fontti"); + napinFontti.setFont(tekstiFont); + root.addRow(row++, napinFontti, buttonFontti); + + tulostusFonttiKoko = new Spinner<>(minFonttiKoko, maxFonttiKoko, Integer.parseInt(prop.getProperty("tulostusFonttiKoko")), stepFontti); + tulostusFonttiKoko.valueProperty().addListener((_) -> prop.setProperty("tulostusFonttiKoko", String.valueOf(tulostusFonttiKoko.getValue()))); + Label tulostusFontinKoko = new Label("Tulostusfontin koko"); + tulostusFontinKoko.setFont(tekstiFont); + root.addRow(row++, tulostusFontinKoko, tulostusFonttiKoko); + + insets = new Spinner<>(0, 10, Integer.parseInt(prop.getProperty("insets")), 1); + insets.valueProperty().addListener((_) -> prop.setProperty("insets", String.valueOf(insets.getValue()))); + Label insetsi = new Label("Yleinen fyllinki"); + insetsi.setFont(tekstiFont); + root.addRow(row++, insetsi, insets); + + return root; + } + + private void palautaOletukset() { + try { + Properties defaults = new Properties(); + defaults.load(Main.class.getClassLoader().getResourceAsStream("defaults.properties")); + + tekstiFonttiKoko.getValueFactory().setValue(Integer.valueOf(defaults.getProperty("tekstiFonttiKoko"))); + tekstiFontti.getSelectionModel().select(defaults.getProperty("tekstiFontti")); + buttonFonttiKoko.getValueFactory().setValue(Integer.valueOf(defaults.getProperty("buttonFonttiKoko"))); + buttonFontti.getSelectionModel().select(defaults.getProperty("buttonFontti")); + tulostusFonttiKoko.getValueFactory().setValue(Integer.valueOf(defaults.getProperty("tulostusFonttiKoko"))); + insets.getValueFactory().setValue(Integer.valueOf(defaults.getProperty("insets"))); + } + catch (IOException e) { + //noinspection CallToPrintStackTrace + e.printStackTrace(); + } + } +} diff --git a/src/main/java/fi/lpam/gui/Asiakashallinta.java b/src/main/java/fi/lpam/gui/Asiakashallinta.java index 4712fc7..7aaf6ae 100644 --- a/src/main/java/fi/lpam/gui/Asiakashallinta.java +++ b/src/main/java/fi/lpam/gui/Asiakashallinta.java @@ -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,8 @@ 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); Button avaaVersioloki = new Button("VERSIOLOKI"); @@ -117,35 +119,25 @@ public class Asiakashallinta extends TabPohja { tcKuljetusmäärät.getColumns().addAll(tcSalaatit, tcPääruoat, tcJälkiruoat); TableColumn tcErityisruokavalio = new TableColumn<>("Ruokarajoitteet"); -// tcErityisruokavalio.setMinWidth(150); tcErityisruokavalio.setCellValueFactory(new PropertyValueFactory<>("erityisruokavalio")); TableColumn tcAvainTieto = new TableColumn<>("Avaintieto"); -// tcAvainTieto.setMinWidth(150); tcAvainTieto.setCellValueFactory(new PropertyValueFactory<>("avainTieto")); TableColumn tcLisätiedot = new TableColumn<>("Lisätieto kuljetukselle"); -// tcLisätiedot.setMinWidth(250); tcLisätiedot.setCellValueFactory(new PropertyValueFactory<>("lisätiedot")); TableColumn tcYhteyshenkilönNimi = new TableColumn<>("Yhteyshenkilö"); -// tcYhteyshenkilönNimi.setMinWidth(250); tcYhteyshenkilönNimi.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönNimi")); TableColumn tcLaskutusOsoite = new TableColumn<>("Laskutusosoite"); -// tcLaskutusOsoite.setMinWidth(250); tcLaskutusOsoite.setCellValueFactory(new PropertyValueFactory<>("laskutusOsoite")); TableColumn tcYhteyshenkilönPuhelinnumero = new TableColumn<>("Yhteyshenkilön puhelinnumero"); -// 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.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); for (TableColumn column : tvAsiakkaat.getColumns()) { - column.setEditable(false); - column.setReorderable(false); - column.setResizable(true); - column.setStyle("-fx-alignment: CENTER; -fx-font-size: 16px;"); - + column.getColumns().forEach(this::määritäColumn); + määritäColumn(column); } tvAsiakkaat.setItems(FXCollections.observableArrayList(Objects.requireNonNull(Asiakas.haeKaikki()))); @@ -188,4 +180,15 @@ public class Asiakashallinta extends TabPohja { } } } + + private void määritäColumn(TableColumn column) { + column.setEditable(false); + column.setReorderable(false); + column.setResizable(true); + column.setStyle( + "-fx-alignment: CENTER;" + + "-fx-font-size: " + Main.properties.getProperty("tekstiFonttiKoko") + "px;" + + "-fx-font-family: " + Main.properties.getProperty("tekstiFontti") + ); + } } \ No newline at end of file diff --git a/src/main/java/fi/lpam/gui/Kierroshallinta.java b/src/main/java/fi/lpam/gui/Kierroshallinta.java index 576f4bd..ad31221 100644 --- a/src/main/java/fi/lpam/gui/Kierroshallinta.java +++ b/src/main/java/fi/lpam/gui/Kierroshallinta.java @@ -4,7 +4,8 @@ import com.dlsc.gemsfx.MultiColumnListView; import fi.lpam.dataluokat.Asiakas; import fi.lpam.dataluokat.Kierros; -import fi.lpam.gui.elementit.AsiakasListCell; +import fi.lpam.gui.elementit.AsiakasMCLVListCell; +import fi.lpam.gui.elementit.FontLabel; import fi.lpam.gui.elementit.TabPohja; import javafx.collections.FXCollections; @@ -30,7 +31,7 @@ public class Kierroshallinta extends TabPohja { root.setPadding(oletusInsets); root.setCenter(mclv); - mclv.setCellFactory(_ -> new AsiakasListCell(mclv)); + mclv.setCellFactory(_ -> new AsiakasMCLVListCell(mclv)); mclv.setPlaceholderFrom(new Asiakas("")); mclv.setPlaceholderTo(new Asiakas("")); rakennaSarakkeet(); @@ -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(); @@ -51,11 +51,11 @@ public class Kierroshallinta extends TabPohja { int uudenKierroksenNumero = mclv.getColumns().size(); lisaaKierros(new Kierros(uudenKierroksenNumero, FXCollections.observableArrayList(new ArrayList<>()))); }); - lisääKierros.setFont(TabPohja.buttonFont); + lisääKierros.setFont(buttonFont); yläpalkinNapit.getChildren().add(lisääKierros); Button tallenna = new Button("Tallenna kierrokset"); - tallenna.setFont(TabPohja.buttonFont); + tallenna.setFont(buttonFont); tallenna.setOnAction(_ ->tallennaKierrokset()); yläpalkinNapit.getChildren().add(tallenna); @@ -84,7 +84,8 @@ public class Kierroshallinta extends TabPohja { } } MultiColumnListView.ListViewColumn colEiKierroksella = new MultiColumnListView.ListViewColumn<>(); - colEiKierroksella.setHeader(new Label("Ei vielä kierroksella")); + Label labelEiKierroksella = new FontLabel(tekstiFont, "Ei vielä kierroksella"); + colEiKierroksella.setHeader(labelEiKierroksella); colEiKierroksella.setItems(FXCollections.observableArrayList(eiKierroksella)); mclv.getColumns().add(colEiKierroksella); } @@ -92,7 +93,7 @@ public class Kierroshallinta extends TabPohja { private void lisaaKierros(Kierros kierros) { if (kierros.getId() == -1) kierrokset.add(kierros); MultiColumnListView.ListViewColumn uusiSarake = new MultiColumnListView.ListViewColumn<>(); - uusiSarake.setHeader(new Label("Kierros " + kierros.getKierrosNumero())); + uusiSarake.setHeader(new FontLabel(tekstiFont, "Kierros " + kierros.getKierrosNumero())); uusiSarake.setItems(kierros.getAsiakkaat()); mclv.getColumns().add(kierros.getKierrosNumero()-1, uusiSarake); } diff --git a/src/main/java/fi/lpam/gui/KuljetusListat.java b/src/main/java/fi/lpam/gui/KuljetusListat.java index 3bdff8b..599b6a1 100644 --- a/src/main/java/fi/lpam/gui/KuljetusListat.java +++ b/src/main/java/fi/lpam/gui/KuljetusListat.java @@ -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, "Päivämäärä:"), datePicker, - new Label("Valitse kierros:"), + new FontLabel(tekstiFont, "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); diff --git a/src/main/java/fi/lpam/gui/KuljetusRaportit.java b/src/main/java/fi/lpam/gui/KuljetusRaportit.java index 49c7d78..56c90df 100644 --- a/src/main/java/fi/lpam/gui/KuljetusRaportit.java +++ b/src/main/java/fi/lpam/gui/KuljetusRaportit.java @@ -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 \ntulostaminen 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 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")); } } } \ No newline at end of file diff --git a/src/main/java/fi/lpam/gui/elementit/AsiakasListCell.java b/src/main/java/fi/lpam/gui/elementit/AsiakasMCLVListCell.java similarity index 87% rename from src/main/java/fi/lpam/gui/elementit/AsiakasListCell.java rename to src/main/java/fi/lpam/gui/elementit/AsiakasMCLVListCell.java index 838651e..5d76f4b 100644 --- a/src/main/java/fi/lpam/gui/elementit/AsiakasListCell.java +++ b/src/main/java/fi/lpam/gui/elementit/AsiakasMCLVListCell.java @@ -12,13 +12,13 @@ import javafx.scene.layout.StackPane; import javafx.scene.layout.VBox; -public class AsiakasListCell extends MultiColumnListView.ColumnListCell { +public class AsiakasMCLVListCell extends MultiColumnListView.ColumnListCell { private final StackPane wrapper; - public AsiakasListCell(MultiColumnListView multiColumnListView) { + public AsiakasMCLVListCell(MultiColumnListView multiColumnListView) { super(multiColumnListView); - this.setMinHeight(60); - this.setMaxHeight(60); + this.setMinHeight(TabPohja.tekstiFont.getSize()*4); + this.setMaxHeight(TabPohja.tekstiFont.getSize()*4); VBox content = new VBox(); content.visibleProperty().bind(placeholder.not().and(emptyProperty().not())); diff --git a/src/main/java/fi/lpam/gui/elementit/FontLabel.java b/src/main/java/fi/lpam/gui/elementit/FontLabel.java new file mode 100644 index 0000000..cc42acb --- /dev/null +++ b/src/main/java/fi/lpam/gui/elementit/FontLabel.java @@ -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); + } +} diff --git a/src/main/java/fi/lpam/gui/elementit/TabPohja.java b/src/main/java/fi/lpam/gui/elementit/TabPohja.java index f0d74f4..4e354eb 100644 --- a/src/main/java/fi/lpam/gui/elementit/TabPohja.java +++ b/src/main/java/fi/lpam/gui/elementit/TabPohja.java @@ -1,22 +1,32 @@ package fi.lpam.gui.elementit; +import fi.lpam.Main; import javafx.geometry.Insets; import javafx.scene.layout.*; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.FontWeight; +import java.util.Properties; + /** * Käyttöliittymän pohja */ public class TabPohja extends StackPane { - public static final Insets oletusInsets = new Insets(5); - public static final String oletusStyle = "-fx-background-color: lightgray;"; - public static final Font buttonFont = Font.font("Open Sans", FontWeight.BOLD, 16); - public static final Font tekstiFont = Font.font("Open Sans", FontWeight.NORMAL, 16); - public static final Border oletusBorder = new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, new CornerRadii(5), BorderWidths.DEFAULT)); + public static Insets oletusInsets; + public static Border oletusBorder = new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, new CornerRadii(5), BorderWidths.DEFAULT)); + 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"))); this.setStyle(oletusStyle); this.setPadding(oletusInsets); this.setBorder(oletusBorder); diff --git a/src/main/java/fi/lpam/tulostajat/KuljetusListaTulostaja.java b/src/main/java/fi/lpam/tulostajat/KuljetusListaTulostaja.java index 661afe9..fcf0ff1 100644 --- a/src/main/java/fi/lpam/tulostajat/KuljetusListaTulostaja.java +++ b/src/main/java/fi/lpam/tulostajat/KuljetusListaTulostaja.java @@ -44,7 +44,8 @@ public class KuljetusListaTulostaja extends Tulostaja{ siirräOsoitinta(NIMEN_LEVEYS); sisältö.showText(kuljetus.getLisätieto()); uusiRivi(RIVI_KORKEUS*0.1F); - sisältö.showText("___________________________________________________________________"); //67 alaviivaa (noin sivun leveys) + //67 alaviivaa fonttikoolla 13 (noin sivun leveys) + sisältö.showText("_".repeat((int) (67*13/FONTTI_KOKO))); } tulosta(); diff --git a/src/main/java/fi/lpam/tulostajat/Tulostaja.java b/src/main/java/fi/lpam/tulostajat/Tulostaja.java index 20dd42d..d428427 100644 --- a/src/main/java/fi/lpam/tulostajat/Tulostaja.java +++ b/src/main/java/fi/lpam/tulostajat/Tulostaja.java @@ -1,5 +1,6 @@ package fi.lpam.tulostajat; +import fi.lpam.Main; import fi.lpam.gui.virheDialogit.SiirtoVirhe; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; @@ -17,7 +18,7 @@ import java.io.IOException; public abstract class Tulostaja { final PDRectangle SIVUKOKO = PDRectangle.A4; final PDFont FONTTI = new PDType1Font(Standard14Fonts.FontName.HELVETICA); - final float FONTTI_KOKO = 13; + final float FONTTI_KOKO = Float.parseFloat(Main.properties.getProperty("tulostusFonttiKoko")); final float MARGINAALI = 50; final float RIVI_KORKEUS = FONTTI_KOKO * 1.2F; diff --git a/src/main/resources/defaults.properties b/src/main/resources/defaults.properties index b73f2ce..9752ca7 100644 --- a/src/main/resources/defaults.properties +++ b/src/main/resources/defaults.properties @@ -1,2 +1,11 @@ version=${project.version} -viimeisinVersio=0.0.0 \ No newline at end of file + +buttonFonttiKoko=16 +buttonFontti=Arial +tekstiFonttiKoko=16 +tekstiFontti=Arial + +tulostusFonttiKoko=13 + +taustaVari=lightgray +insets=5 \ No newline at end of file