public void afficherPopupParties(final Profil profil) {

        // Empeche de cliquer sur la fenetre principale
        this.setEnabled(false);
        
        // Mise a jour du nom du joueur
        this.nomProfil.setText(profil.getNom());
        
        FlowLayout fl = new FlowLayout();
        this.panelParties.removeAll();
        this.panelParties.setLayout(fl);
        this.panelParties.setMinimumSize(new Dimension(this.popupParties.getWidth(),this.popupParties.getHeight()/2-50));
        this.panelParties.setMaximumSize(new Dimension(this.popupParties.getWidth(),this.popupParties.getHeight()/2-50));
        HashMap parties = profil.getParties();
        
        if(profil.getParties() == null || profil.getParties().isEmpty()) {
           
            // Affichage d'un message signalant qu'aucune partie n'est disponible
            JLabel none = new JLabel("Aucune partie disponible");
            none.setFont(new Font("Helvetica Neue", Font.PLAIN, 36));
            none.setForeground(Color.GRAY);
            this.panelParties.add(none);
            
        } else {
            
            // On affiche toutes les parties
            Iterator iterator = parties.keySet().iterator();
            int num = 1;
            while(iterator.hasNext()) {
                
                JPanel panelPartie = new JPanel();
                panelPartie.setBackground(Color.WHITE);
                
                // Bouton permettant de supprimer la partie
                JButton remove = new JButton();
                ImageIcon suprImageNoir = new ImageIcon(new ImageIcon(getClass().getResource("/stockage/images/poubelle_noir.png"))
                    .getImage().getScaledInstance(30, 30, Image.SCALE_DEFAULT));
                ImageIcon suprImageGris = new ImageIcon(new ImageIcon(getClass().getResource("/stockage/images/poubelle_gris.png"))
                    .getImage().getScaledInstance(30, 30, Image.SCALE_DEFAULT));
                remove.setIcon(suprImageNoir);
                remove.setSelectedIcon(suprImageGris);
                remove.setBorder(BorderFactory.createEmptyBorder());
                remove.setContentAreaFilled(false);
                
                final Partie p = DAOFactory.getInstance().getDAO_Sauvegarde().getPartie(((Partie)parties.get(iterator.next())).getId(),profil);
                p.addObserver(this);
                remove.addActionListener(new ActionListener() {
                    
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        popupParties.setVisible(false);
                        int dialogResult = JOptionPane.showConfirmDialog(null, "Voulez-vous réellement supprimer la partie ?");
                        if(dialogResult == JOptionPane.YES_OPTION){

                            profil.supprimerPartie(p.getId());
                            DAOFactory.getInstance().getDAO_Sauvegarde().saveProfil(profil);
                            afficherPopupParties(profil);

                        }
                        popupParties.setVisible(true);
                    }
                    
                });
                remove.setPreferredSize(new Dimension(this.panelParties.getWidth()/5,30));
                panelPartie.add(remove);
                
                // Bouton permettant d'acceder a la partie
                JButton partie = new JButton("Partie " + num + " - " + p.getDate());
                partie.setFont(new Font("Helvetica Neue", Font.PLAIN, 16));
                partie.setPreferredSize(new Dimension((this.panelParties.getWidth()/5)*3-10,30));
                partie.setBorder(BorderFactory.createLineBorder(Color.darkGray, 1));
                partie.setContentAreaFilled(false);
                partie.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
                partie.addActionListener(new ChargerPartieController(profil, p, _jeu));
                panelPartie.add(partie);

                this.panelParties.add(panelPartie);
                num++;
                
            }
         
        }
        
        // On limite a 3 le nombre de parties
        if(parties.size() >= 3) {

            this.buttonAjouterPartie.setEnabled(false);
            this.buttonAjouterPartie.setBorder(new LineBorder(Color.LIGHT_GRAY,1));
            this.buttonAjouterPartie.setForeground(Color.LIGHT_GRAY);

        } else {

            this.buttonAjouterPartie.setEnabled(true);
            this.buttonAjouterPartie.setBorder(new LineBorder(new Color(102,153,255),1));
            this.buttonAjouterPartie.setForeground(new Color(102,153,255));

        }
        
        // Affichage du popup
        this.panelParties.updateUI();
        this.popupParties.setLocationRelativeTo(null);
        this.popupParties.setVisible(true);
        
    } // afficherPopupParties(final Profil profil)