TTPA (Mobile)  1.1
BTS SN-IR La Salle Avignon 2018
 Tout Classes Fichiers Fonctions Variables
Fonctions membres publiques | Fonctions membres protégées | Attributs de paquetage | Fonctions membres privées | Attributs privés
Référence de la classe com.ttpa.iris.ttpamobile.IHMHistoriqueSeances
Graphe d'héritage de com.ttpa.iris.ttpamobile.IHMHistoriqueSeances:
Inheritance graph
[légende]
Graphe de collaboration de com.ttpa.iris.ttpamobile.IHMHistoriqueSeances:
Collaboration graph
[légende]

Liste de tous les membres

Fonctions membres publiques

void onClick (View element)

Fonctions membres protégées

void onCreate (Bundle savedInstanceState)

Attributs de paquetage

TableLayout tableauSeances
ImageButton boutonPurgerSeances

Fonctions membres privées

void afficherSeance (Seance seance)
void supprimerSeanceSelectionnee (int idSeanceElementSelectionne, int indexLigneTableau)
void connectionBaseDeDonnees ()
void affecterElementsIHM ()
void recupererInformationsJoueur ()
void modifierIHMAfficherSeancesJoueur ()
void rendreBoutonIHMCliquables ()
void afficherBoiteDialogueDetailsSeance (int idSeanceSelectionnee)
void purgerSeancesJoueur ()

Attributs privés

ServeurBDD serveurBDD
int idJoueurActuel
Joueur joueurActuel

Description détaillée

Created by smaniotto on 12/04/18. Classe IHMHistoriqueSeances définnissant le comportement du layout 'ecran_historique_seances'.


Documentation des fonctions membres

Méthode affecterElementsIHM() permettant d'affecter les élements graphiques actuels de l'IHM.

Références com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.boutonPurgerSeances, et com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.tableauSeances.

Référencé par com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.onCreate().

    {
        Log.d("IHMHistoriqueSeances", "affecterElementsIHM()");

        // Tableau des séances
        tableauSeances = (TableLayout)findViewById(R.id.tableauSeances);
        // Bouton de puirge des séances du joueur
        boutonPurgerSeances = (ImageButton)findViewById(R.id.boutonPurgerSeances);
    }

Méthode afficherBoiteDialogueDetailsSeance() affichant une boite de dialogue avec les informations détaillées de la séance sélectionnée.

Paramètres:
idSeanceSelectionneeétant l'id de la séance à afficher

Références com.ttpa.iris.ttpamobile.ServeurBDD.getSeance(), com.ttpa.iris.ttpamobile.Seance.getZoneObjectif(), com.ttpa.iris.ttpamobile.Seance.getZoneRobot(), com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.onClick(), et com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.serveurBDD.

Référencé par com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.onClick().

    {
        Log.d("IHMHistoriqueSeances", "afficherBoiteDialogueDetailsSeance()");

        // Retrouver l'objet Seance correspondant grâce à la base de données
        Seance seanceSelectionnee = serveurBDD.getSeance(idSeanceSelectionnee);

        // Afficher la boîte de dialogue
        AlertDialog.Builder detailsSeance = new AlertDialog.Builder(this);
        LayoutInflater factory = LayoutInflater.from(this);
        final View detailsSeanceView = factory.inflate(R.layout.details_seance, null);
        detailsSeance.setView(detailsSeanceView);

        detailsSeance.setTitle("Informations complémentaires de la séance");

        // Affecter les informations de la séance aux champs correspondants
        TextView texteValeurZoneRobot = (TextView) detailsSeanceView.findViewById(R.id.texteValeurZoneRobot);
        TextView texteValeurZoneObjectif = (TextView) detailsSeanceView.findViewById(R.id.texteValeurZoneObjectif);

        switch(seanceSelectionnee.getZoneRobot())
        {
            case 0:
            case -1:
                texteValeurZoneRobot.setText("Aucune");
                break;
            default:
                texteValeurZoneRobot.setText("ZONE " + seanceSelectionnee.getZoneRobot());
                break;
        }

        switch(seanceSelectionnee.getZoneObjectif())
        {
            case 0:
            case -1:
                texteValeurZoneObjectif.setText("Aucune");
                break;
            default:
                texteValeurZoneObjectif.setText("ZONE " + seanceSelectionnee.getZoneObjectif());
                break;
        }

        detailsSeance.setNegativeButton("Retour", new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int which)
            {

            }
        });

        detailsSeance.show();
    }

Méthode afficherSeance() permettant d'afficher dans un tableau une séance.

Paramètres:
seanceétant la séance à afficher

Références com.ttpa.iris.ttpamobile.Seance.getDateDebut(), com.ttpa.iris.ttpamobile.Seance.getEffet(), com.ttpa.iris.ttpamobile.Seance.getFrequence(), com.ttpa.iris.ttpamobile.Seance.getId(), com.ttpa.iris.ttpamobile.Seance.getNombreBalles(), com.ttpa.iris.ttpamobile.Seance.getTauxReussite(), et com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.tableauSeances.

Référencé par com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.modifierIHMAfficherSeancesJoueur().

    {
        Log.d("IHMHistoriqueSeances", "afficherSeance()");

        TableLayout tableauSeances = (TableLayout) findViewById(R.id.tableauSeances);

        // Déclaration des paramètres visuels des champs
        TableRow.LayoutParams lpLigne = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT);
        TableRow.LayoutParams lpChamp = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT, 1f);


        // Déclaration et paramétrage de la ligne accueillant la séance
        TableRow ligne= new TableRow(this);
        ligne.setLayoutParams(lpLigne);
        float taille_police_ecriture = (float)Integer.parseInt(getString(R.string.taille_police_historique));

        // Déclaration et paramétrage du champ ID
        TextView texteSeanceId = new TextView(this);
        texteSeanceId.setLayoutParams(lpChamp);
        texteSeanceId.setGravity(Gravity.CENTER);
        texteSeanceId.setVisibility(View.GONE);
        texteSeanceId.setText(Integer.toString(seance.getId()));

        // Déclaration et paramétrage du champ Date
        TextView texteSeanceDate = new TextView(this);
        texteSeanceDate.setLayoutParams(lpChamp);
        texteSeanceDate.setGravity(Gravity.CENTER);
        texteSeanceDate.setTextSize(taille_police_ecriture);
        texteSeanceDate.setText(seance.getDateDebut());

        // Déclaration et paramétrage du champ Fréquence
        TextView texteSeanceFrequence = new TextView(this);
        texteSeanceFrequence.setLayoutParams(lpChamp);
        texteSeanceFrequence.setGravity(Gravity.CENTER);
        texteSeanceFrequence.setTextSize(taille_police_ecriture);
        texteSeanceFrequence.setText(Integer.toString(seance.getFrequence()) + " balles/min");

        // Déclaration et paramétrage du champ Nb Balles
        TextView texteSeanceNombreBalles = new TextView(this);
        texteSeanceNombreBalles.setLayoutParams(lpChamp);
        texteSeanceNombreBalles.setGravity(Gravity.CENTER);
        texteSeanceNombreBalles.setTextSize(taille_police_ecriture);
        texteSeanceNombreBalles.setText(Integer.toString(seance.getNombreBalles()));

        // Déclaration et paramétrage du champ Effet
        TextView texteSeanceEffet = new TextView(this);
        texteSeanceEffet.setLayoutParams(lpChamp);
        texteSeanceEffet.setGravity(Gravity.CENTER);
        texteSeanceEffet.setTextSize(taille_police_ecriture);
        texteSeanceEffet.setText(seance.getEffet());

        // Déclaration et paramétrage du champ Taux Réussite
        TextView texteSeanceTauxReussite = new TextView(this);
        texteSeanceTauxReussite.setLayoutParams(lpChamp);
        texteSeanceTauxReussite.setGravity(Gravity.CENTER);
        texteSeanceTauxReussite.setTextSize(taille_police_ecriture);
        texteSeanceTauxReussite.setText(Float.toString(seance.getTauxReussite()) + "%");

        // Déclaration et paramétrage du champ Action
        ImageButton boutonDetailsSeance = new ImageButton(this);
        boutonDetailsSeance.setLayoutParams(lpChamp);

        boutonDetailsSeance.setBackgroundColor(Color.argb(0, 0, 0, 0)); // Rendre le fond transparent
        boutonDetailsSeance.setImageResource(R.drawable.ic_loupe_afficher);
        boutonDetailsSeance.setOnClickListener(this); // Rendre le bouton cliquable

        // Ajouter les champs à la ligne
        ligne.addView(texteSeanceId);
        ligne.addView(texteSeanceDate);
        ligne.addView(texteSeanceFrequence);
        ligne.addView(texteSeanceNombreBalles);
        ligne.addView(texteSeanceEffet);
        ligne.addView(texteSeanceTauxReussite);
        ligne.addView(boutonDetailsSeance);

        // Ajouter la ligne au tableau des séances à l'index 1 : après l'entête du tableau
        tableauSeances.addView(ligne, 1);
    }

Méthode connectionBaseDeDonnees() permettant de se connecter à la base de données.

Références com.ttpa.iris.ttpamobile.ServeurBDD.open(), et com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.serveurBDD.

Référencé par com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.onCreate().

    {
        Log.d("IHMHistoriqueSeances", "connectionBaseDeDonnees()");

        serveurBDD = new ServeurBDD(this);
        serveurBDD.open();
    }

Méthode modifierIHMAfficherSeancesJoueur() affichant les séances du jouer actuel dans un tableau de l'IHM.

Références com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.afficherSeance(), com.ttpa.iris.ttpamobile.Joueur.getId(), com.ttpa.iris.ttpamobile.Joueur.getNom(), com.ttpa.iris.ttpamobile.ServeurBDD.getSeances(), com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.joueurActuel, et com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.serveurBDD.

Référencé par com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.onCreate().

    {
        Log.d("IHMHistoriqueSeances", "modifierIHMAfficherSeancesJoueur()");

        TextView texteHistoriqueSeances = (TextView) findViewById(R.id.texteHistoriqueSeances);
        texteHistoriqueSeances.setText("Historique des séances de " + joueurActuel.getNom() + " :");

        // Récupérer la liste des séances existantes du joueur
        List<Seance> seances = serveurBDD.getSeances(joueurActuel.getId());
        Log.d("IHMHistoriqueSeances", "modifierIHMAfficherSeancesJoueur() Nombre de séances du joueur: " + seances.size());
        // Pour chaque séance existante
        for(int i = 0; i < seances.size(); i++)
        {
            Log.d("IHMHistoriqueSeances", "modifierIHMAfficherSeancesJoueur() Séance n° " + seances.get(i).getId() + ": \n" + seances.get(i).toString());

            // Ajouter la séance dans le tableau de séances
            afficherSeance(seances.get(i));
        }
    }

Méthode onClick() permettant la gestion du click sur un bouton.

Paramètres:
elementétant l'élément sur lequel l'utilisateur a clické

Références com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.afficherBoiteDialogueDetailsSeance(), com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.boutonPurgerSeances, com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.purgerSeancesJoueur(), et com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.tableauSeances.

Référencé par com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.afficherBoiteDialogueDetailsSeance(), et com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.purgerSeancesJoueur().

    {
        Log.d("IHMHistoriqueSeances", "onClick()");

        Seance seance = null;

        if(element == boutonPurgerSeances)
        {
            // Purger les séances déjà existantes du joueur
            purgerSeancesJoueur();
        }
        else // l'élément est un bouton du champ action
        {
            // Retrouver l'ID de la séance sélectionnée
            for (int i = 1; i < tableauSeances.getChildCount(); ++i) {

                TableRow ligne = (TableRow) tableauSeances.getChildAt(i);

                if (ligne == element.getParent()) {
                    TextView texteIdSeance = (TextView) ligne.getChildAt(0); // 0 : Position du champ ID de la ligne
                    int idSeanceElementSelectionne = Integer.parseInt(texteIdSeance.getText().toString()); // ID de la séance à supprimer

                    // Afficher la boite de dialogue de la séance sélectionnée
                    afficherBoiteDialogueDetailsSeance(idSeanceElementSelectionne);
                }
            }
        }
    }
void com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.onCreate ( Bundle  savedInstanceState) [protected]

Méthode onCreate appellée au démarrage de l'activité permettant l'initialisation des composants.

Paramètres:
savedInstanceState

Références com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.affecterElementsIHM(), com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.connectionBaseDeDonnees(), com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.modifierIHMAfficherSeancesJoueur(), com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.recupererInformationsJoueur(), et com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.rendreBoutonIHMCliquables().

                                                       {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ecran_historique_seances);

        // Se connecter à la base de données
        connectionBaseDeDonnees();

        // Affecter les éléments graphiques de l'IHM
        affecterElementsIHM();

        // Récupérer les informations du joueur actuel
        recupererInformationsJoueur();

        // Modifier l'IHM pour afficher le joueur
        modifierIHMAfficherSeancesJoueur();

        // Permettre à tous les boutons de suppression de séance d'être cliquables
        rendreBoutonIHMCliquables();
    }

Méthode purgerSeancesJoueur() affichant une boîte de dialogue qui va supprimer les séances du joueur actuel selon la décision prise.

Références com.ttpa.iris.ttpamobile.Joueur.getNom(), com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.idJoueurActuel, com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.joueurActuel, com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.onClick(), com.ttpa.iris.ttpamobile.ServeurBDD.purgerSeancesJoueur(), com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.serveurBDD, et com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.tableauSeances.

Référencé par com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.onClick().

    {
        Log.d("IHMHistoriqueSeances", "purgerSeancesJoueur()");

        // Afficher la boite de dialogue
        AlertDialog.Builder detailsSeance = new AlertDialog.Builder(this);

        detailsSeance.setMessage("Vous êtes sur le point de supprimer définitivement les séance du joueur " + joueurActuel.getNom() + ".");

        detailsSeance.setPositiveButton("Continuer", new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int which)
            {
                // Purger les séances déjà existantes du joueur
                Toast.makeText(getApplicationContext(), "Purge des séances...", Toast.LENGTH_SHORT).show();

                // Purger la table des séances de la base de données
                serveurBDD.purgerSeancesJoueur(idJoueurActuel);

                // Supprimer le contenu du tableau des séances
                int compteur = tableauSeances.getChildCount();
                for (int i = 1; i < compteur; i++) { // On ne supprime pas la 1ere ligne qui est l'entête
                    View child = tableauSeances.getChildAt(i);
                    if (child instanceof TableRow) ((ViewGroup) child).removeAllViews();
                }
            }
        });

        detailsSeance.setNegativeButton("Annuler", new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int which)
            {

            }
        });

        detailsSeance.show();
    }

Méthode rendreBoutonIHMCliquables() permettant aux boutons de l'IHM d'être cliquables.

Références com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.boutonPurgerSeances, et com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.tableauSeances.

Référencé par com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.onCreate().

    {
        Log.d("IHMHistoriqueSeances", "rendreBoutonIHMCliquables()");

        // Boutons présents dans le tableau d'historique de séances du joueur
        int compteurLignes = tableauSeances.getChildCount();
        for (int i = 0; i < compteurLignes; ++i) {
            TableRow ligne = (TableRow) tableauSeances.getChildAt(i);

            if (ligne.getChildAt(ligne.getChildCount() - 1) instanceof ImageButton) {
                View element = ligne.getChildAt(ligne.getChildCount() - 1); // Le bouton de suppression de séance étant le dernier élément de la ligne
                element.setOnClickListener(this);
            }
        }

        // Bouton de purge de séance du joueur
        boutonPurgerSeances.setOnClickListener(this);
    }
void com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.supprimerSeanceSelectionnee ( int  idSeanceElementSelectionne,
int  indexLigneTableau 
) [private]

Méthode supprimerSeanceSelectionnee() permettant la suppression d'une séance précise.

Paramètres:
idSeanceElementSelectionneétant l'ID de la séance à supprimer
indexLigneTableauétant son index dans le tableau

Références com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.serveurBDD, com.ttpa.iris.ttpamobile.ServeurBDD.supprimerSeance(), et com.ttpa.iris.ttpamobile.IHMHistoriqueSeances.tableauSeances.

    {
        Log.d("IHMHistoriqueSeances", "supprimerSeanceSelectionnee()");

        // Supprimer la séance selectionnée de la base de données
        serveurBDD.supprimerSeance(idSeanceElementSelectionne);

        // Supprimer le contenu de la ligne correspondante du tableau des séances
        TableLayout tableauSeances = (TableLayout)findViewById(R.id.tableauSeances);
        TableRow ligne = (TableRow) tableauSeances.getChildAt(indexLigneTableau);
        tableauSeances.removeView(ligne);

        Toast.makeText(getApplicationContext(), "Suppression de la séance " + idSeanceElementSelectionne + "...", Toast.LENGTH_SHORT).show();
    }

Documentation des données membres


La documentation de cette classe a été générée à partir du fichier suivant :
 Tout Classes Fichiers Fonctions Variables