Advertisement
tiberiugaspar

FormMasterDetail

Jan 14th, 2020
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.18 KB | None | 0 0
  1. package org.echipe.form;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Collections;
  5. import java.util.List;
  6.  
  7. import javax.faces.bean.ManagedBean;
  8. import javax.faces.bean.SessionScoped;
  9. import javax.faces.event.ActionEvent;
  10. import javax.faces.model.DataModel;
  11. import javax.faces.model.ListDataModel;
  12. import javax.persistence.EntityManager;
  13. import javax.persistence.EntityManagerFactory;
  14. import javax.persistence.Persistence;
  15.  
  16. import org.echipe.model.Campionat;
  17. import org.echipe.model.Echipa;
  18.  
  19. @ManagedBean @SessionScoped
  20. public class FormMasterDetail {
  21.  
  22.     private Campionat campionat;
  23.     private List<Campionat> campionate = new ArrayList<>();
  24.  
  25.     private DataModel<Echipa> echipeDataModel;
  26.     private List<Echipa> echipe = new ArrayList<>();
  27.     public DataModel<Echipa> getEchipeDataModel() {
  28.         Collections.sort(this.campionat.getEchipe(), (e1, e2)->-e1.getPuncte().compareTo(e2.getPuncte()));
  29.         echipeDataModel = new ListDataModel<Echipa>(this.campionat.getEchipe());
  30.         return echipeDataModel;
  31.     }
  32.     public void setEchipeDataModel(DataModel<Echipa> echipeDataModel) {
  33.         this.echipeDataModel = echipeDataModel;
  34.     }
  35.     private EntityManager em;
  36.     private int idCampionat;
  37.  
  38.     public FormMasterDetail() {
  39.         super();
  40.         EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProiectJPA");
  41.         em = emf.createEntityManager();
  42.         initializareModelCampionate();
  43.         initializareModelEchipe();
  44.     }
  45.     private void initializareModelCampionate(){
  46.         this.campionate = em.createQuery("SELECT c FROM Campionat c", Campionat.class).getResultList();
  47.         if(this.campionate != null) {
  48.             Collections.sort(this.campionate, (c1, c2)->c1.getNumeCampionat().compareTo(c2.getNumeCampionat()));
  49.             if(!this.campionate.contains(campionat)) {
  50.                 this.campionat = campionate.get(0);
  51.             }
  52.             if(this.campionat == null) {
  53.                 adaugareCampionat(null);
  54.             }
  55.         }
  56.     }
  57.  
  58.     private void initializareModelEchipe() {
  59.         this.echipe = em.createQuery("SELECT e FROM Echipa e", Echipa.class).getResultList();
  60.         if(this.echipe != null) {
  61.             Collections.sort(this.campionat.getEchipe(), (e1, e2)->-e1.getPuncte().compareTo(e2.getPuncte()));
  62.         }
  63.     }
  64.  
  65.     public Campionat getCampionat() {
  66.         return campionat;
  67.     }
  68.     public void setCampionat(Campionat campionat) {
  69.         this.campionat = campionat;
  70.     }
  71.     public List<Campionat> getCampionate() {
  72.         return campionate;
  73.     }
  74.     public void setCampionate(List<Campionat> campionate) {
  75.         this.campionate = campionate;
  76.     }
  77.     public Integer getIdCampionat() {
  78.         return this.campionat.getIdCampionat();
  79.     }
  80.  
  81.     public void setIdCampionat(Integer id) {
  82.         Integer idx = this.campionate.indexOf(new Campionat(id, null));
  83.         this.campionat = campionate.get(idx);
  84.     }
  85.  
  86.     public Echipa getEchipa() {
  87.         return this.echipeDataModel.getRowData();
  88.     }
  89.  
  90.     public void nextCampionat(ActionEvent event) {
  91.         idCampionat  = this.campionate.indexOf(campionat);
  92.         if((idCampionat + 1) < this.campionate.size()) {
  93.             System.out.println(">>> Campionatul urmator " + (idCampionat+1));
  94.             this.campionat = this.campionate.get(idCampionat+1);
  95.         }
  96.     }
  97.  
  98.     public void previousCampionat(ActionEvent event) {
  99.         idCampionat = this.campionate.indexOf(campionat);
  100.         if(idCampionat > 0) {
  101.             System.out.println("<<< Campionatul anterior " + (idCampionat-1));
  102.             this.campionat = this.campionate.get(idCampionat-1);
  103.         }
  104.     }
  105.  
  106.     public void adaugareCampionat(ActionEvent event) {
  107.         this.campionat = new Campionat();
  108.         campionat.setIdCampionat(campionate.get(campionate.size()-1).getIdCampionat() + 1);
  109.         campionat.setNumeCampionat("Campionat nou - Introduceti numele");
  110.         this.campionate.add(campionat);
  111.         System.out.println("Campionat adaugat (local) cu succes!");
  112.     }
  113.  
  114.     public void salvareCampionat(ActionEvent event) {
  115.         try {
  116.             this.em.getTransaction().begin();
  117.             this.em.merge(this.campionat);
  118.             this.em.getTransaction().commit();
  119.             System.out.println("Campionatul a fost salvat in BD cu succes!");
  120.         } catch(Exception e) {
  121.             e.getSuppressed();
  122.             System.out.println("Eroare la salvarea campionatului in BD :(");
  123.         }
  124.     }
  125.  
  126.     public void stergereCampionat(ActionEvent event) {
  127.         this.campionate.remove(this.campionat);
  128.         if(this.em.contains(this.campionat)) {
  129.             this.em.getTransaction().begin();
  130.             this.em.remove(this.campionat);
  131.             this.em.getTransaction().commit();
  132.             System.out.println("Campionatul a fost sters din BD!");
  133.         }
  134.         if(!this.campionate.isEmpty()) {
  135.             this.campionat = this.campionate.get(0);
  136.         } else {
  137.             this.campionat = null;
  138.         }
  139.     }
  140.  
  141.     public void abandonareCampionat(ActionEvent event) {
  142.         System.out.println("Campionat abandonat");
  143.         em.clear();
  144.         initializareModelCampionate();
  145.     }
  146.  
  147.     public void stergereEchipa(ActionEvent event) {
  148.         Echipa echipa = this.echipeDataModel.getRowData();
  149.         this.campionat.getEchipe().remove(echipa);
  150.         this.em.getTransaction().begin();
  151.         this.em.remove(echipa);
  152.         this.em.getTransaction().commit();
  153.     }
  154.  
  155.     public void adaugareEchipa(ActionEvent event) {
  156.         Echipa echipa = new Echipa(null, "Echipa noua", 2020, this.campionat);
  157.         echipa.setGoluriMarcate(100);
  158.         echipa.setGoluriPrimite(30);
  159.         echipa.setPuncte(70);
  160.         this.campionat.getEchipe().add(echipa);
  161.         this.em.getTransaction().begin();
  162.         this.em.persist(echipa);
  163.         this.em.getTransaction().commit();
  164.  
  165.     }
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement