Allora per i pannelli uso come layout un cardlayout.
Nella vista faccio 3 metodi
1. schermoLogin
2 schermoPrincipale
public void schermoPrincipale() {
PannelloPrincipale pp = (PannelloPrincipale) this.getSottoViste(Costanti.PANNELLO_PRINCIPALE);
PannelloLogin pl = (PannelloLogin) this.getSottoViste(Costanti.PANNELLO_LOGIN);
JScrollPane scroll = new JScrollPane(pp);
JScrollPane scroll2 = new JScrollPane(pl);
this.getContentPane().add(pp);
this.getContentPane().remove(pl);
pp.aggiornaComboCarte();
pp.inizializzaPannelloSupermercato();
this.pack();
this.setLocationRelativeTo(null);
this.setVisible(true);
}
3. schermoAmministratore
public void schermoAmministratore() {
FinestraModificaClienti fmc = (FinestraModificaClienti) this.getSottoViste(Costanti.FINESTRA_MODIFICA_CLIENTI);
PannelloAmministratore pa = (PannelloAmministratore) this.getSottoViste(Costanti.PANNELLO_AMMINISTRATORE);
PannelloLogin pl = (PannelloLogin) this.getSottoViste(Costanti.PANNELLO_LOGIN);
JScrollPane scroll = new JScrollPane(pa);
JScrollPane scroll2 = new JScrollPane(pl);
this.getContentPane().add(pa);
this.getContentPane().remove(pl);
pa.aggiornaPannello();
fmc.inizializzaCampi();
this.pack();
this.setLocationRelativeTo(null);
this.setVisible(true);
}
nel costruttore della vista chiamo il metodo schermoLogin
la mia azione login è questa(Ancora non ho scritto il codice per far si che rimuova il pannelloLogin ed aggiunga quello Amministratore)
public void actionPerformed(ActionEvent e) {
logger.info("\nEffettuo il Login\n" + "Classe:" +" " + this.getClass().getName()+"\n");
PannelloLogin pl = (PannelloLogin) this.applicazione.getVista().getSottoViste(Costanti.PANNELLO_LOGIN);
String username = pl.getUsername();
String password = pl.getPassword();
Modello modello = this.applicazione.getModello();
Banca banca = (Banca) this.applicazione.getModello().getBean(Costanti.BANCA);
String errori = convalidaDati(banca, username, password);
if (!errori.isEmpty()) {
pl.finestraErrore("ATTENZIONE", errori);
return;
}
PannelloPrincipale pp = (PannelloPrincipale) this.applicazione.getVista().getSottoViste(Costanti.PANNELLO_PRINCIPALE);
Cliente c = banca.getCliente(username);
modello.putBean(Costanti.CLIENTE, c);
applicazione.abilitaAzione(Costanti.AZIONE_LOGOUT);
applicazione.abilitaAzione(Costanti.AZIONE_VISUALIZZA_FINESTRA_AGGIUNGI);
applicazione.abilitaAzione(Costanti.AZIONE_VISUALIZZA_FINESTRA_MODIFICA);
applicazione.abilitaAzione(Costanti.AZIONE_VISUALIZZA_FINESTRA_OPERAZIONI);
applicazione.abilitaAzione(Costanti.AZIONE_ELIMINA_CARTA);
applicazione.getVista().schermoPrincipale();
}
private String convalidaDati(Banca banca, String user, String password) {
Cliente c = banca.getCliente(user);
String errori = "";
if( user.equals("")) {
errori += " Il Campo User Non Può Essere Vuoto";
}else if (c == null) {
errori += "Utente inesistente";
} else if (!c.getPassword().equals(password)) {
errori += "Password scorretta";
}
return errori;
}
Ho una lista di utenti con nome, cognome c.f. ecc, volevo assegnarli un ruolo. Ad esempio utente semplice o amministratore. ovviamente l'amministratore può fare delle cose l'utente semplice no.
I dati per il momento li carico dalla persistenza.