diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..f91ef9b
Binary files /dev/null and b/.DS_Store differ
diff --git a/.gitignore b/.gitignore
index a1c2a23..9bea433 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,23 +1,2 @@
-# Compiled class file
-*.class
-# Log file
-*.log
-
-# BlueJ files
-*.ctxt
-
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
-
-# Package Files #
-*.jar
-*.war
-*.nar
-*.ear
-*.zip
-*.tar.gz
-*.rar
-
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
+.DS_Store
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..5c23e96
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+Librarian
\ No newline at end of file
diff --git a/.idea/artifacts/Librarian_jar.xml b/.idea/artifacts/Librarian_jar.xml
new file mode 100644
index 0000000..138fda7
--- /dev/null
+++ b/.idea/artifacts/Librarian_jar.xml
@@ -0,0 +1,22 @@
+
+
+ $PROJECT_DIR$/out/artifacts/Librarian_jar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..e0d769d
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/discord.xml b/.idea/discord.xml
new file mode 100644
index 0000000..d8e9561
--- /dev/null
+++ b/.idea/discord.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_dlsc_formsfx_formsfx_core_11_3_2.xml b/.idea/libraries/Maven__com_dlsc_formsfx_formsfx_core_11_3_2.xml
new file mode 100644
index 0000000..aef380c
--- /dev/null
+++ b/.idea/libraries/Maven__com_dlsc_formsfx_formsfx_core_11_3_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml
new file mode 100644
index 0000000..6ac1c42
--- /dev/null
+++ b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_controlsfx_controlsfx_11_1_0.xml b/.idea/libraries/Maven__org_controlsfx_controlsfx_11_1_0.xml
new file mode 100644
index 0000000..86b7171
--- /dev/null
+++ b/.idea/libraries/Maven__org_controlsfx_controlsfx_11_1_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_1.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_1.xml
new file mode 100644
index 0000000..4910ca9
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_1.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_1.xml
new file mode 100644
index 0000000..85ab9ad
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_engine_5_8_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_1.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_1.xml
new file mode 100644
index 0000000..3417208
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_1.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_1.xml
new file mode 100644
index 0000000..f19b408
--- /dev/null
+++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_engine_1_8_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_openjfx_javafx_base_17_0_1.xml b/.idea/libraries/Maven__org_openjfx_javafx_base_17_0_1.xml
new file mode 100644
index 0000000..fd8b69b
--- /dev/null
+++ b/.idea/libraries/Maven__org_openjfx_javafx_base_17_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_openjfx_javafx_base_mac_17_0_1.xml b/.idea/libraries/Maven__org_openjfx_javafx_base_mac_17_0_1.xml
new file mode 100644
index 0000000..605f1a8
--- /dev/null
+++ b/.idea/libraries/Maven__org_openjfx_javafx_base_mac_17_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_openjfx_javafx_controls_17_0_1.xml b/.idea/libraries/Maven__org_openjfx_javafx_controls_17_0_1.xml
new file mode 100644
index 0000000..5f64e39
--- /dev/null
+++ b/.idea/libraries/Maven__org_openjfx_javafx_controls_17_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_openjfx_javafx_controls_mac_17_0_1.xml b/.idea/libraries/Maven__org_openjfx_javafx_controls_mac_17_0_1.xml
new file mode 100644
index 0000000..df53e5f
--- /dev/null
+++ b/.idea/libraries/Maven__org_openjfx_javafx_controls_mac_17_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_openjfx_javafx_fxml_17_0_1.xml b/.idea/libraries/Maven__org_openjfx_javafx_fxml_17_0_1.xml
new file mode 100644
index 0000000..069c73f
--- /dev/null
+++ b/.idea/libraries/Maven__org_openjfx_javafx_fxml_17_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_openjfx_javafx_fxml_mac_17_0_1.xml b/.idea/libraries/Maven__org_openjfx_javafx_fxml_mac_17_0_1.xml
new file mode 100644
index 0000000..4b3a9bd
--- /dev/null
+++ b/.idea/libraries/Maven__org_openjfx_javafx_fxml_mac_17_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_openjfx_javafx_graphics_17_0_1.xml b/.idea/libraries/Maven__org_openjfx_javafx_graphics_17_0_1.xml
new file mode 100644
index 0000000..13b8fdb
--- /dev/null
+++ b/.idea/libraries/Maven__org_openjfx_javafx_graphics_17_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_openjfx_javafx_graphics_mac_17_0_1.xml b/.idea/libraries/Maven__org_openjfx_javafx_graphics_mac_17_0_1.xml
new file mode 100644
index 0000000..b3763ba
--- /dev/null
+++ b/.idea/libraries/Maven__org_openjfx_javafx_graphics_mac_17_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml
new file mode 100644
index 0000000..fbc1b16
--- /dev/null
+++ b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..f02cc57
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..57d183f
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..e96534f
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Librarian.iml b/Librarian.iml
new file mode 100644
index 0000000..abc6aaf
--- /dev/null
+++ b/Librarian.iml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..dda1498
--- /dev/null
+++ b/README.md
@@ -0,0 +1,17 @@
+# Manager for a library
+☕️ - Project to learn to make an interface for a librarian
+
+## Where are the most important files located?
+
+```bash
+$
+```
+
+## Explainations
+This repository is the result of a school exercise and of a sprint of 1 week to learn Java and to apply some bases.
+
+## License
+[MIT](https://choosealicense.com/licenses/mit/)
+
+## Quality certification
+[](https://www.codefactor.io/repository/github/CodingFactory-Repos/JavaFX-Librarian)
diff --git a/out/artifacts/Librarian_jar/Librarian.jar b/out/artifacts/Librarian_jar/Librarian.jar
new file mode 100644
index 0000000..9e38919
Binary files /dev/null and b/out/artifacts/Librarian_jar/Librarian.jar differ
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..bfdf968
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,91 @@
+
+
+ 4.0.0
+
+ me.loule
+ Librarian
+ 1.0-SNAPSHOT
+ Librarian
+
+
+ UTF-8
+ 5.8.1
+
+
+
+
+ org.openjfx
+ javafx-controls
+ 17.0.1
+
+
+ org.openjfx
+ javafx-fxml
+ 17.0.1
+
+
+ org.controlsfx
+ controlsfx
+ 11.1.0
+
+
+ com.dlsc.formsfx
+ formsfx-core
+ 11.3.2
+
+
+ org.openjfx
+ *
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit.version}
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ ${junit.version}
+ test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 17
+ 17
+
+
+
+ org.openjfx
+ javafx-maven-plugin
+ 0.0.8
+
+
+
+ default-cli
+
+ me.loule.librarian/me.loule.librarian.Main
+ app
+ app
+ app
+ true
+ true
+ true
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/me/loule/librarian/Main.java b/src/main/java/me/loule/librarian/Main.java
new file mode 100644
index 0000000..d279291
--- /dev/null
+++ b/src/main/java/me/loule/librarian/Main.java
@@ -0,0 +1,23 @@
+package me.loule.librarian;
+
+import javafx.application.Application;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Scene;
+import javafx.stage.Stage;
+
+import java.io.IOException;
+
+public class Main extends Application {
+ @Override
+ public void start(Stage stage) throws IOException {
+ FXMLLoader fxmlLoader = new FXMLLoader(Main.class.getResource("Main.fxml"));
+ Scene scene = new Scene(fxmlLoader.load());
+ stage.setTitle("Blibliothèque");
+ stage.setScene(scene);
+ stage.show();
+ }
+
+ public static void main(String[] args) {
+ launch();
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/me/loule/librarian/Run.java b/src/main/java/me/loule/librarian/Run.java
new file mode 100644
index 0000000..046b4f3
--- /dev/null
+++ b/src/main/java/me/loule/librarian/Run.java
@@ -0,0 +1,7 @@
+package me.loule.librarian;
+
+public class Run {
+ public static void main (String[] args){
+ Main.main(args);
+ }
+}
diff --git a/src/main/java/me/loule/librarian/controller/MainController.java b/src/main/java/me/loule/librarian/controller/MainController.java
new file mode 100644
index 0000000..1abd84c
--- /dev/null
+++ b/src/main/java/me/loule/librarian/controller/MainController.java
@@ -0,0 +1,162 @@
+package me.loule.librarian.controller;
+
+import javafx.collections.FXCollections;
+import javafx.collections.ObservableList;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+import javafx.scene.control.*;
+import javafx.scene.control.cell.PropertyValueFactory;
+import javafx.scene.text.Text;
+import me.loule.librarian.model.BookModel;
+
+import java.net.URL;
+import java.util.ResourceBundle;
+
+public class MainController implements Initializable {
+ @FXML
+ private TableView tbData;
+
+ @FXML
+ public TableColumn tableColumTitle;
+
+ @FXML
+ public TableColumn tableColumAuthor;
+
+ @FXML
+ public TableColumn tableColumSummary;
+
+ @FXML
+ public TableColumn tableColumColumn;
+
+ @FXML
+ public TableColumn tableColumRow;
+
+ @FXML
+ public TableColumn tableColumParution;
+
+ @FXML
+ private TextArea textAreaSummary;
+
+ @FXML
+ private TextField textFieldAuthor;
+
+ @FXML
+ private TextField textFieldColumn;
+
+ @FXML
+ private TextField textFieldParution;
+
+ @FXML
+ private TextField textFieldRow;
+
+ @FXML
+ private TextField textFieldTitle;
+
+ @FXML
+ private Button buttonAddBook;
+
+ @FXML
+ private Button buttonDeleteBook;
+
+ @FXML
+ private Text textLogs;
+
+ @FXML
+ private MenuItem menuItemQuit;
+
+ int lastBookSelected = -1;
+
+ @Override
+ public void initialize(URL location, ResourceBundle resources) {
+ // Initialize the table
+ tableColumTitle.setCellValueFactory(new PropertyValueFactory<>("TableColumTitle"));
+ tableColumAuthor.setCellValueFactory(new PropertyValueFactory<>("TableColumAuthor"));
+ tableColumSummary.setCellValueFactory(new PropertyValueFactory<>("TableColumSummary"));
+ tableColumColumn.setCellValueFactory(new PropertyValueFactory<>("TableColumColumn"));
+ tableColumRow.setCellValueFactory(new PropertyValueFactory<>("TableColumRow"));
+ tableColumParution.setCellValueFactory(new PropertyValueFactory<>("TableColumParution"));
+
+ tbData.setItems(BookModels); // Show defaults books
+
+ //Filling Form
+
+ buttonAddBook.setOnMouseClicked(event -> { // On click add a new book
+ if(textFieldTitle.getText().isEmpty() || textFieldAuthor.getText().isEmpty() || textFieldParution.getText().isEmpty() || textFieldRow.getText().isEmpty() || textFieldColumn.getText().isEmpty() || textAreaSummary.getText().isEmpty()) {
+ textLogs.setText("Veuillez remplir tous les champs");
+ } else if(!textFieldColumn.getText().matches("[0-9]+") || !textFieldRow.getText().matches("[0-9]+") || !textFieldParution.getText().matches("[0-9]+")) {
+ textLogs.setText("Veuillez remplir les champs avec des nombres");
+ } else if(Integer.parseInt(textFieldRow.getText()) < 1 || Integer.parseInt(textFieldRow.getText()) > 7) {
+ textLogs.setText("Veuillez remplir les champs avec des nombres entre 1 et 7");
+ } else if(Integer.parseInt(textFieldColumn.getText()) < 1 || Integer.parseInt(textFieldColumn.getText()) > 5) {
+ textLogs.setText("Veuillez remplir les champs avec des nombres entre 1 et 5");
+ }else if(Integer.parseInt(textFieldParution.getText()) > Integer.parseInt(java.time.LocalDate.now().toString().substring(0, 4))) {
+ textLogs.setText("Veuillez remplir les champs avec la bonne Année");
+ } else {
+ if(lastBookSelected != -1) { // If a book is selected
+ // Edit lastBookSelected
+ BookModels.get(lastBookSelected).setTableColumTitle(textFieldTitle.getText());
+ BookModels.get(lastBookSelected).setTableColumAuthor(textFieldAuthor.getText());
+ BookModels.get(lastBookSelected).setTableColumSummary(textAreaSummary.getText());
+ BookModels.get(lastBookSelected).setTableColumColumn(Integer.parseInt(textFieldColumn.getText()));
+ BookModels.get(lastBookSelected).setTableColumRow(Integer.parseInt(textFieldRow.getText()));
+ BookModels.get(lastBookSelected).setTableColumParution(Integer.parseInt(textFieldParution.getText()));
+
+ // Update text
+ textLogs.setText("Le livre " + textFieldTitle.getText() + " a bien été modifié");
+
+ // Reset all textFields
+ textFieldTitle.setText("");
+ textFieldAuthor.setText("");
+ textAreaSummary.setText("");
+ textFieldColumn.setText("");
+ textFieldRow.setText("");
+ textFieldParution.setText("");
+
+ // Reset lastBookSelected
+ lastBookSelected = -1;
+
+ // Show changements
+ tbData.refresh();
+ } else { // If no book is selected
+ // Add a new book
+ BookModels.add(new BookModel(textFieldTitle.getText(), textFieldAuthor.getText(), textAreaSummary.getText(), Integer.parseInt(textFieldColumn.getText()), Integer.parseInt(textFieldRow.getText()), Integer.parseInt(textFieldParution.getText())));
+ textLogs.setText("Le livre " + textFieldTitle.getText() + " a bien été créer");
+ }
+ }
+ });
+
+ tbData.setOnMouseClicked(event -> { // On click select a book
+ // Show selected book
+ BookModel selectedBook = tbData.getSelectionModel().getSelectedItem();
+ textFieldTitle.setText(selectedBook.getTableColumTitle());
+ textFieldAuthor.setText(selectedBook.getTableColumAuthor());
+ textAreaSummary.setText(selectedBook.getTableColumSummary());
+ textFieldColumn.setText(String.valueOf(selectedBook.getTableColumColumn()));
+ textFieldRow.setText(String.valueOf(selectedBook.getTableColumRow()));
+ textFieldParution.setText(String.valueOf(selectedBook.getTableColumParution()));
+
+ // Get book index
+ lastBookSelected = tbData.getSelectionModel().getSelectedIndex();
+ });
+
+ buttonDeleteBook.setOnMouseClicked(event -> { // On click delete a book
+ if(lastBookSelected != -1) { // If a book is selected
+ BookModels.remove(lastBookSelected);
+ lastBookSelected = -1;
+ textLogs.setText("Le livre a bien été supprimé");
+ }
+ });
+
+ // On menuItemQuit click, close the application
+ menuItemQuit.setOnAction(event -> {
+ System.exit(0);
+ });
+ }
+
+ private ObservableList BookModels = FXCollections.observableArrayList(
+ new BookModel("Le Temps des Tempêtes", "Nicolas Sarkozy", "C'est la météo", 1, 2, 2020),
+ new BookModel("La France n'a pas dit son dernier mot", "Éric Zemmour", "Dans la tête d'Eric Zemmour. Journal d'une autobiographie politique.", 1, 2, 2021),
+ new BookModel("L’Avenir en commun", "Jean-Luc Melenchon", "Ce livre réunit trois discours prononcés par Jean-Luc Mélenchon, Mathilde Panot et Eric Coquerel à l’Assemblée nationale, le lundi 29 mars 2021. Il s’agissait de rejeter le projet de loi prétendument issu de la convention citoyenne pour le climat. Ce moment de débat parlementaire a été l’occasion pour Jean-Luc Mélenchon de ramasser la pensée écologique insoumise dans une prise de parole.", 1, 2, 2021)
+ );
+
+}
\ No newline at end of file
diff --git a/src/main/java/me/loule/librarian/model/BookModel.java b/src/main/java/me/loule/librarian/model/BookModel.java
new file mode 100644
index 0000000..bbc4b79
--- /dev/null
+++ b/src/main/java/me/loule/librarian/model/BookModel.java
@@ -0,0 +1,95 @@
+package me.loule.librarian.model;
+
+import javafx.beans.property.SimpleIntegerProperty;
+import javafx.beans.property.SimpleStringProperty;
+
+public class BookModel {
+
+ private SimpleStringProperty tableColumTitle;
+ private SimpleStringProperty tableColumAuthor;
+ private SimpleStringProperty tableColumSummary;
+ private SimpleIntegerProperty tableColumColumn;
+ private SimpleIntegerProperty tableColumRow;
+ private SimpleIntegerProperty tableColumParution;
+
+ public BookModel(String title, String author, String summary, int column, int row, int parution) {
+ this.tableColumTitle = new SimpleStringProperty(title);
+ this.tableColumAuthor = new SimpleStringProperty(author);
+ this.tableColumSummary = new SimpleStringProperty(summary);
+ this.tableColumColumn = new SimpleIntegerProperty(column);
+ this.tableColumRow = new SimpleIntegerProperty(row);
+ this.tableColumParution = new SimpleIntegerProperty(parution);
+ }
+
+ public String getTableColumTitle() {
+ return tableColumTitle.get();
+ }
+
+ public SimpleStringProperty tableColumTitleProperty() {
+ return tableColumTitle;
+ }
+
+ public void setTableColumTitle(String tableColumTitle) {
+ this.tableColumTitle.set(tableColumTitle);
+ }
+
+ public String getTableColumAuthor() {
+ return tableColumAuthor.get();
+ }
+
+ public SimpleStringProperty tableColumAuthorProperty() {
+ return tableColumAuthor;
+ }
+
+ public void setTableColumAuthor(String tableColumAuthor) {
+ this.tableColumAuthor.set(tableColumAuthor);
+ }
+
+ public String getTableColumSummary() {
+ return tableColumSummary.get();
+ }
+
+ public SimpleStringProperty tableColumSummaryProperty() {
+ return tableColumSummary;
+ }
+
+ public void setTableColumSummary(String tableColumSummary) {
+ this.tableColumSummary.set(tableColumSummary);
+ }
+
+ public int getTableColumColumn() {
+ return tableColumColumn.get();
+ }
+
+ public SimpleIntegerProperty tableColumColumnProperty() {
+ return tableColumColumn;
+ }
+
+ public void setTableColumColumn(int tableColumColumn) {
+ this.tableColumColumn.set(tableColumColumn);
+ }
+
+ public int getTableColumRow() {
+ return tableColumRow.get();
+ }
+
+ public SimpleIntegerProperty tableColumRowProperty() {
+ return tableColumRow;
+ }
+
+ public void setTableColumRow(int tableColumRow) {
+ this.tableColumRow.set(tableColumRow);
+ }
+
+ public int getTableColumParution() {
+ return tableColumParution.get();
+ }
+
+ public SimpleIntegerProperty tableColumParutionProperty() {
+ return tableColumParution;
+ }
+
+ public void setTableColumParution(int tableColumParution) {
+ this.tableColumParution.set(tableColumParution);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
new file mode 100644
index 0000000..8ed96ef
--- /dev/null
+++ b/src/main/java/module-info.java
@@ -0,0 +1,15 @@
+module me.loule.librarian {
+ requires javafx.controls;
+ requires javafx.fxml;
+
+ requires org.controlsfx.controls;
+ requires com.dlsc.formsfx;
+
+ opens me.loule.librarian to javafx.fxml;
+ exports me.loule.librarian;
+ exports me.loule.librarian.controller;
+ opens me.loule.librarian.controller to javafx.fxml;
+
+ exports me.loule.librarian.model;
+ opens me.loule.librarian.model to javafx.fxml;
+}
\ No newline at end of file
diff --git a/src/main/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..8af0317
--- /dev/null
+++ b/src/main/resources/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: me.loule.librarian.Run
+
diff --git a/src/main/resources/me/loule/librarian/Main.fxml b/src/main/resources/me/loule/librarian/Main.fxml
new file mode 100644
index 0000000..4322a84
--- /dev/null
+++ b/src/main/resources/me/loule/librarian/Main.fxml
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/target/classes/META-INF/MANIFEST.MF b/target/classes/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..8af0317
--- /dev/null
+++ b/target/classes/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: me.loule.librarian.Run
+
diff --git a/target/classes/me/loule/librarian/Main.class b/target/classes/me/loule/librarian/Main.class
new file mode 100644
index 0000000..d3258e8
Binary files /dev/null and b/target/classes/me/loule/librarian/Main.class differ
diff --git a/target/classes/me/loule/librarian/Main.fxml b/target/classes/me/loule/librarian/Main.fxml
new file mode 100644
index 0000000..4322a84
--- /dev/null
+++ b/target/classes/me/loule/librarian/Main.fxml
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/target/classes/me/loule/librarian/Run.class b/target/classes/me/loule/librarian/Run.class
new file mode 100644
index 0000000..cd41228
Binary files /dev/null and b/target/classes/me/loule/librarian/Run.class differ
diff --git a/target/classes/me/loule/librarian/controller/MainController.class b/target/classes/me/loule/librarian/controller/MainController.class
new file mode 100644
index 0000000..bae9cc7
Binary files /dev/null and b/target/classes/me/loule/librarian/controller/MainController.class differ
diff --git a/target/classes/me/loule/librarian/model/BookModel.class b/target/classes/me/loule/librarian/model/BookModel.class
new file mode 100644
index 0000000..7ed986a
Binary files /dev/null and b/target/classes/me/loule/librarian/model/BookModel.class differ
diff --git a/target/classes/module-info.class b/target/classes/module-info.class
new file mode 100644
index 0000000..4075c26
Binary files /dev/null and b/target/classes/module-info.class differ