Merge branch 'main' of github.com:IUTInfoAix-R202-2022/sae-concombre into admin2

merge avec main
This commit is contained in:
imuny 2022-06-07 09:47:10 +02:00
commit b7645957c6
36 changed files with 798 additions and 406 deletions

View File

@ -1,4 +1,4 @@
name: Java CI with Maven
name: Java CI/CD with Maven
on:
- push
@ -15,7 +15,13 @@ jobs:
distribution: 'zulu'
java-package: 'jdk+fx'
cache: maven
- name: Run headless test
- name: Build and run headless test
uses: GabrielBB/xvfb-action@v1
with:
run: mvn -B package --file pom.xml
- name: Upload resulting executable
uses: actions/upload-artifact@v2
with:
name: jar file
path: target/sae201-1.0-SNAPSHOT.jar

View File

@ -0,0 +1,55 @@
package fr.univ_amu.iut;
import java.util.List;
import fr.univ_amu.iut.model.Academie;
import fr.univ_amu.iut.model.Discipline;
import fr.univ_amu.iut.model.Thematique;
import fr.univ_amu.iut.model.Usage;
public class Donnees {
private static Academie academieSelectionee = null;
private static Thematique thematiqueSelectionee = null;
private static Discipline disciplineSelectionee = Discipline.Toutes;
private static List<Usage> usagesObtenus;
public static List<Usage> getUsagesObtenus() {
return usagesObtenus;
}
public static void setUsagesObtenus(List<Usage> usagesObtenus) {
Donnees.usagesObtenus = usagesObtenus;
}
public static Academie getAcademieSelectionee() {
return academieSelectionee;
}
public static void setAcademieSelectionee(Academie academieSelectionee) {
if (academieSelectionee.equals(Donnees.academieSelectionee)){
academieSelectionee = null;
}
System.out.println("Academie Selectionée : %s".formatted((academieSelectionee == null)?"Aucune academie":academieSelectionee.getNom()));
Donnees.academieSelectionee = academieSelectionee;
}
public static Thematique getThematiqueSelectionee() {
return thematiqueSelectionee;
}
public static void setThematiqueSelectionee(Thematique thematiqueSelectionee) {
if(thematiqueSelectionee == Donnees.thematiqueSelectionee){
thematiqueSelectionee = null;
}
System.out.println("Thematique selectionée : %s".formatted((thematiqueSelectionee == null)? "Aucune Thematique" : thematiqueSelectionee.getNom()));
Donnees.thematiqueSelectionee = thematiqueSelectionee;
}
public static Discipline getDisciplineSelectionee() {
return disciplineSelectionee;
}
public static void setDisciplineSelectionee(Discipline disciplineSelectionee) {
if(disciplineSelectionee == Donnees.disciplineSelectionee){
disciplineSelectionee = Discipline.Toutes;
}
System.out.println("Discipline Selectionee : %s".formatted(disciplineSelectionee.getNom()));
Donnees.disciplineSelectionee = disciplineSelectionee;
}
}

View File

@ -1,48 +0,0 @@
package fr.univ_amu.iut;
import fr.univ_amu.iut.view.map.AcademiePath;
import fr.univ_amu.iut.view.map.France;
import fr.univ_amu.iut.view.map.FranceBuilder;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.CornerRadii;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class FranceMain extends Application {
France france;
@Override
public void init() {
france = FranceBuilder.create()
// .backgroundColor(Color.web("#4aa9d7"))
// .fillColor(Color.web("#dcb36c"))
// .strokeColor(Color.web("#987028"))
// .hoverColor(Color.web("#fec47e"))
// .pressedColor(Color.web("#6cee85"))
// .selectedColor(Color.MAGENTA)
// .mousePressHandler(evt -> {
// AcademiePath academiePath = (AcademiePath) evt.getSource();
// System.out.println("On vient de cliquer sur l'"+academiePath.getAcademie().getNom());
// })
.selectionEnabled(true)
.build();
}
@Override
public void start(Stage stage) {
StackPane pane = new StackPane(france);
pane.setBackground(new Background(new BackgroundFill(france.getBackgroundColor(), CornerRadii.EMPTY, Insets.EMPTY)));
Scene scene = new Scene(pane);
stage.setTitle("Carte des académie");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}

View File

@ -0,0 +1,34 @@
package fr.univ_amu.iut;
import java.io.IOException;
import fr.univ_amu.iut.screenController.ScreenController;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class Main extends Application {
private Scene scene = new Scene(new Pane());
private ScreenController gestionnaireDePages = new ScreenController(scene);
@Override
public void start(Stage stage) throws IOException{
ScreenController.addScreen("Acceuil",FXMLLoader.load(getClass().getResource("/fr/univ_amu/iut/fp/fp.fxml")));
//TODO Ajouter les pages d'admin pour l'ajout des usages
//ScreenController.addScreen("admin1",pane);
//ScreenController.addScreen("admin2",pane);
ScreenController.activate("Acceuil");
stage.setTitle("Carte des académie");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) throws InterruptedException {
Thread.sleep(5000);
launch(args);
}
}

View File

@ -1,6 +1,13 @@
package fr.univ_amu.iut.dao;
import fr.univ_amu.iut.model.Usages;
import fr.univ_amu.iut.model.Academie;
import fr.univ_amu.iut.model.Discipline;
import fr.univ_amu.iut.model.Thematique;
import fr.univ_amu.iut.model.Usage;
public interface DAOUsage extends DAO<Usages>{
import java.util.List;
public interface DAOUsage extends DAO<Usage>{
List<Usage> findByCriterias(Thematique thematique, Discipline discipline, Academie academie);
List<Usage> findByName(String substring);
}

View File

@ -14,42 +14,25 @@ public abstract class DAOBaseClassJPA<T> implements DAO<T> {
}
public boolean insert(T etudiant) {
try{
entityManager.getTransaction().begin();
entityManager.persist(etudiant);
entityManager.getTransaction().commit();
return true;
}catch(Exception e){
e.printStackTrace();
return false;
}
entityManager.getTransaction().begin();
entityManager.persist(etudiant);
entityManager.getTransaction().commit();
return true;
}
public boolean update(T obj) {
try {
entityManager.getTransaction().begin();
entityManager.merge(obj);
entityManager.getTransaction().commit();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
entityManager.getTransaction().begin();
entityManager.merge(obj);
entityManager.getTransaction().commit();
return true;
}
@Override
public boolean delete(T obj) {
try {
entityManager.getTransaction().begin();
entityManager.remove(obj);
entityManager.getTransaction().commit();
entityManager.getTransaction().begin();
entityManager.remove(obj);
entityManager.getTransaction().commit();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
}

View File

@ -2,17 +2,54 @@ package fr.univ_amu.iut.dao.jpa;
import fr.univ_amu.iut.dao.*;
import fr.univ_amu.iut.dao.factory.DAOFactory;
import fr.univ_amu.iut.model.Academie;
import fr.univ_amu.iut.model.Discipline;
import fr.univ_amu.iut.model.RegionAcademique;
import fr.univ_amu.iut.model.Thematique;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.Persistence;
import java.util.ArrayList;
import java.util.Collection;
public class DAOFactoryJPA implements DAOFactory {
private EntityManager entityManager;
private String unitName;
// Nous ne sommes pas sûrs de ou initialiser la base de données
private <T> void insertAllHelper(DAO<T> dao, Collection<T> list){
if(dao.findAll().size()==0){
entityManager.getTransaction().begin();
System.out.println("LOOP");
System.out.flush();
for(var a : list){
entityManager.persist(a);
}
// list.forEach(obj -> entityManager.persist(obj));
entityManager.getTransaction().commit();
}
}
public DAOFactoryJPA(String unitName){
this.unitName = unitName;
insertAllHelper(createDAORegionAcademique(), RegionAcademique.toutes());
insertAllHelper(createDAOAcademie(), Academie.toutes());
insertAllHelper(createDAOThematique(), Thematique.toutes());
insertAllHelper(createDAODiscipline(), Discipline.toutes());
}
public DAOFactoryJPA(){
this("gestionUsagesPU");
}
public EntityManager getEntityManager() {
if(entityManager == null){
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("gestionUsagesPU");
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(unitName);
entityManager = entityManagerFactory.createEntityManager();
}
return entityManager;

View File

@ -22,7 +22,7 @@ public class DAOThematiqueJPA extends DAOBaseClassJPA<Thematique> implements DAO
@Override
public Thematique getById(int id) {
TypedQuery<Thematique> query = entityManager.createNamedQuery("Thematique.findById", Thematique.class);
query.setParameter("numEt", id);
query.setParameter("id", id);
return query.getSingleResult();
}
}

View File

@ -1,28 +0,0 @@
package fr.univ_amu.iut.dao.jpa;
import fr.univ_amu.iut.dao.DAO;
import fr.univ_amu.iut.model.TypeActeur;
import jakarta.persistence.EntityManager;
import jakarta.persistence.TypedQuery;
import java.util.List;
public class DAOTypeActeurJPA extends DAOBaseClassJPA<TypeActeur> implements DAO<TypeActeur> {
public DAOTypeActeurJPA(EntityManager entityManager) {
super(entityManager);
}
@Override
public List<TypeActeur> findAll() {
TypedQuery<TypeActeur> query = entityManager.createNamedQuery("TypeActeur.findAll", TypeActeur.class);
return query.getResultList();
}
@Override
public TypeActeur getById(int id) {
TypedQuery<TypeActeur> query = entityManager.createNamedQuery("TypeActeur.findById", TypeActeur.class);
query.setParameter("numEt", id);
return query.getSingleResult();
}
}

View File

@ -1,28 +1,48 @@
package fr.univ_amu.iut.dao.jpa;
import fr.univ_amu.iut.dao.DAOUsage;
import fr.univ_amu.iut.model.Usages;
import fr.univ_amu.iut.model.Academie;
import fr.univ_amu.iut.model.Discipline;
import fr.univ_amu.iut.model.Thematique;
import fr.univ_amu.iut.model.Usage;
import jakarta.persistence.EntityManager;
import jakarta.persistence.TypedQuery;
import java.util.List;
public class DAOUsageJPA extends DAOBaseClassJPA<Usages> implements DAOUsage {
public class DAOUsageJPA extends DAOBaseClassJPA<Usage> implements DAOUsage {
public DAOUsageJPA(EntityManager entityManager) {
super(entityManager);
}
@Override
public List<Usages> findAll() {
TypedQuery<Usages> query = entityManager.createNamedQuery("Usage.findAll", Usages.class);
public List<Usage> findAll() {
TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.findAll", Usage.class);
return query.getResultList();
}
@Override
public Usages getById(int id) {
TypedQuery<Usages> query = entityManager.createNamedQuery("Usage.findById", Usages.class);
public Usage getById(int id) {
TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.findById", Usage.class);
query.setParameter("numEt", id);
return query.getSingleResult();
}
@Override
public List<Usage> findByCriterias(Thematique thematique, Discipline discipline, Academie academie) {
TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.findByCriterias", Usage.class);
query.setParameter("thematique", thematique);
query.setParameter("discipline", discipline);
query.setParameter("academie", academie);
return query.getResultList();
}
@Override
public List<Usage> findByName(String substring) {
TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.findByName", Usage.class);
query.setParameter("substring", "%"+substring+"%");
return query.getResultList();
}
}

View File

@ -10,43 +10,45 @@ import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import fr.univ_amu.iut.Donnees;
import fr.univ_amu.iut.model.Usage;
public class Controller implements Initializable{
@FXML
private TableColumn<Utilisateur, String> Disciplines;
private TableView<TableEntry> table;
@FXML
private TableColumn<Utilisateur, String> Niveaux;
private TableColumn<TableEntry, String> discipline;
@FXML
private TableColumn<Utilisateur, String> Noms;
private TableColumn<TableEntry, String> niveau;
@FXML
private TableColumn<Utilisateur, Integer> Numéro;
private TableColumn<TableEntry, String> nom;
@FXML
private TableView<Utilisateur> Table;
@FXML
private TableColumn<Utilisateur, String> Types;
ObservableList<Utilisateur> list = FXCollections.observableArrayList(
new Utilisateur(1,"Patrik","Maht","Blog","Terminal"),
new Utilisateur(2,"Mark","Chimie","Site","Seconde")
);
private TableColumn<TableEntry, String> description;
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
Noms.setCellValueFactory(new PropertyValueFactory<Utilisateur, String>("Noms"));
Numéro.setCellValueFactory(new PropertyValueFactory<Utilisateur, Integer>("Numéro"));
Disciplines.setCellValueFactory(new PropertyValueFactory<Utilisateur, String>("Disciplines"));
Types.setCellValueFactory(new PropertyValueFactory<Utilisateur, String>("Types"));
Niveaux.setCellValueFactory(new PropertyValueFactory<Utilisateur, String>("Niveaux"));
Table.setItems(list);
List<TableEntry> entries = new ArrayList<>();
for (Usage usage: Donnees.getUsagesObtenus()){
entries.add(new TableEntry(usage));
}
ObservableList<TableEntry> tableEntries = FXCollections.observableArrayList(entries);
table.setItems(tableEntries);
nom.setCellValueFactory(new PropertyValueFactory<TableEntry, String>("nom"));
discipline.setCellValueFactory(new PropertyValueFactory<TableEntry, String>("discipline"));
description.setCellValueFactory(new PropertyValueFactory<TableEntry, String>("description"));
niveau.setCellValueFactory(new PropertyValueFactory<TableEntry, String>("niveau"));
}
}

View File

@ -6,13 +6,12 @@
<AnchorPane prefHeight="400.0" prefWidth="600.0" style="-fx-background-color: #1e3d59#1e3d59;" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fr.univ_amu.iut.fResultat.Controller">
<children>
<TableView fx:id="Table" layoutX="10.0" layoutY="10.0" prefHeight="380.0" prefWidth="580.0" style="-fx-background-radius: 20; -fx-border-color: #1e3d59#1e3d59; -fx-background-color: #f5f0e1#f5f0e1;" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0" AnchorPane.topAnchor="10.0">
<TableView fx:id="table" layoutX="10.0" layoutY="10.0" prefHeight="380.0" prefWidth="580.0" style="-fx-background-radius: 20; -fx-border-color: #1e3d59#1e3d59; -fx-background-color: #f5f0e1#f5f0e1;" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0" AnchorPane.topAnchor="10.0">
<columns>
<TableColumn fx:id="Numéro" prefWidth="75.0" text="Numéro" />
<TableColumn fx:id="Noms" prefWidth="121.0" text="Noms" />
<TableColumn fx:id="Disciplines" prefWidth="128.0" text="Disciplines" />
<TableColumn fx:id="Types" prefWidth="124.0" text="Types" />
<TableColumn fx:id="Niveaux" minWidth="8.0" prefWidth="130.0" text="Niveaux" />
<TableColumn fx:id="nom" prefWidth="121.0" text="Nom" />
<TableColumn fx:id="discipline" prefWidth="128.0" text="Disciplines" />
<TableColumn fx:id="niveau" minWidth="8.0" prefWidth="130.0" text="Niveaux" />
<TableColumn fx:id="description" prefWidth="124.0" text="Description" />
</columns>
</TableView>
</children>

View File

@ -1,24 +0,0 @@
package fr.univ_amu.iut.fResultat;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {launch(args);}
@Override
public void start(Stage stage) throws Exception {
try {
AnchorPane root = FXMLLoader.load(getClass().getResource("/fr/univ_amu/iut/fResultat/FResultat.fxml"));
stage.setScene(new Scene(root));
stage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@ -0,0 +1,54 @@
package fr.univ_amu.iut.fResultat;
import java.util.List;
import fr.univ_amu.iut.model.Usage;
public class TableEntry {
private String nom;
private String discipline;
private String description;
private String niveau;
public TableEntry(Usage usage) {
nom = usage.getNom();
discipline = usage.getDiscipline().getNom();
description = usage.getDescription();
niveau = usage.getNiveau().getNom();
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getDiscipline() {
return discipline;
}
public void setDiscipline(String discipline) {
this.discipline = discipline;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getNiveau() {
return niveau;
}
public void setNiveau(String niveau) {
this.niveau = niveau;
}
}

View File

@ -1,40 +0,0 @@
package fr.univ_amu.iut.fResultat;
import java.util.List;
public class Utilisateur {
private int Numéro ;
private String Noms;
private String Disciplines;
private String Types;
private String Niveaux;
public Utilisateur(int numero, String noms, String disciplines, String types, String niveaux) {
Numéro = numero;
Noms = noms;
Disciplines = disciplines;
Types = types;
Niveaux = niveaux;
}
public int getNuméro() {
return Numéro;
}
public String getNoms() {
return Noms;
}
public String getDisciplines() {
return Disciplines;
}
public String getTypes() {
return Types;
}
public String getNiveaux() {
return Niveaux;
}
}

View File

@ -1,86 +1,142 @@
package fr.univ_amu.iut.fp;
import fr.univ_amu.iut.Donnees;
import fr.univ_amu.iut.dao.DAODiscipline;
import fr.univ_amu.iut.dao.DAORessource;
import fr.univ_amu.iut.dao.DAOThematique;
import fr.univ_amu.iut.dao.DAOUsage;
import fr.univ_amu.iut.dao.factory.DAOFactory;
import fr.univ_amu.iut.dao.factory.DAOFactoryProducer;
import fr.univ_amu.iut.dao.factory.DAOType;
import fr.univ_amu.iut.model.Ressource;
import fr.univ_amu.iut.model.Discipline;
import fr.univ_amu.iut.model.Thematique;
import fr.univ_amu.iut.screenController.ScreenController;
import fr.univ_amu.iut.view.map.AcademiePath;
import fr.univ_amu.iut.view.map.France;
import fr.univ_amu.iut.view.map.FranceBuilder;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.event.EventHandler;
import javafx.event.ActionEvent;
import java.io.IOException;
import java.net.URL;
import java.util.List;
import java.util.ResourceBundle;
public class Controller implements Initializable {
France france;
EventHandler<MouseEvent> onEnterHandler;
EventHandler<MouseEvent> onExitHandler;
DAOFactory daoFactory;
DAORessource daoRessource;
DAODiscipline daoDiscipline;
DAOThematique daoThematique;
DAOUsage daoUsage;
@FXML
private Pane stackPaneFrance;
@FXML
private AnchorPane ressource;
private AnchorPane discipline;
@FXML
private AnchorPane thematique;
@FXML
private Button recherche;
// Style des boutons
Background btNormalBackground = new Background(new BackgroundFill(Color.rgb(255,110,64), new CornerRadii(30), Insets.EMPTY));
Background btNormalHover = new Background(new BackgroundFill(Color.rgb(255,152,120), new CornerRadii(30), Insets.EMPTY));
Background btNormalSelected = new Background(new BackgroundFill(Color.rgb(255,60,0), new CornerRadii(30), Insets.EMPTY));
private void initFrance() {
france = FranceBuilder.create()
.backgroundColor(Color.web("#f5f0e1"))
.fillColor(Color.web("#1e3d59"))
// .strokeColor(Color.web("#987028"))
// .hoverColor(Color.web("#fec47e"))
// .pressedColor(Color.web("#6cee85"))
// .selectedColor(Color.MAGENTA)
// .mousePressHandler(evt -> {
// AcademiePath academiePath = (AcademiePath) evt.getSource();
// System.out.println("On vient de cliquer sur l'"+academiePath.getAcademie().getNom());
// })
.mousePressHandler(evt -> {
AcademiePath academiePath = (AcademiePath) evt.getSource();
Donnees.setAcademieSelectionee(academiePath.getAcademie());
})
.selectionEnabled(true)
.build();
}
private Button initButton(Object obj,int x,int y){
String nom = "";
EventHandler<ActionEvent> actionHandler;
EventHandler<MouseEvent> onPressHandler;
onEnterHandler = evt -> {
Button bt = (Button) evt.getSource();
bt.setBackground(btNormalHover);
};
onExitHandler= evt -> {
Button bt = (Button) evt.getSource();
bt.setBackground(btNormalBackground);
};
/*<Button layoutX="38.0" layoutY="30.0" mnemonicParsing="false" prefHeight="115.0" prefWidth="235.0" style="-fx-background-radius: 30; -fx-background-color: #ff6e40;" text="Button" />
<Button layoutX="332.0" layoutY="30.0" mnemonicParsing="false" prefHeight="115.0" prefWidth="235.0" style="-fx-background-radius: 30; -fx-background-color: #ff6e40#ff6e40;" text="Button" />*/
onPressHandler = event -> {
Button bt = (Button) event.getSource();
if(bt.getBackground().equals(btNormalSelected)){
bt.setBackground(btNormalHover);
bt.setOnMouseEntered(onEnterHandler);
bt.setOnMouseExited(onExitHandler);
}
else{
bt.setBackground(btNormalSelected);
bt.setOnMouseEntered(null);
bt.setOnMouseExited(null);
}
};
private Button initButton(String ressource,int x,int y){
Button bt = new Button(ressource);
if ( obj instanceof Discipline ){
Discipline disciplineActuelle = (Discipline) obj;
nom = disciplineActuelle.getNom();
actionHandler = event -> {Donnees.setDisciplineSelectionee(disciplineActuelle);};
}
else{
Thematique thematiqueActuelle = (Thematique) obj;
nom = thematiqueActuelle.getNom();
actionHandler = event -> {Donnees.setThematiqueSelectionee(thematiqueActuelle);};
}
Button bt = new Button(nom);
bt.setMnemonicParsing(false);
bt.setMinSize(235,115);
bt.layoutXProperty().setValue(x);
bt.layoutYProperty().setValue(y);
bt.setId(ressource);
bt.setId(nom);
bt.prefHeight(115);
bt.prefWidth(235);
bt.setText(ressource);
bt.setBackground(new Background(new BackgroundFill(Color.rgb(255,110,64), new CornerRadii(30), Insets.EMPTY)));
bt.setText(nom);
bt.setBackground(btNormalBackground);
bt.setOnAction(actionHandler);
bt.setOnMouseClicked(onPressHandler);
bt.setOnMouseEntered(onEnterHandler);
bt.setOnMouseExited(onExitHandler);
return bt;
}
private Void placeButtonRessource(){
List<Ressource> ressources = daoRessource.findAll();
ressource.setMinHeight(ressources.size()*65);
for (int i = 0;i<ressources.size();++i){
private Void placeButtonDiscipline(){
List<Discipline> disciplines = daoDiscipline.findAll();
discipline.setMinHeight(disciplines.size()*65);
for (int i = 0;i<disciplines.size();++i){
if (i%2 == 0){
ressource.getChildren().add(initButton(ressources.get(i).getNomRessource(),38,i/2*130));
discipline.getChildren().add(initButton(disciplines.get(i),38,i/2*130));
}
else {
ressource.getChildren().add(initButton(ressources.get(i).getNomRessource(),332,i/2*130));
discipline.getChildren().add(initButton(disciplines.get(i),332,i/2*130));
}
}
@ -92,13 +148,12 @@ public class Controller implements Initializable {
thematique.setMinHeight(thematiques.size()*65);
for (int i = 0;i<thematiques.size();++i){
if (i%2 == 0){
thematique.getChildren().add(initButton(thematiques.get(i).getNom(),38,i/2*130));
thematique.getChildren().add(initButton(thematiques.get(i),38,i/2*130));
}
else {
thematique.getChildren().add(initButton(thematiques.get(i).getNom(),332,i/2*130));
thematique.getChildren().add(initButton(thematiques.get(i),332,i/2*130));
}
}
return null;
}
@ -109,19 +164,31 @@ public class Controller implements Initializable {
// init
daoFactory = DAOFactoryProducer.getFactory(DAOType.TEST);
daoRessource = daoFactory.createDAORessource();
daoDiscipline = daoFactory.createDAODiscipline();
daoThematique = daoFactory.createDAOThematique();
daoUsage = daoFactory.createDAOUsage();
// a chaque fois
List<Ressource> l = daoRessource.findAll();
List<Discipline> d = daoDiscipline.findAll();
List<Thematique> t = daoThematique.findAll();
System.out.println(l);
placeButtonThematique();
placeButtonRessource();
// matiere.getChildren().add(initButton(t.get(0).getNom(),38,30));
// matiere.getChildren().add(initButton("test",38,160));
placeButtonDiscipline();
EventHandler<ActionEvent> handler = event ->{
//TODO Recherche en fonctions des objets selectionnés
Donnees.setUsagesObtenus(daoUsage.findByCriterias(Donnees.getThematiqueSelectionee(),Donnees.getDisciplineSelectionee(),Donnees.getAcademieSelectionee()));
Stage resultats = new Stage();
try {
resultats.setScene(new Scene(FXMLLoader.load(getClass().getResource("/fr/univ_amu/iut/fResultat/FResultat.fxml"))));
resultats.show();
} catch (IOException e) {
e.printStackTrace();
}
};
recherche.setOnAction(handler);
}
}

View File

@ -1,25 +0,0 @@
package fr.univ_amu.iut.fp;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {launch(args);}
@Override
public void start(Stage stage) throws Exception {
try {
AnchorPane root = FXMLLoader.load(getClass().getResource("/fr/univ_amu/iut/fp/fp.fxml"));
stage.setScene(new Scene(root));
stage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@ -1,26 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.Cursor?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.StackPane?>
<AnchorPane id="root" prefHeight="798.0" prefWidth="1365.0" style="-fx-background-color: #f5f0e1#f5f0e1;" xmlns="http://javafx.com/javafx/16" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fr.univ_amu.iut.fp.Controller">
<AnchorPane id="root" prefHeight="798.0" prefWidth="1365.0" style="-fx-background-color: #f5f0e1#f5f0e1;" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="fr.univ_amu.iut.fp.Controller">
<children>
<StackPane id="stackPaneFrance" fx:id="stackPaneFrance" layoutX="43.0" layoutY="92.0" prefHeight="649.0" prefWidth="642.0" style="-fx-background-color: blue;" />
<AnchorPane layoutX="11.0" prefHeight="80.0" prefWidth="1019.0" style="-fx-background-color: #1e3d59#1e3d59;" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0">
<children>
<TextField id="barreDeRecherche " layoutX="329.0" layoutY="27.0" prefHeight="27.0" prefWidth="372.0" style="-fx-background-color: #CDD0D4#CDD0D4; -fx-border-radius: 5em; -fx-background-radius: 5em;" text="Entrer nom projet : " AnchorPane.leftAnchor="329.0" AnchorPane.rightAnchor="329.0">
<TextField id="barreDeRecherche " layoutX="329.0" layoutY="27.0" prefHeight="27.0" prefWidth="372.0" promptText="Entrer nom projet :" style="-fx-background-color: #CDD0D4#CDD0D4; -fx-border-radius: 5em; -fx-background-radius: 5em;" text=" " AnchorPane.leftAnchor="329.0" AnchorPane.rightAnchor="329.0">
<cursor>
<Cursor fx:constant="CROSSHAIR" />
<Cursor fx:constant="TEXT" />
</cursor>
</TextField>
<Button layoutX="1066.0" layoutY="27.0" mnemonicParsing="false" text="RECHERCHER VIA LE NOM" />
</children>
</AnchorPane>
<StackPane layoutX="744.0" layoutY="100.0" prefHeight="181.0" prefWidth="622.0" style="-fx-background-color: none;" AnchorPane.rightAnchor="-1.0" AnchorPane.topAnchor="100.0">
<children>
<ScrollPane hbarPolicy="NEVER" prefHeight="471.0" prefWidth="347.0" style="-fx-background-color: #f5f0e1;">
<content>
<AnchorPane id="ressource" fx:id="ressource" minHeight="0.0" minWidth="0.0" prefHeight="442.0" prefWidth="620.0" style="-fx-background-color: #f5f0e1#f5f0e1;">
<AnchorPane id="discipline" fx:id="discipline" minHeight="0.0" minWidth="0.0" prefHeight="442.0" prefWidth="620.0" style="-fx-background-color: #f5f0e1#f5f0e1;">
<children>
</children>
@ -41,6 +45,6 @@
</ScrollPane>
</children>
</StackPane>
<Button layoutX="875.0" layoutY="606.0" mnemonicParsing="false" prefHeight="120.0" prefWidth="337.0" style="-fx-background-radius: 50; -fx-background-color: #ffc13b#ffc13b;" text="RECHERCHER" AnchorPane.bottomAnchor="72.0" AnchorPane.rightAnchor="153.0" />
<Button id="recherche" fx:id="recherche" layoutX="875.0" layoutY="606.0" mnemonicParsing="false" prefHeight="120.0" prefWidth="337.0" style="-fx-background-radius: 50; -fx-background-color: #ffc13b#ffc13b;" text="RECHERCHER VIA LES FILTRES" AnchorPane.bottomAnchor="72.0" AnchorPane.rightAnchor="153.0" />
</children>
</AnchorPane>

View File

@ -2,6 +2,7 @@ package fr.univ_amu.iut.model;
import jakarta.persistence.*;
import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@ -11,7 +12,7 @@ import java.util.Map;
@NamedQuery(name = "Academie.findByCode", query = "SELECT p FROM Academie p WHERE p.code = :acaCode"),
})
@Entity
public class Academie {
public class Academie implements Serializable {
private final static HashMap<String, Academie> INSTANCES = new HashMap<>();
@Transient
public static Academie Mayotte = new Academie("MY", "Académie de Mayotte", RegionAcademique.Mayotte);
@ -125,4 +126,19 @@ public class Academie {
", regionAcademique=" + regionAcademique +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Academie academie = (Academie) o;
return code.equals(academie.code);
}
@Override
public int hashCode() {
return code.hashCode();
}
}

View File

@ -2,21 +2,23 @@ package fr.univ_amu.iut.model;
import jakarta.persistence.*;
import java.io.Serializable;
@NamedQueries({
@NamedQuery(name = "Acteur.findAll", query = "SELECT p FROM Acteur p"),
@NamedQuery(name = "Acteur.findById", query = "SELECT p FROM Acteur p WHERE p.id = :id"),
})
@Entity
public class Acteur {
public class Acteur implements Serializable {
@Id
@GeneratedValue
int id;
String type;
String identite;
public Acteur(String type, String identite) {
String type;
public Acteur(String identite, String type) {
this.type = type;
this.identite = identite;
}
@ -52,4 +54,24 @@ public class Acteur {
", identite='" + identite + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Acteur acteur = (Acteur) o;
if (id != acteur.id) return false;
if (!identite.equals(acteur.identite)) return false;
return type.equals(acteur.type);
}
@Override
public int hashCode() {
int result = id;
result = 31 * result + identite.hashCode();
result = 31 * result + type.hashCode();
return result;
}
}

View File

@ -1,17 +1,19 @@
package fr.univ_amu.iut.model;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.Transient;
import jakarta.persistence.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@NamedQueries({
@NamedQuery(name = "Discipline.findAll", query = "SELECT p FROM Discipline p"),
@NamedQuery(name = "Discipline.findById", query = "SELECT p FROM Discipline p WHERE p.id = :id"),
})
@Entity
public class Discipline {
public class Discipline implements Serializable {
private static List<Discipline> INSTANCES = new ArrayList<>();
private static final List<Discipline> INSTANCES = new ArrayList<>();
@Transient
public static Discipline Toutes = new Discipline("Toutes disciplines");
@ -33,15 +35,16 @@ public class Discipline {
@Id
@GeneratedValue
int id;
@Column(unique = true)
String nom;
public Discipline() {
INSTANCES.add(this);
}
public Discipline(String nom) {
this();
this.nom = nom;
INSTANCES.add(this);
}
public static List<Discipline> toutes() {
@ -71,4 +74,22 @@ public class Discipline {
", nom='" + nom + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Discipline that = (Discipline) o;
if (id != that.id) return false;
return nom.equals(that.nom);
}
@Override
public int hashCode() {
int result = id;
result = 31 * result + nom.hashCode();
return result;
}
}

View File

@ -18,4 +18,12 @@ public enum Niveau {
}
return null;
}
@Override
public String toString() {
return "Niveau{" +
"nom='" + nom + '\'' +
'}';
}
}

View File

@ -2,61 +2,69 @@ package fr.univ_amu.iut.model;
import jakarta.persistence.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@NamedQueries({
@NamedQuery(name = "RegionAcademique.findAll", query = "SELECT p FROM RegionAcademique p"),
@NamedQuery(name = "RegionAcademique.findById", query = "SELECT p FROM RegionAcademique p WHERE p.id = :id"),
})
@Entity
public class RegionAcademique {
public class RegionAcademique implements Serializable {
private static List<RegionAcademique> INSTANCES = new ArrayList<>();
@Transient
public static RegionAcademique AuvergneRhoneAlpes = new RegionAcademique("Région académique Auvergne-Rhône-Alpes");
@Transient
public static RegionAcademique BourgogneFrancheComte = new RegionAcademique("Région académique Bourgogne-Franche-Comté");
@Transient
public static RegionAcademique Bretagne = new RegionAcademique("Région académique Bretagne");
@Transient
public static RegionAcademique CentreValDeLoire = new RegionAcademique("Région académique Centre-Val de Loire");
@Transient
public static RegionAcademique Corse = new RegionAcademique("Région académique Corse");
@Transient
public static RegionAcademique GrandEst = new RegionAcademique("Région académique Grand Est");
@Transient
public static RegionAcademique Guadeloupe = new RegionAcademique("Région académique Guadeloupe");
@Transient
public static RegionAcademique Guyane = new RegionAcademique("Région académique Guyane");
@Transient
public static RegionAcademique HautsDeFrance = new RegionAcademique("Région académique Hauts-de-France");
@Transient
public static RegionAcademique IleDeFrance = new RegionAcademique("Région académique Île-de-France");
@Transient
public static RegionAcademique Martinique = new RegionAcademique("Région académique Martinique");
@Transient
public static RegionAcademique Normandie = new RegionAcademique("Région académique Normandie");
@Transient
public static RegionAcademique NouvelleAquitaine = new RegionAcademique("Région académique Nouvelle-Aquitaine");
@Transient
public static RegionAcademique Occitanie = new RegionAcademique("Région académique Occitanie");
@Transient
public static RegionAcademique PaysDeLaLoire = new RegionAcademique("Région académique Pays de la Loire");
@Transient
public static RegionAcademique ProvenceAlpesCoteDAzur = new RegionAcademique("Région académique Provence-Alpes-Côte d'Azur");
@Transient
public static RegionAcademique Reunion = new RegionAcademique("Région académique La Réunion");
@Transient
public static RegionAcademique Mayotte = new RegionAcademique("Région académique Mayotte");
@Id
@GeneratedValue
int id;
@Column(unique = true)
String nom;
public RegionAcademique() {
INSTANCES.add(this);
}
public RegionAcademique(String nom) {
this();
INSTANCES.add(this);
this.nom = nom;
}
@ -78,4 +86,31 @@ public class RegionAcademique {
public String getNom() {
return nom;
}
@Override
public String toString() {
return "RegionAcademique{" +
"id=" + id +
", nom='" + nom + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RegionAcademique that = (RegionAcademique) o;
if (id != that.id) return false;
return nom.equals(that.nom);
}
@Override
public int hashCode() {
int result = id;
result = 31 * result + nom.hashCode();
return result;
}
}

View File

@ -2,6 +2,8 @@ package fr.univ_amu.iut.model;
import jakarta.persistence.*;
import java.io.Serializable;
import java.net.MalformedURLException;
import java.net.URL;
@NamedQueries({
@ -9,17 +11,31 @@ import java.net.URL;
@NamedQuery(name = "Ressource.findById", query = "SELECT p FROM Ressource p WHERE p.id = :id"),
})
@Entity
public class Ressource {
public class Ressource implements Serializable {
@Id
@GeneratedValue
int id;
String nomRessource;
String typeRessource;
URL lienRessource;
public Ressource(URL lienRessource, String nomRessource, String typeRessource) {
String typeRessource;
private static URL convertUrl(String url){
try{
return new URL(url);
}catch(MalformedURLException e){
e.printStackTrace();
return null;
}
}
public Ressource(String nomRessource, String lienRessource, String typeRessource) {
this(nomRessource, convertUrl(lienRessource), typeRessource);
}
public Ressource(String nomRessource, URL lienRessource, String typeRessource) {
this.nomRessource = nomRessource;
this.typeRessource = typeRessource;
this.lienRessource = lienRessource;
}
@ -50,4 +66,19 @@ public class Ressource {
", lienRessource=" + lienRessource +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Ressource ressource = (Ressource) o;
return id == ressource.id;
}
@Override
public int hashCode() {
return id;
}
}

View File

@ -1,12 +1,23 @@
package fr.univ_amu.iut.model;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.Transient;
import jakarta.persistence.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
@NamedQueries({
@NamedQuery(name = "Thematique.findAll", query = "SELECT p FROM Thematique p"),
@NamedQuery(name = "Thematique.findById", query = "SELECT p FROM Thematique p WHERE p.id = :id"),
})
@Entity
public class Thematique {
public class Thematique implements Serializable {
private final static List<Thematique> INSTANCES = new ArrayList<>();
@Transient
public static Thematique ClasseInversee= new Thematique("Classe inversée");
@Transient
@ -55,6 +66,8 @@ public class Thematique {
@Id
@GeneratedValue
int id;
@Column(unique = true)
String nom;
public String getNom() {
@ -63,11 +76,15 @@ public class Thematique {
public Thematique(String nom) {
this.nom = nom;
INSTANCES.add(this);
}
public Thematique() {
}
public static List<Thematique> toutes(){
return INSTANCES;
}
@Override
public String toString() {
@ -76,4 +93,22 @@ public class Thematique {
", nom='" + nom + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Thematique that = (Thematique) o;
if (id != that.id) return false;
return nom.equals(that.nom);
}
@Override
public int hashCode() {
int result = id;
result = 31 * result + nom.hashCode();
return result;
}
}

View File

@ -1,31 +0,0 @@
package fr.univ_amu.iut.model;
import jakarta.persistence.*;
@NamedQueries({
@NamedQuery(name = "TypeActeur.findAll", query = "SELECT p FROM TypeActeur p"),
@NamedQuery(name = "TypeActeur.findById", query = "SELECT p FROM TypeActeur p WHERE p.id = :id"),
})
@Entity
public class TypeActeur {
@Id
@GeneratedValue
int id;
String nom;
public TypeActeur(String nom) {
this.nom = nom;
}
public TypeActeur() {
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
}

View File

@ -1,23 +0,0 @@
package fr.univ_amu.iut.model;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
@Entity
public class TypeRessource {
@Id
@GeneratedValue
int id;
String nom;
public TypeRessource(String nom) {
this.nom = nom;
}
public TypeRessource() {}
public String getNom() {
return nom;
}
}

View File

@ -2,15 +2,23 @@ package fr.univ_amu.iut.model;
import jakarta.persistence.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@NamedQueries({
@NamedQuery(name = "Usage.findAll", query = "SELECT p FROM Usages p"),
@NamedQuery(name = "Usage.findById", query = "SELECT p FROM Usages p WHERE p.id = :id"),
@NamedQuery(name = "Usage.findAll", query = "SELECT p FROM Usage p"),
@NamedQuery(name = "Usage.findById", query = "SELECT p FROM Usage p WHERE p.id = :id"),
@NamedQuery(name = "Usage.findByName", query = "SELECT p FROM Usage p WHERE p.nom LIKE :substring"),
@NamedQuery(name = "Usage.findByCriterias", query = "SELECT p FROM Usage p WHERE" +
"(:thematique is null or :thematique=p.thematique)" +
"AND (:discipline is null or :discipline=p.discipline)"+
"AND (:academie is null or :academie=p.academie)"),
})
@Entity
public class Usages {
@Table(name="\"USAGE\"")
public class Usage implements Serializable {
@Id
@GeneratedValue
int id;
@ -34,12 +42,12 @@ public class Usages {
@OneToMany(cascade = CascadeType.ALL)
List<Ressource> ressources = new ArrayList<>();
@OneToOne(cascade = CascadeType.ALL)
Acteur acteur;
@OneToMany(cascade = CascadeType.ALL)
List<Acteur> acteurs = new ArrayList<>();
String commentaire;
public Usages() {
public Usage() {
}
public String getNom() {
@ -98,12 +106,12 @@ public class Usages {
this.ressources.add(ressource);
}
public Acteur getActeur() {
return acteur;
public List<Acteur> getActeurs() {
return acteurs;
}
public void setActeur(Acteur acteur) {
this.acteur = acteur;
public void addActeur(Acteur acteur) {
this.acteurs.add(acteur);
}
public String getCommentaire() {
@ -126,8 +134,23 @@ public class Usages {
", niveau=" + niveau +
", academie=" + academie +
", ressources=" + ressources +
", acteur=" + acteur +
", acteurs=" + acteurs +
", commentaire='" + commentaire + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Usage usage = (Usage) o;
return id == usage.id;
}
@Override
public int hashCode() {
return id;
}
}

View File

@ -0,0 +1,23 @@
package fr.univ_amu.iut.screenController;
import java.util.HashMap;
import javafx.scene.*;
import javafx.scene.layout.Pane;
public class ScreenController {
private static HashMap<String, Pane> screenMap = new HashMap<>();
private static Scene main;
public ScreenController(Scene main) {
ScreenController.main = main;
}
public static void addScreen(String name, Pane pane){
screenMap.put(name, pane);
}
public static void activate(String name){
main.setRoot( screenMap.get(name) );
}
}

View File

@ -12,7 +12,7 @@ public class DAODisciplineTest implements DAODiscipline {
@Override
public List<Discipline> findAll() {
return null;
return Discipline.toutes();
}
@Override

View File

@ -17,7 +17,7 @@ public class DAOFactoryTest implements DAOFactory {
@Override
public DAODiscipline createDAODiscipline() {
return null;
return new DAODisciplineTest();
}
@Override
@ -37,6 +37,6 @@ public class DAOFactoryTest implements DAOFactory {
@Override
public DAOUsage createDAOUsage() {
return null;
return new DAOUsageTest();
}
}

View File

@ -18,13 +18,7 @@ public class DAORessourceTest implements DAORessource {
public List<Ressource> findAll() {
List<Ressource> liste = new ArrayList<>();
for (int i = 0; i < 12; i++){
URL url = null;
try {
url = new URL("http://google.com");
} catch (MalformedURLException e) {
e.printStackTrace();
}
Ressource ressource = new Ressource(url, "google", "site web");
Ressource ressource = new Ressource("google", "http://google.com", "site web");
liste.add(ressource);
}
return liste;

View File

@ -18,13 +18,7 @@ public class DAOThematiqueTest implements DAOThematique {
public List<Thematique> findAll() {
List<Thematique> liste = new ArrayList<>();
for (int i = 0; i < 12; i++){
URL url = null;
try {
url = new URL("http://google.com");
} catch (MalformedURLException e) {
e.printStackTrace();
}
Thematique thematique = new Thematique(String.valueOf(i));
Thematique thematique = new Thematique("Thematique n° "+i);
liste.add(thematique);
}
return liste;

View File

@ -0,0 +1,66 @@
package fr.univ_amu.iut.test;
import java.util.ArrayList;
import java.util.List;
import fr.univ_amu.iut.dao.DAOUsage;
import fr.univ_amu.iut.model.Academie;
import fr.univ_amu.iut.model.Discipline;
import fr.univ_amu.iut.model.Niveau;
import fr.univ_amu.iut.model.Thematique;
import fr.univ_amu.iut.model.Usage;
public class DAOUsageTest implements DAOUsage{
@Override
public boolean delete(Usage obj) {
// TODO Auto-generated method stub
return false;
}
@Override
public List<Usage> findAll() {
List<Usage> usages = new ArrayList<>();
for( int i = 0; i < 69 ; i++){
Usage tmp = new Usage();
tmp.setNom(String.valueOf(i));
tmp.setDiscipline(Discipline.Technologie);
tmp.setNiveau(Niveau.Tous);
tmp.setDescription("je suis un commentaire tres long mais surtout tres utile, je sert a tester l'interface graphique et la mettre au bout de ses limtes");
usages.add(tmp);
}
return usages;
}
@Override
public Usage getById(int id) {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean insert(Usage obj) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean update(Usage obj) {
// TODO Auto-generated method stub
return false;
}
@Override
public List<Usage> findByCriterias(Thematique thematique, Discipline discipline, Academie academie) {
// TODO Auto-generated method stub
return null;
}
@Override
public List<Usage> findByName(String substring) {
// TODO Auto-generated method stub
return null;
}
}

View File

@ -7,9 +7,27 @@
<properties>
<!-- database connection properties -->
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/devapp"/>
<property name="jakarta.persistence.jdbc.user" value="root"/>
<property name="jakarta.persistence.jdbc.password" value="azerty123"/>
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://lagrottedeneotaku.hopto.org:6776/devapp"/>
<property name="jakarta.persistence.jdbc.user" value="devapp"/>
<property name="jakarta.persistence.jdbc.password" value="7kPoWBgoV5ahygxyXYGzaL"/>
<!-- Nous ne devrions pas commit le mot de passe dans le dépot, mais... je ne pense pas que le projet ne respecte la moindre règle de sécurité de toute facon (pas d'architecture trois tiers)-->
<property name="eclipselink.ddl-generation.output-mode" value="database"/>
<property name="eclipselink.ddl-generation" value="create-tables"/>
<!-- configure logging -->
<property name="eclipselink.logging.level" value="INFO"/>
<property name="eclipselink.logging.level.sql" value="FINE"/>
<property name="eclipselink.logging.parameters" value="true"/>
</properties>
</persistence-unit>
<persistence-unit name="gestionUsagesPUTest" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<!-- database connection properties -->
<property name="jakarta.persistence.jdbc.url" value="jdbc:derby:memory:devapp;create=true"/>
<property name="eclipselink.ddl-generation.output-mode" value="database"/>
<property name="eclipselink.ddl-generation" value="create-tables"/>

View File

@ -0,0 +1,57 @@
package fr.univ_amu.iut;
import fr.univ_amu.iut.dao.factory.DAOFactory;
import fr.univ_amu.iut.dao.jpa.DAOFactoryJPA;
import fr.univ_amu.iut.model.*;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.io.PrintStream;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
public class BackendTest {
private static DAOFactoryJPA daoFactory;
@BeforeAll
public static void setUp() throws Exception {
daoFactory = new DAOFactoryJPA("gestionUsagesPUTest");
Usage usage = new Usage();
usage.setNom("Nom d'usage n°1");
usage.addActeur(new Acteur("Thomas", "Developpeur"));
usage.addActeur(new Acteur("Djalim", "Developpeur"));
usage.addRessource(new Ressource("Google", "https://google.com", "Site web"));
usage.setDiscipline(new Discipline("Informatique"));
daoFactory.createDAOUsage().insert(usage);
}
@Test
public void beforeeach_works() {
assertThat(true).isTrue();
}
@Test
public void thematiques_are_not_empty() {
assertThat(daoFactory.createDAOThematique().findAll().size()).isNotZero();
}
@Test
public void thematiques_contains_ecole_inclusive() {
// on ne créé pas une fonction findByName car elle ne serait utilisée que pour le test
boolean ecoleInclusiveFound = false;
for(Thematique thematique : daoFactory.createDAOThematique().findAll()) {
if (thematique.getNom().equals("École inclusive")) {
ecoleInclusiveFound = true;
break;
}
}
assertThat(ecoleInclusiveFound).isTrue();
}
}