Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.echipe.form;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import javax.faces.bean.ManagedBean;
- import javax.faces.bean.SessionScoped;
- import javax.faces.event.ActionEvent;
- import javax.faces.model.DataModel;
- import javax.faces.model.ListDataModel;
- import javax.persistence.EntityManager;
- import javax.persistence.EntityManagerFactory;
- import javax.persistence.Persistence;
- import org.echipe.model.Campionat;
- import org.echipe.model.Echipa;
- @ManagedBean @SessionScoped
- public class FormMasterDetail {
- private Campionat campionat;
- private List<Campionat> campionate = new ArrayList<>();
- private DataModel<Echipa> echipeDataModel;
- private List<Echipa> echipe = new ArrayList<>();
- public DataModel<Echipa> getEchipeDataModel() {
- Collections.sort(this.campionat.getEchipe(), (e1, e2)->-e1.getPuncte().compareTo(e2.getPuncte()));
- echipeDataModel = new ListDataModel<Echipa>(this.campionat.getEchipe());
- return echipeDataModel;
- }
- public void setEchipeDataModel(DataModel<Echipa> echipeDataModel) {
- this.echipeDataModel = echipeDataModel;
- }
- private EntityManager em;
- private int idCampionat;
- public FormMasterDetail() {
- super();
- EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProiectJPA");
- em = emf.createEntityManager();
- initializareModelCampionate();
- initializareModelEchipe();
- }
- private void initializareModelCampionate(){
- this.campionate = em.createQuery("SELECT c FROM Campionat c", Campionat.class).getResultList();
- if(this.campionate != null) {
- Collections.sort(this.campionate, (c1, c2)->c1.getNumeCampionat().compareTo(c2.getNumeCampionat()));
- if(!this.campionate.contains(campionat)) {
- this.campionat = campionate.get(0);
- }
- if(this.campionat == null) {
- adaugareCampionat(null);
- }
- }
- }
- private void initializareModelEchipe() {
- this.echipe = em.createQuery("SELECT e FROM Echipa e", Echipa.class).getResultList();
- if(this.echipe != null) {
- Collections.sort(this.campionat.getEchipe(), (e1, e2)->-e1.getPuncte().compareTo(e2.getPuncte()));
- }
- }
- public Campionat getCampionat() {
- return campionat;
- }
- public void setCampionat(Campionat campionat) {
- this.campionat = campionat;
- }
- public List<Campionat> getCampionate() {
- return campionate;
- }
- public void setCampionate(List<Campionat> campionate) {
- this.campionate = campionate;
- }
- public Integer getIdCampionat() {
- return this.campionat.getIdCampionat();
- }
- public void setIdCampionat(Integer id) {
- Integer idx = this.campionate.indexOf(new Campionat(id, null));
- this.campionat = campionate.get(idx);
- }
- public Echipa getEchipa() {
- return this.echipeDataModel.getRowData();
- }
- public void nextCampionat(ActionEvent event) {
- idCampionat = this.campionate.indexOf(campionat);
- if((idCampionat + 1) < this.campionate.size()) {
- System.out.println(">>> Campionatul urmator " + (idCampionat+1));
- this.campionat = this.campionate.get(idCampionat+1);
- }
- }
- public void previousCampionat(ActionEvent event) {
- idCampionat = this.campionate.indexOf(campionat);
- if(idCampionat > 0) {
- System.out.println("<<< Campionatul anterior " + (idCampionat-1));
- this.campionat = this.campionate.get(idCampionat-1);
- }
- }
- public void adaugareCampionat(ActionEvent event) {
- this.campionat = new Campionat();
- campionat.setIdCampionat(campionate.get(campionate.size()-1).getIdCampionat() + 1);
- campionat.setNumeCampionat("Campionat nou - Introduceti numele");
- this.campionate.add(campionat);
- System.out.println("Campionat adaugat (local) cu succes!");
- }
- public void salvareCampionat(ActionEvent event) {
- try {
- this.em.getTransaction().begin();
- this.em.merge(this.campionat);
- this.em.getTransaction().commit();
- System.out.println("Campionatul a fost salvat in BD cu succes!");
- } catch(Exception e) {
- e.getSuppressed();
- System.out.println("Eroare la salvarea campionatului in BD :(");
- }
- }
- public void stergereCampionat(ActionEvent event) {
- this.campionate.remove(this.campionat);
- if(this.em.contains(this.campionat)) {
- this.em.getTransaction().begin();
- this.em.remove(this.campionat);
- this.em.getTransaction().commit();
- System.out.println("Campionatul a fost sters din BD!");
- }
- if(!this.campionate.isEmpty()) {
- this.campionat = this.campionate.get(0);
- } else {
- this.campionat = null;
- }
- }
- public void abandonareCampionat(ActionEvent event) {
- System.out.println("Campionat abandonat");
- em.clear();
- initializareModelCampionate();
- }
- public void stergereEchipa(ActionEvent event) {
- Echipa echipa = this.echipeDataModel.getRowData();
- this.campionat.getEchipe().remove(echipa);
- this.em.getTransaction().begin();
- this.em.remove(echipa);
- this.em.getTransaction().commit();
- }
- public void adaugareEchipa(ActionEvent event) {
- Echipa echipa = new Echipa(null, "Echipa noua", 2020, this.campionat);
- echipa.setGoluriMarcate(100);
- echipa.setGoluriPrimite(30);
- echipa.setPuncte(70);
- this.campionat.getEchipe().add(echipa);
- this.em.getTransaction().begin();
- this.em.persist(echipa);
- this.em.getTransaction().commit();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement