echec.controller.PartieController.java Source code

Java tutorial

Introduction

Here is the source code for echec.controller.PartieController.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package echec.controller;

import echec.entity.Partie;
import echec.service.JeuService;
import echec.service.JoueurServiceCrud;
import echec.service.PartieServiceCrud;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import echec.service.PieceServiceCrud;

/**
 *
 * @author Laurent-LIM
 */
@Controller
public class PartieController {

    @Autowired
    private JoueurServiceCrud serviceJoueur;

    @Autowired
    private PartieServiceCrud servicePartie;

    @Autowired
    private PieceServiceCrud servicePion;

    @Autowired
    private JeuService serviceJeu;

    //fonction qui affiche la liste de toutes les parties
    @RequestMapping(value = "/lister_parties", method = RequestMethod.GET)
    public String listePartie(Model model) {
        model.addAttribute("listePartie", servicePartie.findAll());
        return "parties.jsp";
    }

    //fonction qui affiche la listes des parties d'un joueur donn
    @RequestMapping(value = "/partie_en_cours", method = RequestMethod.GET)
    public String partieEnCours(Model model, HttpSession s) {
        Long joueur = (long) s.getAttribute("idUser");
        model.addAttribute("listePartie", servicePartie.findAllByBlancId(joueur));
        return "_PARTIE_EN_COURS.jsp";
    }

    //fonction qui affiche le formulaire de cration d'une partie
    @RequestMapping(value = "/cree_partie", method = RequestMethod.GET)
    public String creePartie(Model model, HttpSession s) {
        model.addAttribute("PartieAttribut", new Partie());
        return "creer_partie.jsp";
    }

    //fonction de cration d'une partie par validation du formulaire de la page _CREATION_PARTIE.jsps
    @RequestMapping(value = "/cree_partie", method = RequestMethod.POST)
    public String creePartie(@ModelAttribute("PartieAttribut") Partie partie, HttpSession s) {
        Long joueur = (long) s.getAttribute("idUser");
        partie.setBlanc(serviceJoueur.findOne(joueur));
        partie.setEtat(Partie.Etat.Creer);
        servicePartie.save(partie);
        return "redirect:/dashboard";
    }

    @RequestMapping(value = "partie/{id}", method = RequestMethod.GET)
    public String afficherPartie(@PathVariable(value = "id") Long partieId, HttpSession s, Model model) {
        Partie partie = servicePartie.findOne(partieId);
        model.addAttribute("laPartie", partie);
        model.addAttribute("plateau", serviceJeu.plateau(partie));
        return "afficher_partie.jsp";
    }

    //fonction qui permet au joueur 2 de rejoindre la partie du joueur 1
    @RequestMapping(value = "/partie_en_cours/{id}", method = RequestMethod.GET)
    public String rejoindrePartie(Model model, HttpSession s, @PathVariable(value = "id") Long partieId) {
        Partie partie = servicePartie.findOne(partieId);
        Long joueur2 = (long) s.getAttribute("idUser");
        partie.setNoir(serviceJoueur.findOne(joueur2));
        partie.setEtat(Partie.Etat.EnCours);
        // emplacement des pices a rajouter
        servicePartie.save(partie);
        return "partie/" + partieId;
    }
}