diff --git a/.classpath b/.classpath index e6255cda017eb7c8ac43643c32a7a971648818cb..8c39f29e9959a5779e6a1afb652cf9c24e3b6990 100644 --- a/.classpath +++ b/.classpath @@ -7,5 +7,6 @@ </attributes> </classpathentry> <classpathentry kind="con" path="org.eclipse.fx.ide.jdt.core.JAVAFX_CONTAINER"/> + <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/ohj2"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/src/fxKirjalista/KirjalistaGUIController.java b/src/fxKirjalista/KirjalistaGUIController.java index b9760d866ad209c6253777665ba93ec7ef3b13dd..a8eeee2b1b03158b13374bd1b86e2c45d7110f1f 100644 --- a/src/fxKirjalista/KirjalistaGUIController.java +++ b/src/fxKirjalista/KirjalistaGUIController.java @@ -1,10 +1,88 @@ package fxKirjalista; +import java.util.Optional; + +import fi.jyu.mit.fxgui.Dialogs; +import fi.jyu.mit.fxgui.ModalController; +import javafx.fxml.FXML; +import javafx.scene.control.Alert; +import javafx.scene.control.Alert.AlertType; +import javafx.scene.control.ButtonBar.ButtonData; +import javafx.scene.control.ButtonType; + /** - * @author omistaja - * @version 23.1.2025 - * + * Ohjelman pääikkunan käsittelijä */ public class KirjalistaGUIController { - // TODO -} \ No newline at end of file + + /** + * Kirjan lisäys + */ + @FXML void handleLisaaKirja() { + ModalController.showModal(KirjalistaGUIController.class.getResource("LisaaView.fxml"), "Kirja", null, ""); + } + + /** + * Kirjan muokkaus + */ + @FXML void handleMuokkaaKirja() { + ModalController.showModal(KirjalistaGUIController.class.getResource("MuokkaaView.fxml"), "Kirja", null, ""); + } + + /** + * Tiedosto-valikon tallenna-valinta + */ + @FXML void handleTallenna() { + // TODO: + Dialogs.showMessageDialog("Vielä ei osata tallentaa"); + + } + + /** + * Apua-valikon tietoja-valinta + */ + @FXML void handleTietoja() { + // TODO: + Dialogs.showMessageDialog("Vielä ei osata antaa tietoja"); + + } + + /** + * Tiedosto-valikon tulosta-valinta + */ + @FXML void handleTulosta() { + // TODO: + Dialogs.showMessageDialog("Vielä ei osata tulostaa"); + } + + /** + * Muokkaa-valikon poista-valinta + */ + @FXML void poistaKirja() { + poistoVahvistus(); + } + + @FXML void handleHaku() { + Dialogs.showMessageDialog("Vielä ei osata hakea"); + } + + + + /** + * Luo näytölle dialogin, joka kysyy vahvistusta kirjan poistamiseksi + */ + public static void poistoVahvistus() { + Alert alert = new Alert(AlertType.CONFIRMATION); + alert.setTitle("Poista"); + alert.setHeaderText(null); + alert.setContentText("Haluatko varmasti poistaa kirjan?"); + + ButtonType buttonTypeYes = new ButtonType("Kyllä", ButtonData.OK_DONE); + ButtonType buttonTypeCancel = new ButtonType("Ei", ButtonData.CANCEL_CLOSE); + + alert.getButtonTypes().setAll(buttonTypeYes, buttonTypeCancel); + + Optional<ButtonType> result = alert.showAndWait(); + if ( result.get() == buttonTypeYes ) Dialogs.showMessageDialog("Vielä ei osata poistaa"); + } +} diff --git a/src/fxKirjalista/KirjalistaGUIView.fxml b/src/fxKirjalista/KirjalistaGUIView.fxml index 4f6cab45b6c2b4b7b2fa897d32b59f46f5866e4d..7d695b9c9a2f7c84f18be0aee1fb2803f89fb5d4 100644 --- a/src/fxKirjalista/KirjalistaGUIView.fxml +++ b/src/fxKirjalista/KirjalistaGUIView.fxml @@ -106,7 +106,7 @@ <children> <HBox prefHeight="38.0" prefWidth="250.0"> <children> - <TextField opacity="0.58" promptText="Haku🔍" /> + <TextField onAction="#handleHaku" opacity="0.58" promptText="Haku🔍" /> <SplitMenuButton mnemonicParsing="false" text="Hakuehto"> <items> <MenuItem mnemonicParsing="false" text="Nimi" /> @@ -158,20 +158,19 @@ <menus> <Menu mnemonicParsing="false" text="Tiedosto"> <items> - <MenuItem mnemonicParsing="false" text="Tallenna" /> - <MenuItem mnemonicParsing="false" text="Avaa" /> - <MenuItem mnemonicParsing="false" text="Tulosta" /> + <MenuItem mnemonicParsing="false" onAction="#handleTallenna" text="Tallenna" /> + <MenuItem mnemonicParsing="false" onAction="#handleTulosta" text="Tulosta" /> </items> </Menu> <Menu mnemonicParsing="false" text="Muokkaa"> <items> - <MenuItem mnemonicParsing="false" text="Muokkaa" /> - <MenuItem mnemonicParsing="false" text="Poista" /> + <MenuItem mnemonicParsing="false" onAction="#handleMuokkaaKirja" text="Muokkaa" /> + <MenuItem mnemonicParsing="false" onAction="#poistaKirja" text="Poista" /> </items> </Menu> <Menu mnemonicParsing="false" text="Apua"> <items> - <MenuItem mnemonicParsing="false" text="Tietoja" /> + <MenuItem mnemonicParsing="false" onAction="#handleTietoja" text="Tietoja" /> </items> </Menu> </menus> @@ -183,12 +182,12 @@ <bottom> <HBox BorderPane.alignment="CENTER"> <children> - <Button mnemonicParsing="false" text="Lisää kirja"> + <Button mnemonicParsing="false" onAction="#handleLisaaKirja" text="Lisää kirja"> <HBox.margin> <Insets bottom="5.0" left="7.0" right="5.0" top="5.0" /> </HBox.margin> </Button> - <Button mnemonicParsing="false" text="Muokkaa"> + <Button mnemonicParsing="false" onAction="#handleMuokkaaKirja" text="Muokkaa"> <HBox.margin> <Insets bottom="5.0" left="5.0" right="5.0" top="5.0" /> </HBox.margin> diff --git a/src/fxKirjalista/KirjalistaMain.java b/src/fxKirjalista/KirjalistaMain.java index 188c052b6118c62f7eb9d38569436620ed84b786..0fd5821cdc0069d14a89a12af49834416d3fe004 100644 --- a/src/fxKirjalista/KirjalistaMain.java +++ b/src/fxKirjalista/KirjalistaMain.java @@ -16,14 +16,18 @@ public class KirjalistaMain extends Application { @Override public void start(Stage primaryStage) { try { - FXMLLoader ldr = new FXMLLoader(getClass().getResource("KirjalistaGUIView.fxml")); - final Pane root = ldr.load(); - //final KirjalistaGUIController kirjalistaCtrl = (KirjalistaGUIController) ldr.getController(); - Scene scene = new Scene(root); + + final FXMLLoader ldr = new FXMLLoader(getClass().getResource("KirjalistaGUIView.fxml")); + final Pane root = (Pane)ldr.load(); + + // final KirjalistaGUIController kirjalistaCtrl = (KirjalistaGUIController) ldr.getController(); + final Scene scene = new Scene(root); scene.getStylesheets().add(getClass().getResource("kirjalista.css").toExternalForm()); primaryStage.setScene(scene); primaryStage.setTitle("Kirjalista"); + primaryStage.show(); + } catch(Exception e) { e.printStackTrace(); } diff --git a/src/fxKirjalista/LisaaController.java b/src/fxKirjalista/LisaaController.java new file mode 100644 index 0000000000000000000000000000000000000000..2488f74b3df64b22464adf5735a2eeb97d8c7623 --- /dev/null +++ b/src/fxKirjalista/LisaaController.java @@ -0,0 +1,56 @@ +package fxKirjalista; + +import fi.jyu.mit.fxgui.ComboBoxChooser; +import javafx.fxml.FXML; +import javafx.scene.control.TextField; +import fi.jyu.mit.fxgui.Dialogs; +import fi.jyu.mit.fxgui.ModalController; +import fi.jyu.mit.fxgui.ModalControllerInterface; + +/** + * + */ +public class LisaaController implements ModalControllerInterface<String> { + + @FXML private ComboBoxChooser<?> comboboxGenre; + + @FXML private TextField textKirjailija; + + @FXML private TextField textNimi; + + @FXML private TextField textSarja; + + @FXML private TextField textSivu; + + @FXML private TextField textVuosi; + + @FXML void handleJasenLisatty() { + // TODO: + } + + @FXML void handleOK() { + Dialogs.showMessageDialog("Vielä ei osata lisätä"); + ModalController.closeStage(textNimi); + + } + + @Override + public String getResult() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void handleShown() { + // TODO Auto-generated method stub + + } + + @Override + public void setDefault(String arg0) { + // TODO Auto-generated method stub + + } + + +} diff --git a/src/fxKirjalista/LisaaView.fxml b/src/fxKirjalista/LisaaView.fxml index d7176440d425ee9cd92b5c1623b94aa56b758bb0..320e209ee63a0c864c25a830bea3b4927091f7cf 100644 --- a/src/fxKirjalista/LisaaView.fxml +++ b/src/fxKirjalista/LisaaView.fxml @@ -11,7 +11,7 @@ <?import javafx.scene.layout.RowConstraints?> <?import javafx.scene.layout.VBox?> -<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="343.0" prefWidth="255.0" xmlns="http://javafx.com/javafx/23.0.1" xmlns:fx="http://javafx.com/fxml/1"> +<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="343.0" prefWidth="255.0" xmlns="http://javafx.com/javafx/23.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fxKirjalista.LisaaController"> <children> <Label text="Lisää" /> <GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="272.0" prefWidth="241.0"> @@ -53,22 +53,22 @@ <Insets left="7.0" right="7.0" /> </GridPane.margin> </Label> - <TextField GridPane.columnIndex="1"> + <TextField fx:id="textNimi" GridPane.columnIndex="1"> <GridPane.margin> <Insets left="7.0" right="7.0" /> </GridPane.margin> </TextField> - <TextField GridPane.columnIndex="1" GridPane.rowIndex="1"> + <TextField fx:id="textKirjailija" GridPane.columnIndex="1" GridPane.rowIndex="1"> <GridPane.margin> <Insets left="7.0" right="7.0" /> </GridPane.margin> </TextField> - <TextField GridPane.columnIndex="1" GridPane.rowIndex="2"> + <TextField fx:id="textSarja" GridPane.columnIndex="1" GridPane.rowIndex="2"> <GridPane.margin> <Insets left="7.0" right="7.0" /> </GridPane.margin> </TextField> - <TextField GridPane.columnIndex="1" GridPane.rowIndex="4"> + <TextField fx:id="textVuosi" GridPane.columnIndex="1" GridPane.rowIndex="4"> <GridPane.margin> <Insets left="7.0" right="7.0" /> </GridPane.margin> @@ -78,12 +78,12 @@ <Insets left="7.0" right="7.0" /> </GridPane.margin> </Label> - <TextField GridPane.columnIndex="1" GridPane.rowIndex="5"> + <TextField fx:id="textSivu" GridPane.columnIndex="1" GridPane.rowIndex="5"> <GridPane.margin> <Insets left="7.0" right="7.0" /> </GridPane.margin> </TextField> - <ComboBoxChooser prefHeight="25.0" prefWidth="106.0" rivit="Valitse Sci-fi Fantasia Komedia Tietokirja" GridPane.columnIndex="1" GridPane.rowIndex="3"> + <ComboBoxChooser fx:id="comboboxGenre" prefHeight="25.0" prefWidth="106.0" rivit="Valitse Sci-fi Fantasia Komedia Tietokirja" GridPane.columnIndex="1" GridPane.rowIndex="3"> <GridPane.margin> <Insets bottom="7.0" left="7.0" right="7.0" /> </GridPane.margin> @@ -92,7 +92,7 @@ </GridPane> <HBox alignment="CENTER_RIGHT" prefHeight="100.0" prefWidth="200.0"> <children> - <Button contentDisplay="CENTER" mnemonicParsing="false" text="OK"> + <Button contentDisplay="CENTER" mnemonicParsing="false" onAction="#handleOK" text="OK"> <padding> <Insets bottom="5.0" left="20.0" right="20.0" top="5.0" /> </padding> diff --git a/src/fxKirjalista/MuokkaaController.java b/src/fxKirjalista/MuokkaaController.java new file mode 100644 index 0000000000000000000000000000000000000000..80a652f4cb224dc3718d9b47631c610b9cd505ec --- /dev/null +++ b/src/fxKirjalista/MuokkaaController.java @@ -0,0 +1,62 @@ +package fxKirjalista; + +import fi.jyu.mit.fxgui.ComboBoxChooser; +import javafx.fxml.FXML; +import javafx.scene.control.TextField; +import fi.jyu.mit.fxgui.Dialogs; +import fi.jyu.mit.fxgui.ModalController; +import fi.jyu.mit.fxgui.ModalControllerInterface; + +/** + * + */ +public class MuokkaaController implements ModalControllerInterface<String> { + + @FXML private ComboBoxChooser<?> comboboxGenre; + + @FXML private TextField textKirjailija; + + @FXML private TextField textNimi; + + @FXML private TextField textSarja; + + @FXML private TextField textSivu; + + @FXML private TextField textVuosi; + + @FXML void handleJasenLisatty() { + // TODO: + } + + @FXML void handleOK() { + Dialogs.showMessageDialog("Vielä ei osata muokata"); + ModalController.closeStage(textNimi); + + } + + @FXML void handlePoista() { + KirjalistaGUIController.poistoVahvistus(); + ModalController.closeStage(textNimi); + + } + + @Override + public String getResult() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void handleShown() { + // TODO Auto-generated method stub + + } + + @Override + public void setDefault(String arg0) { + // TODO Auto-generated method stub + + } + + +} diff --git a/src/fxKirjalista/MuokkaaView.fxml b/src/fxKirjalista/MuokkaaView.fxml index 3eabb47659e84553c0ca4e5006ec408352183dd3..d468860ccdc13953947f37e8b41f3dee1aeb8000 100644 --- a/src/fxKirjalista/MuokkaaView.fxml +++ b/src/fxKirjalista/MuokkaaView.fxml @@ -11,7 +11,7 @@ <?import javafx.scene.layout.RowConstraints?> <?import javafx.scene.layout.VBox?> -<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="343.0" prefWidth="255.0" xmlns="http://javafx.com/javafx/23.0.1" xmlns:fx="http://javafx.com/fxml/1"> +<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="343.0" prefWidth="255.0" xmlns="http://javafx.com/javafx/23.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fxKirjalista.MuokkaaController"> <children> <Label text="Muokkaa" /> <GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="272.0" prefWidth="241.0"> @@ -53,22 +53,22 @@ <Insets left="7.0" right="7.0" /> </GridPane.margin> </Label> - <TextField GridPane.columnIndex="1"> + <TextField fx:id="textNimi" GridPane.columnIndex="1"> <GridPane.margin> <Insets left="7.0" right="7.0" /> </GridPane.margin> </TextField> - <TextField GridPane.columnIndex="1" GridPane.rowIndex="1"> + <TextField fx:id="textKirjailija" GridPane.columnIndex="1" GridPane.rowIndex="1"> <GridPane.margin> <Insets left="7.0" right="7.0" /> </GridPane.margin> </TextField> - <TextField GridPane.columnIndex="1" GridPane.rowIndex="2"> + <TextField fx:id="textSarja" GridPane.columnIndex="1" GridPane.rowIndex="2"> <GridPane.margin> <Insets left="7.0" right="7.0" /> </GridPane.margin> </TextField> - <TextField GridPane.columnIndex="1" GridPane.rowIndex="4"> + <TextField fx:id="textVuosi" GridPane.columnIndex="1" GridPane.rowIndex="4"> <GridPane.margin> <Insets left="7.0" right="7.0" /> </GridPane.margin> @@ -78,12 +78,12 @@ <Insets left="7.0" right="7.0" /> </GridPane.margin> </Label> - <TextField GridPane.columnIndex="1" GridPane.rowIndex="5"> + <TextField fx:id="textSivu" GridPane.columnIndex="1" GridPane.rowIndex="5"> <GridPane.margin> <Insets left="7.0" right="7.0" /> </GridPane.margin> </TextField> - <ComboBoxChooser prefHeight="25.0" prefWidth="106.0" rivit="Valitse Sci-fi Fantasia Komedia Tietokirja" GridPane.columnIndex="1" GridPane.rowIndex="3"> + <ComboBoxChooser fx:id="comboboxGenre" prefHeight="25.0" prefWidth="106.0" rivit="Valitse Sci-fi Fantasia Komedia Tietokirja" GridPane.columnIndex="1" GridPane.rowIndex="3"> <GridPane.margin> <Insets bottom="7.0" left="7.0" right="7.0" /> </GridPane.margin> @@ -92,7 +92,7 @@ </GridPane> <HBox alignment="CENTER_RIGHT" prefHeight="100.0" prefWidth="200.0"> <children> - <Button contentDisplay="CENTER" mnemonicParsing="false" text="Poista"> + <Button contentDisplay="CENTER" mnemonicParsing="false" onAction="#handlePoista" text="Poista"> <padding> <Insets bottom="5.0" left="20.0" right="20.0" top="5.0" /> </padding> @@ -100,7 +100,7 @@ <Insets bottom="7.0" left="7.0" right="7.0" top="7.0" /> </HBox.margin> </Button> - <Button contentDisplay="CENTER" mnemonicParsing="false" text="OK"> + <Button contentDisplay="CENTER" mnemonicParsing="false" onAction="#handleOK" text="OK"> <padding> <Insets bottom="5.0" left="20.0" right="20.0" top="5.0" /> </padding>