Package cnam.nsy208.sudoku.view

Source Code of cnam.nsy208.sudoku.view.ClientServerView

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package cnam.nsy208.sudoku.view;

import cnam.nsy208.sudoku.main.Sudoku;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.List;

/**
*
* @author Martial
*/
public class ClientServerView implements CommandListener , ViewInterface {
    // Menu
    private final String[] MENU_LABELS = {"Client", "Serveur" , "Aide" , "A propos de..." };
    private final Command NEW_GAME = new Command("Sélectionner", Command.SCREEN, 1);
    private final Command EXIT_GAME = new Command("Sortie", Command.EXIT, 1);
    private final Command BACK_CMD = new Command("Retour", Command.BACK, 2);

    private Display _display;
    private Sudoku _controler ;
    private ViewInterface _parent ;
    private ViewInterface _child ;

    private String _helpText = "Serveur : Le mode serveur permet de faire un tournoi." +
            " Ce mode est bloquant, un serveur ne peux faire que serveur.\n\n" +
            "Client : Le mode client permet de joueur suivant 3 types de partie" +
            "\n - Jeu rapide (jeu simple)" +
            "\n - Aracade (jeu simple avec sauvegarde du temps)" +
            "\n - Tournoi (permet de faire une course sur la résolution d'une même grille entre plusieurs joueurs." +
            " Pour ce type de jeu, il est obligatoire d'avoir un serveur)" ;
    private Alert _helpScreen = new Alert("Aide");
   
    private String _aboutText = "Programme développé par :" +
            "\n   - M. Laurent Carrera" +
            "\n   - M. Martial Déga" +
            "\n   - Mlle Isabelle Ousset" +
            "\n\nProgramme développé en 2009 dans le cadre l'UE NSY208 à l'IPST-CNAM.";
    private Alert _aboutScreen = new Alert("A propos de ...");

    /**
   * Permet d'initialiser les variables de la vue
   * @param d : Afficheur
     * @param c : Controleur
   * @return
   */
  public ClientServerView( Display d , Sudoku c ) {
        System.out.println("VueClientServeur : constructeur");
        _display = d ;
        _controler = c ;

        // prepare help screen
        _helpScreen.addCommand(BACK_CMD);
        _helpScreen.setTimeout(Alert.FOREVER);
        _helpScreen.setString(_helpText);
        _helpScreen.setCommandListener(this);

        // prepare about screen
        _aboutScreen.addCommand(BACK_CMD);
        _aboutScreen.setTimeout(Alert.FOREVER);
        _aboutScreen.setString(_aboutText);
        _aboutScreen.setCommandListener(this);
    }

    /**
   * Permet d'affecter un prédecesseur et un successeur à la vue
   * @param p : Prédecesseur
     * @param c : Successeur
   * @return
   */
  public void setParentAndChild( ViewInterface p , ViewInterface c ) {
        _parent = p ;
        _child = c ;
    }

    /**
   * Permet d'afficher la vue
   * @return
   */
  public void display() {
        List list = new List("Role?", List.IMPLICIT, MENU_LABELS, null);
        list.addCommand(EXIT_GAME);
        list.addCommand(NEW_GAME);
        list.setCommandListener(this);
        _display.setCurrent(list);
        System.out.println("VueClientServeur : paint");
    }
   
    /**
   * Permet de gérer les événements associés à des commandes
   * @param c : Commande executer
     * @param d : Objet affichage liée à la commande
   * @return
   */
  public void commandAction(Command c, Displayable d) {
        if ( c ==  EXIT_GAME ) {
            _controler.notifyDestroyed();
            System.out.println("VueClientServeur : EXIT");
        } else if( (c == List.SELECT_COMMAND) || (c == NEW_GAME) ) {
            if (((List) d).getString(((List) d).getSelectedIndex()).equals("Client")) {
                System.out.println("VueClientServeur : Choix du mode Client");
                _controler.setClientServerMode( Sudoku.TYPE_CLIENT ) ;
                _child.display() ;
            } else if (((List) d).getString(((List) d).getSelectedIndex()).equals("Serveur")) {
                System.out.println("VueClientServeur : Choix du mode Serveur");
                _controler.setClientServerMode( Sudoku.TYPE_SERVER ) ;
                _child.display() ;
            } else if (((List) d).getString(((List) d).getSelectedIndex()).equals("Aide")) {
                System.out.println("VueClientServeur : Choix du mode Aide");
                _display.setCurrent(_helpScreen);
            } else if (((List) d).getString(((List) d).getSelectedIndex()).equals("A propos de...")) {
                System.out.println("VueClientServeur : Choix du mode A propos de...");
                _display.setCurrent(_aboutScreen);
            }
        } else if ( (c == BACK_CMD) && ( (d == _helpScreen) || (d == _aboutScreen) ) ) {
            this.display();
        }
    }
}
TOP

Related Classes of cnam.nsy208.sudoku.view.ClientServerView

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.