Package logica

Source Code of logica.Controllore$BottoneAccedi

package logica;

import grafica.popups.*;
import grafica.finestra.*;
import database.*;
import entita.Giocatore;
import java.awt.event.*;
import java.sql.SQLException;
import java.util.*;
import javax.swing.*;

//Classe controllo
public class Controllore
{
    private static Finestra finestraAttuale;                                    //Finestra attualmente visibile
    private static Finestra finestraPrecedente;                                 //Finestra temporanea di appoggio
    private static Data data;                                                   //Database
    private static Popups popup;                                                //Popup aperta
   
    //Costruttore
    public Controllore(Data d, Finestra f)
    {
        finestraAttuale = f;                                                    //Crea la finestra
        data = d;                                                               //Crea il database
    }
   
    //Metodo di controllo popup aperto
    private static boolean PopupAperto()
    {
        if (popup != null)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
   
    //Classe bottone di uscita
    public static class BottoneEsci implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            System.exit(0);                                                     //Chiude il programma
        }
    }
   
    //Classe bottone indietro
    public static class BottoneIndietro implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            finestraPrecedente = finestraAttuale;                               //Memorizza la finestra attuale nella finestra precedente
            finestraAttuale.dispose();                                          //Chiude la finestra attuale
            finestraAttuale = finestraPrecedente.Ritorna();                     //Rende attuale la finestra precedente
            finestraPrecedente.dispose();                                       //Chiude la finestra precedente
        }
    }
   
    //Classe bottone home
    public static class BottoneHome implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            finestraAttuale.dispose();                                          //Chiude la finestra attuale
            finestraAttuale = new FinestraHome();                               //Apre la finestra home
        }
    }
   
    //Classe bottone accedi
    public static class BottoneAccedi implements ActionListener
    {
        private String username;                                                //Campo username
        private String password;                                                //campo password
       
        @Override
        public void actionPerformed(ActionEvent e)
        {
            username = finestraAttuale.getCampoUser().getText();                //Recupera contenuto campo username
            password = finestraAttuale.getCampoPass().getText();                //Recupera contenuto campo password
           
            try
            {
                data.Connessione(username, password);                           //Chiama il metodo di connessione al database
                data.setUserEPass(username, password);                          //Memorizza username e password corretti
                data.ChiudiConnessione();                                       //Chiama il metodo di chiusura connessione
                finestraAttuale.dispose();                                      //Chiude la finestra attuale
                finestraAttuale = new FinestraHome();                           //Apre la finestra home
            }
            catch (SQLException ex)
            {
                JOptionPane.showMessageDialog(null, "Username o password errata", "Errore", JOptionPane.ERROR_MESSAGE); //Mostra messaggio di errore
            }
        }
    }

    //Classe bottone visualizza
    public static class BottoneVisualizzaDati implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            finestraAttuale.dispose();                                          //Chiude la finestra attuale
            finestraAttuale = new FinestraVisualizza();                         //Apre la finestra visualizza
        }
    }
   
    //Classe bottone aggiorna database
    public static class BottoneAggiornaData implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            finestraAttuale.dispose();                                          //Chiude la finestra attuale
            finestraAttuale = new FinestraAggiorna();                           //Apre la finestra aggiorna database
        }
    }
   
    //Classe bottone classifica
    public static class BottoneClassifica implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            finestraAttuale.dispose();                                          //Chiude la finestra attuale
            finestraAttuale = new FinestraClassifiche();                        //Apre la finestra delle classifiche
        }
    }
   
    //Classe bottone vittorie
    public static class BottoneVittorie implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
        }  
    }
   
    //Classe bottone guadagni
    public static class BottoneGuadagni implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
        }  
    }
   
    //Classe bottone fuorilegge
    public static class BottoneFuorilegge implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
        }  
    }
   
    //Classe bottone partite
    public static class BottonePartite implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            finestraAttuale.dispose();                                          //Chiude la finestra attuale
            finestraAttuale = new FinestraPartite();                            //Apre la finestra partite
        }
    }
   
    //Classe bottone partite in corso
    public static class BottonePartiteInCorso implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
        }  
    }
   
    //Classe bottone cerca partite
    public static class BottoneCercaPartite implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
        }  
    }
   
    //Classe bottone aggiungi giocatore
    public static class BottoneAggiungiGiocatore implements ActionListener
    {       
        @Override
        public void actionPerformed(ActionEvent e)
        {
            finestraAttuale.dispose();                                          //Chiude la finestra attuale
            finestraAttuale = new FinestraGiocatore();                          //Apre la finestra aggiungi giocatore
        }  
    }
   
    //Classe bottone aggiungi
    public static class BottoneAggiungi implements ActionListener
    {
        private String nome;                                                    //Nome giocatore da aggiungere
        private int risposta;                                                   //Conferma di aggiunta giocatore
       
        @Override
        public void actionPerformed(ActionEvent e)
        {
            nome = finestraAttuale.getCampoNomeGiocatore().getText();           //Preleva nome del giocatore da inserire
           
            if (nome.isEmpty())                                                 //Se campo nome vuoto
            {
                JOptionPane.showMessageDialog(null, "Non hai digitato il nome da inserire", "Nessun Nome", JOptionPane.INFORMATION_MESSAGE); //Mostra avvertimento
            }
            else
            {
                try
                {
                    data.AggiungiNuovoGiocatore(nome);                          //Richiama metodo di inserimento giocatore
                    JOptionPane.showMessageDialog(null, "Giocatore inserito correttamente", "Inserimento riuscito", JOptionPane.INFORMATION_MESSAGE); //Mostra popup di inserimento riuscito
                    finestraAttuale.getCampoNomeGiocatore().setText("");        //Svuota il campo nome giocatore
                }
                catch (SQLException ex1)
                {
                    JOptionPane.showMessageDialog(null, "Inserimento non riuscito", "Errore", JOptionPane.ERROR_MESSAGE); //Mostra messaggio di errore
                }
                catch (Exception ex2)
                {
                    risposta = JOptionPane.showConfirmDialog(null, "Giocatore già presente nel database\nContinuare?", "Aggiungi giocatore", JOptionPane.OK_OPTION); //Mostra popup di conferma
                    if (risposta == JOptionPane.YES_OPTION)                     //Se utente preme si allora inserisce nome
                    {
                        try
                        {
                            data.InsertGiocatore(nome);                         //Chiama metodo inserimento nome giocatore
                            JOptionPane.showMessageDialog(null, "Giocatore inserito correttamente", "Inserimento riuscito", JOptionPane.INFORMATION_MESSAGE); //Mostra popup di inserimento riuscito
                            finestraAttuale.getCampoNomeGiocatore().setText(""); //Svuota il campo nome giocatore
                        }
                        catch (SQLException ex3)
                        {
                            JOptionPane.showMessageDialog(null, "Inserimento non riuscito", "Errore", JOptionPane.ERROR_MESSAGE); //Mostra messaggio di errore
                        }
                    }
                }
            }
        }  
    }
   
    //Classe bottone inizia partita
    public static class BottoneIniziaPartita implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            finestraAttuale.dispose();                                          //Chiude la finestra attuale
            finestraAttuale = new FinestraNuovaPartita();                       //Apre la finestra nuova partita
        }  
    }
   
    //Classe bottone apri lista giocatore
    public static class BottoneGiocatore implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            if (PopupAperto())                                                  //Controlla che il popup sia già aperto
            {
                popup.dispose();                                                //Chiude popup per poterne aprire uno nuovo
            }
            popup = new PopupElencoGiocatori("Elenco Giocatori");               //Crea finestra popup
        }
    }
   
    //Classe bottone cerca giocatori
    public static class BottoneCercaGiocatori implements ActionListener
    {
        private String nome;                                                    //Parte o completo nome da cercare
       
        @Override
        public void actionPerformed(ActionEvent e)
        {
            Vector<Giocatore> elenco = new Vector<Giocatore>();                 //Elenco dei giocatori trovati
            nome = popup.getNomeGiocatore().getText();                          //Preleva il nome giocatore dal campo nome
           
            if (nome.isEmpty())                                                 //Se il campo è vuoto
            {
                JOptionPane.showMessageDialog(null, "Non hai digitato il nome da cercare/inserire", "Nessun Nome", JOptionPane.INFORMATION_MESSAGE); //Mostra avvertimento
            }
            else
            {
                try
                {
                    elenco = data.CercaGiocatori(nome);                         //Chiama metodo di ricerca giocatori
                    popup.setElencoGiocatoriTrovati(elenco);                    //Imposta l'elenco dei giocatori trovati
                }
                catch (SQLException ex)
                {
                    popup.dispose();
                    JOptionPane.showMessageDialog(null, "Impossibile effettuare ricerche", "Errore", JOptionPane.ERROR_MESSAGE); //Mostra messaggio di errore
                }
            }
        }
    }
   
    //Classe click del mouse elenco trovati
    public static class ClickElencoTrovati extends MouseAdapter
    {
        private int indexScelto;                                                //Indice di riga selezionata
        private Giocatore giocatore;                                            //Giocatore da inserire
        private int codiceGiocatore;                                            //Codice del giocatore
        private String nomeGiocatore;                                           //Nome del giocatore

        @Override
        public void mouseClicked(MouseEvent e)
        {
            int i = 0;                                                          //Indice di scorrimento lista giocatori
            indexScelto = popup.getElencoTrovati().getSelectedRow();            //Recupera la riga selezionata
            codiceGiocatore = (Integer)popup.getElencoTrovati().getValueAt(indexScelto, 0); //Preleva codice del giocatore selezionato
            nomeGiocatore = (String)popup.getElencoTrovati().getValueAt(indexScelto, 1); //Preleva codice del giocatore selezionato        
           
            //Controlla codice con i codici dei giocatori scelti
            while ((i < popup.getListaGiocatori().size()) && (popup.getListaGiocatori().get(i).getCodiceGiocatore() != codiceGiocatore))
            {
                i++;
            }
           
            if (i >= popup.getListaGiocatori().size())                          //Controlla se è stato trovato lo stesso codice di un giocatore scelto
            {
                if (!popup.LimiteGiocatori())                                   //Controlla limite massimo di giocatori scelti
                {
                    giocatore = new Giocatore(codiceGiocatore, nomeGiocatore)//Crea nuovo giocatore
                    popup.setElencoGiocatoriSelezionati(giocatore);             //Chiama metodo di creazione tabella giocatori scelti
                }
                else                                                            //Limite raggiunto
                {
                    JOptionPane.showMessageDialog(null, "Numero massimo di giocatori scelti", "Limite Raggiunto", JOptionPane.INFORMATION_MESSAGE); //Messaggio di limite raggiunto
                }
            }
            else                                                                //Giocatore presente
            {
                JOptionPane.showMessageDialog(null, "Giocatore presente nella lista scelti", "Giocatore Presente", JOptionPane.INFORMATION_MESSAGE); //Messaggio di giocatore già presente
            }
        }
    }
   
    //Classe click del mouse elenco selezionati
    public static class ClickElencoSelezionati extends MouseAdapter
    {
        private int indexScelto;                                                //Indice di riga selezionata
       
        @Override
        public void mouseClicked(MouseEvent e)
        {           
            if (!popup.getListaGiocatori().isEmpty())                           //Se lista non vuota
            {
                indexScelto = popup.getElencoSelezionati().getSelectedRow();    //Preleva indice di riga scelta
                popup.rimuoviGiocatoreSelezionato(indexScelto);                 //Chiama metodo di rimozione giocatore scelto
            }
        }
    }
   
    //Classe bottone annulla
    public static class BottoneAnnulla implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            popup.dispose();                                                    //Chiude popup
        }
       
    }
   
    //Classe bottone aggiungi nuovo giocatore in partita
    public static class BottoneCreaGiocatoreInPartita implements ActionListener
    {
        private String nome;                                                    //Nome giocatore da aggiungere
       
        @Override
        public void actionPerformed(ActionEvent e)
        {
            Vector<Giocatore> elenco = new Vector<Giocatore>();                 //Elenco giocatori trovati
            Giocatore giocatore;                                                //Nuovo giocatore da inserire
            nome = popup.getNomeGiocatore().getText();                          //Preleva nome del giocatore da inserire
           
            if (nome.isEmpty())                                                 //Se campo nome vuoto
            {
                JOptionPane.showMessageDialog(null, "Non hai digitato il nome da inserire", "Nessun Nome", JOptionPane.INFORMATION_MESSAGE); //Mostra avvertimento
            }
            else
            {
                try
                {
                    data.AggiungiNuovoGiocatore(nome);                          //Richiama metodo di inserimento giocatore
                    JOptionPane.showMessageDialog(null, "Giocatore inserito correttamente", "Inserimento riuscito", JOptionPane.INFORMATION_MESSAGE); //Mostra popup di inserimento riuscito
                    popup.getNomeGiocatore().setText("");                       //Svuota il campo nome giocatore
                    elenco = data.CercaGiocatori(nome);                         //Preleva giocatore appena inserito
                    giocatore = new Giocatore(elenco.get(0).getCodiceGiocatore(), elenco.get(0).getNomeGiocatore()); //Creo nuovo giocatore
                    popup.setElencoGiocatoriTrovati(elenco);                    //Chiama metodo di creazione tabella trovati
                    popup.setElencoGiocatoriSelezionati(giocatore);             //Chiama metodo di creazione tabella selezionati
                }
                catch (SQLException ex1)
                {
                    JOptionPane.showMessageDialog(null, "Impossibile effettuare operazioni", "Errore", JOptionPane.ERROR_MESSAGE); //Mostra messaggio di errore
                }
                catch (Exception ex2)
                {
                    try
                    {
                        elenco = data.CercaGiocatori(nome);                     //Preleva giocatore appena inserito
                        giocatore = new Giocatore(elenco.get(0).getCodiceGiocatore(), elenco.get(0).getNomeGiocatore()); //Creo nuovo giocatore
                        popup.setElencoGiocatoriSelezionati(giocatore);         //Chiama metodo di creazione tabella selezionati
                    }
                    catch (SQLException ex3)
                    {
                        JOptionPane.showMessageDialog(null, "Impossibile effettuare operazioni", "Errore", JOptionPane.ERROR_MESSAGE); //Mostra messaggio di errore
                    }
                }
            }
        }  
    }
   
    //Classe bottone continua creazione partita
    public static class BottoneContinuaCreaPartita implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            finestraAttuale.getListaGiocatori().clear();                        //Svuota lista dei giocatori precedenti
            finestraAttuale.getListaGiocatori().addAll(popup.getListaGiocatori()); //Copia lista dei giocatori scelti
            finestraAttuale.setElencoGiocatoriScelti();                         //Crea la tabella giocatori partecipanti
            popup.dispose();                                                    //Chiude popup
        }
    }
   
    //Classe click del mouse elenco partecipanti
    public static class ClickElencoPartecipanti extends MouseAdapter
    {
        private int index;                                                      //Indice della riga scelta
       
        @Override
        public void mouseClicked(MouseEvent e)
        {
            index = finestraAttuale.getTabellaPartecipanti().getSelectedRow()//Recupera indice di riga selezionata
            try
            {
                finestraAttuale.getListaGiocatori().remove(index);              //Rimuove giocatore scelto
                finestraAttuale.setElencoGiocatoriScelti();                     //Crea la tabella giocatori partecipanti
            }
            catch (ArrayIndexOutOfBoundsException ex)
            {
            }
        }
    }
   
    //Classe bottone crea partita
    public static class BottoneCreaPartita implements ActionListener
    {
        private ArrayList<Giocatore> partecipanti = new ArrayList<Giocatore>(); //Elenco giocatori partecipanti alla partita
        private String calendario;                                              //Data da memorizzare
        private int giorno;                                                     //Giorno della data
        private int mese;                                                       //Mese della data
        private int anno;                                                       //Anno della data
        private String nomePartita;                                             //Nome della partita
       
        @Override
        public void actionPerformed(ActionEvent e)
        {
            nomePartita = finestraAttuale.getNomePartita().getText();           //Recupera il nome della partita
           
            if (nomePartita.isEmpty())
            {
                JOptionPane.showMessageDialog(null, "Non hai digitato il nome partita", "Nessun Nome", JOptionPane.INFORMATION_MESSAGE); //Mostra avvertimento
            }
            else
            {
                try
                {
                    giorno = Integer.parseInt(finestraAttuale.getCampoGiorno()); //Recupera giorno inserito
                    mese = Integer.parseInt(finestraAttuale.getCampoMese());    //Recupera mese inserito
                    anno = Integer.parseInt(finestraAttuale.getCampoAnno());    //Recupera anno inserito
                }
                catch (NumberFormatException n)
                {
                    JOptionPane.showMessageDialog(null, "Devi scegliere una data di inizio corretta", "Errore data", JOptionPane.INFORMATION_MESSAGE); //Mostra avvertimento
                }
           
                partecipanti = finestraAttuale.getListaGiocatori();             //Recupera partecipanti della partita
               
                if (partecipanti.size() < 3)                                    //Verifica se sono stati inseriti un numero sufficente di giocatori
                {
                    JOptionPane.showMessageDialog(null, "Devi inserire minimo 3 giocatori", "Giocatori insufficenti", JOptionPane.INFORMATION_MESSAGE); //Mostra avvertimento
                }
                else                                                            //Se numero di partecipanti sufficente
                {
                    //Verifica se nella data c'è il mese di febbraio
                    if ((mese == 2) && (giorno > 28))
                    {
                        if ((anno % 4) == 0)                                    //Verifica anno bisestile
                        {
                            giorno = 29;                                        //Se anno bisestile febbraio finisce 29
                        }
                        else                                                    //Altrimenti
                        {
                            giorno = 28;                                        //Febbraio finisce il 28
                        }
                    }
                    calendario = giorno + "/" + mese + "/" + anno;              //Recupera data
           
                    try
                    {
                        //Verifica se il nome partita è già presente nel database
                        if (data.CercaPartita(nomePartita))                     //Se nome partita presente
                        {
                            JOptionPane.showMessageDialog(null, "Nome partita già presente nel database", "Nome presente", JOptionPane.ERROR_MESSAGE); //Mostra messaggio di avviso
                        }
                        else                                                    //Se nome partita non presente
                        {
                            data.InsertPartita(nomePartita, calendario, partecipanti); //Inserisce partita nel database
                            JOptionPane.showMessageDialog(null, "Partita inserita correttamente", "Inserimento riuscito", JOptionPane.INFORMATION_MESSAGE); //Mostra popup di inserimento riuscito
                            finestraAttuale.getNomePartita().setText("");       //Azzera il campo nome
                            finestraAttuale.getListaGiocatori().clear();        //Azzera lista giocatori scelti
                            finestraAttuale.setElencoGiocatoriScelti();         //Svuota la tabella
                        }
                    }
                    catch (SQLException ex)
                    {
                        JOptionPane.showMessageDialog(null, "Impossibile effettuare operazioni", "Errore", JOptionPane.ERROR_MESSAGE); //Mostra messaggio di errore
                    }
                }
            }
        }
    }
   
    //Classe bottone continua partita
    public static class BottoneContinuaPartita implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            finestraAttuale.dispose();                                          //Chiude la finestra attuale
            finestraAttuale = new FinestraContinuaPartita();                    //Apre finestra continua partita
        }  
    }
   
    //Classe bottone aggiungi mossa
    public static class BottoneAggiungiMossa implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
        }
    }
}
TOP

Related Classes of logica.Controllore$BottoneAccedi

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.