From 6fb50882dc1226163f0bed38e1b7440c08417d02 Mon Sep 17 00:00:00 2001 From: martins Date: Mon, 24 Oct 2022 14:56:36 +0200 Subject: [PATCH] ajout retour au menu --- .../Menu/Controller/ObservateurAccueil.java | 14 +++++++++++--- .../Menu/Controller/ObservateurMenuSouris.java | 2 +- .../iutfbleau/projetAgile/Menu/View/Menu.java | 18 +++++++++++++++--- .../Controller/Puissance4Controller.java | 3 +++ .../Puissance4/View/Puissance4Panel.java | 5 +++-- 5 files changed, 33 insertions(+), 9 deletions(-) diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Menu/Controller/ObservateurAccueil.java b/projetAgile/src/fr/iutfbleau/projetAgile/Menu/Controller/ObservateurAccueil.java index e00080c..f352030 100644 --- a/projetAgile/src/fr/iutfbleau/projetAgile/Menu/Controller/ObservateurAccueil.java +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Menu/Controller/ObservateurAccueil.java @@ -1,12 +1,20 @@ package fr.iutfbleau.projetAgile.Menu.Controller; import java.awt.event.*; - +import java.awt.Component; +import javax.swing.JOptionPane; import fr.iutfbleau.projetAgile.Menu.View.Menu; public class ObservateurAccueil implements ActionListener{ - public ObservateurAccueil(){} + private Component comp; + private String jeu; + public ObservateurAccueil(Component parent, String jeu0){ + this.comp=parent; + this.jeu=jeu0; + } public void actionPerformed(ActionEvent evenement){ - Menu.show(Menu.MENU); + int confirmation = JOptionPane.showConfirmDialog(this.comp, "Etes-vous sûr de vouloir retourner au menu ?", "Menu", JOptionPane.YES_NO_OPTION); + if(confirmation == 1) return; + Menu.show(Menu.MENU, this.comp, this.jeu); } } diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Menu/Controller/ObservateurMenuSouris.java b/projetAgile/src/fr/iutfbleau/projetAgile/Menu/Controller/ObservateurMenuSouris.java index f32cc31..c664101 100644 --- a/projetAgile/src/fr/iutfbleau/projetAgile/Menu/Controller/ObservateurMenuSouris.java +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Menu/Controller/ObservateurMenuSouris.java @@ -16,7 +16,7 @@ public class ObservateurMenuSouris implements MouseListener{ public void mouseClicked(MouseEvent evenement){ BoutonsMenu bout=(BoutonsMenu) (evenement.getComponent()); if(bout.getPath()==Menu.PUISSANCE_4){ - Menu.show(Menu.PUISSANCE_4); + Menu.show(Menu.PUISSANCE_4, null, null); } } // un bouton cliqué public void mouseEntered(MouseEvent evenement){ diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Menu/View/Menu.java b/projetAgile/src/fr/iutfbleau/projetAgile/Menu/View/Menu.java index d00a7b7..5818f8c 100644 --- a/projetAgile/src/fr/iutfbleau/projetAgile/Menu/View/Menu.java +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Menu/View/Menu.java @@ -5,6 +5,9 @@ import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.JLabel; import fr.iutfbleau.projetAgile.Menu.Controller.*; +import fr.iutfbleau.projetAgile.Puissance4.View.*; +import fr.iutfbleau.projetAgile.Puissance4.Controller.*; +import fr.iutfbleau.projetAgile.Puissance4.Model.*; public abstract class Menu{ public static String PUISSANCE_4="puissance4"; @@ -128,11 +131,20 @@ public abstract class Menu{ * si l'argument ne correspond pas a une Carte */ - public static void show(String g) throws IllegalArgumentException + public static void show(String g, Component composent, String proveneur) throws IllegalArgumentException { - if(g==Menu.MENU || g==Menu.PUISSANCE_4){ + if((g==Menu.MENU || g==Menu.PUISSANCE_4) && (proveneur==Menu.PUISSANCE_4 || proveneur==null)){ + if(g!=Menu.MENU) Menu.cd.show(Menu.frame.getContentPane(), g); - + else{ + Menu.cd.removeLayoutComponent(composent); + if(proveneur==Menu.PUISSANCE_4){ + Grille f = new Grille(); + GrilleModel m = new GrilleModel(); + Puissance4Controller p = new Puissance4Controller(f, m); + Menu.frame.add(p.getPanel(), Menu.PUISSANCE_4); + } + } }else{ throw new IllegalArgumentException(); } diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/Controller/Puissance4Controller.java b/projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/Controller/Puissance4Controller.java index 23be285..b0ef2fa 100644 --- a/projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/Controller/Puissance4Controller.java +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/Controller/Puissance4Controller.java @@ -3,6 +3,8 @@ package fr.iutfbleau.projetAgile.Puissance4.Controller; import javax.swing.JOptionPane; import javax.swing.JPanel; +import fr.iutfbleau.projetAgile.Menu.Controller.ObservateurAccueil; +import fr.iutfbleau.projetAgile.Menu.View.Menu; import fr.iutfbleau.projetAgile.Puissance4.Model.GrilleModel; import fr.iutfbleau.projetAgile.Puissance4.Utils.GameStatus; import fr.iutfbleau.projetAgile.Puissance4.View.Grille; @@ -37,6 +39,7 @@ public class Puissance4Controller { this.panel = new Puissance4Panel(this.grille); this.panel.init(); this.panel.resetButton(resetListener); + this.panel.acceuilButton(new ObservateurAccueil(this.getPanel(), Menu.PUISSANCE_4)); ModelEventListener modelListener = new ModelEventListener(panel); this.panel.setPlayerOneName(this.modele.getPlayerOneName()); this.panel.setPlayerTwoName(this.modele.getPlayerTwoName()); diff --git a/projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/View/Puissance4Panel.java b/projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/View/Puissance4Panel.java index ce68041..a5cc2b2 100644 --- a/projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/View/Puissance4Panel.java +++ b/projetAgile/src/fr/iutfbleau/projetAgile/Puissance4/View/Puissance4Panel.java @@ -3,7 +3,6 @@ package fr.iutfbleau.projetAgile.Puissance4.View; import javax.swing.*; import javax.swing.border.EmptyBorder; -import fr.iutfbleau.projetAgile.Puissance4.Controller.ObservateurAcceuil; import fr.iutfbleau.projetAgile.Puissance4.Utils.Constants; import fr.iutfbleau.projetAgile.Puissance4.Utils.GameStatus; import java.awt.*; @@ -41,7 +40,6 @@ public class Puissance4Panel extends JPanel{ gbc.weightx = 0; gbc.weighty = 0; gbc.insets = new Insets(0, 0, 0, 0); - this.menu.addActionListener(new ObservateurAcceuil()); this.add(this.menu, gbc); @@ -117,6 +115,9 @@ public class Puissance4Panel extends JPanel{ public void resetButton(ActionListener l) { this.reset.addActionListener(l); } + public void acceuilButton(ActionListener l){ + this.menu.addActionListener(l); + } public void changeLabel(int joueur) { switch(joueur){