#17 melkein valmis, vaatii vielä testaamista
This commit is contained in:
@@ -26,8 +26,8 @@ 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, asetukset;
|
||||
asiakasHallinta = new Tab("Asiakashallinta", new Asiakashallinta());
|
||||
@@ -49,7 +49,10 @@ public class App extends Application {
|
||||
|
||||
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);
|
||||
@@ -65,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();
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,27 @@
|
||||
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.Button;
|
||||
import javafx.scene.control.ComboBox;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.Spinner;
|
||||
import javafx.scene.layout.BorderPane;
|
||||
import javafx.scene.layout.GridPane;
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.scene.text.Font;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
|
||||
public class Asetukset extends TabPohja {
|
||||
private static final Properties prop = Main.properties;
|
||||
private static final ObservableList<String> järjestelmäFontit = FXCollections.observableArrayList(Font.getFamilies());
|
||||
|
||||
|
||||
public Asetukset() {
|
||||
BorderPane root = new BorderPane();
|
||||
root.setPadding(oletusInsets);
|
||||
@@ -16,23 +29,90 @@ public class Asetukset extends TabPohja {
|
||||
HBox yläpalkki = new HBox();
|
||||
yläpalkki.setSpacing(5);
|
||||
yläpalkki.setAlignment(Pos.CENTER_RIGHT);
|
||||
Button btnTallenna = new Button("Tallenna");
|
||||
btnTallenna.setFont(buttonFont);
|
||||
btnTallenna.setOnAction(e -> tallennaAsetukset());
|
||||
yläpalkki.getChildren().add(btnTallenna);
|
||||
Button btnNollaa = new Button("Palauta oletukset");
|
||||
btnNollaa.setFont(buttonFont);
|
||||
btnNollaa.setOnAction(_ -> palautaOletukset());
|
||||
yläpalkki.getChildren().add(btnNollaa);
|
||||
root.setTop(yläpalkki);
|
||||
|
||||
root.setLeft(getFonttiAsetukset());
|
||||
|
||||
root.setCenter(new Label("Asetukset"));
|
||||
Label asetukset = new Label("Asetukset");
|
||||
asetukset.setFont(tekstiFont);
|
||||
root.setRight(asetukset);
|
||||
|
||||
this.getChildren().add(root);
|
||||
}
|
||||
|
||||
private void tallennaAsetukset() {
|
||||
throw new RuntimeException("Not implemented");
|
||||
private Spinner<Integer> tekstiFonttiKoko, buttonFonttiKoko, tulostusFonttiKoko, insets;
|
||||
private ComboBox<String> tekstiFontti, buttonFontti;
|
||||
private int minFonttiKoko = 8;
|
||||
private int maxFonttiKoko = 30;
|
||||
private int stepFontti = 1;
|
||||
|
||||
/**
|
||||
* Luo paneelin fonttien asetusten säätämiseen
|
||||
* @return paneeli
|
||||
*/
|
||||
private GridPane getFonttiAsetukset() {
|
||||
GridPane root = new GridPane();
|
||||
root.setAlignment(Pos.CENTER);
|
||||
root.setHgap(10);
|
||||
root.setVgap(10);
|
||||
root.setBorder(oletusBorder);
|
||||
root.setPadding(oletusInsets);
|
||||
int row = 0;
|
||||
|
||||
Label otsikko = new Label("Fonttien asetukset");
|
||||
otsikko.setFont(tekstiFont);
|
||||
root.addRow(row++, otsikko);
|
||||
|
||||
tekstiFonttiKoko = new Spinner<>(minFonttiKoko, maxFonttiKoko, Double.parseDouble(prop.getProperty("tekstiFonttiKoko")), stepFontti);
|
||||
tekstiFonttiKoko.setEditable(true);
|
||||
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, Double.parseDouble(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, Double.parseDouble(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, Double.parseDouble(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 näytäAsetukset() {
|
||||
throw new RuntimeException("Not implemented");
|
||||
private void palautaOletukset() {
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ public class Asiakashallinta extends TabPohja {
|
||||
|
||||
HBox yläpalkinNapit = new HBox();
|
||||
yläpalkinNapit.setSpacing(5);
|
||||
yläpalkinNapit.setPadding(oletusInsets);
|
||||
yläpalkki.setRight(yläpalkinNapit);
|
||||
|
||||
Button avaaVersioloki = new Button("VERSIOLOKI");
|
||||
|
||||
@@ -4,7 +4,7 @@ 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.TabPohja;
|
||||
|
||||
import javafx.collections.FXCollections;
|
||||
@@ -30,7 +30,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();
|
||||
@@ -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,9 @@ public class Kierroshallinta extends TabPohja {
|
||||
}
|
||||
}
|
||||
MultiColumnListView.ListViewColumn<Asiakas> colEiKierroksella = new MultiColumnListView.ListViewColumn<>();
|
||||
colEiKierroksella.setHeader(new Label("Ei vielä kierroksella"));
|
||||
Label labelEiKierroksella = new Label("Ei vielä kierroksella");
|
||||
labelEiKierroksella.setFont(tekstiFont);
|
||||
colEiKierroksella.setHeader(labelEiKierroksella);
|
||||
colEiKierroksella.setItems(FXCollections.observableArrayList(eiKierroksella));
|
||||
mclv.getColumns().add(colEiKierroksella);
|
||||
}
|
||||
@@ -92,7 +94,9 @@ public class Kierroshallinta extends TabPohja {
|
||||
private void lisaaKierros(Kierros kierros) {
|
||||
if (kierros.getId() == -1) kierrokset.add(kierros);
|
||||
MultiColumnListView.ListViewColumn<Asiakas> uusiSarake = new MultiColumnListView.ListViewColumn<>();
|
||||
uusiSarake.setHeader(new Label("Kierros " + kierros.getKierrosNumero()));
|
||||
Label label = new Label("Kierros " + kierros.getKierrosNumero());
|
||||
label.setFont(tekstiFont);
|
||||
uusiSarake.setHeader(label);
|
||||
uusiSarake.setItems(kierros.getAsiakkaat());
|
||||
mclv.getColumns().add(kierros.getKierrosNumero()-1, uusiSarake);
|
||||
}
|
||||
|
||||
+4
-4
@@ -12,13 +12,13 @@ import javafx.scene.layout.StackPane;
|
||||
import javafx.scene.layout.VBox;
|
||||
|
||||
|
||||
public class AsiakasListCell extends MultiColumnListView.ColumnListCell<Asiakas> {
|
||||
public class AsiakasMCLVListCell extends MultiColumnListView.ColumnListCell<Asiakas> {
|
||||
private final StackPane wrapper;
|
||||
|
||||
public AsiakasListCell(MultiColumnListView<Asiakas> multiColumnListView) {
|
||||
public AsiakasMCLVListCell(MultiColumnListView<Asiakas> 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()));
|
||||
@@ -1,22 +1,30 @@
|
||||
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 TabPohja() {
|
||||
Properties prop = Main.properties;
|
||||
oletusInsets = new Insets(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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user