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 +[![CodeFactor](https://www.codefactor.io/repository/github/CodingFactory-Repos/JavaFX-Librarian/badge)](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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +