212 lines
7.0 KiB
Java
212 lines
7.0 KiB
Java
package fr.blankoworld.ihm;
|
|
|
|
import fr.blankoworld.connexionBDD.Connexion;
|
|
import fr.blankoworld.ihm.IHMPrincipale;
|
|
import java.awt.BorderLayout;
|
|
import java.awt.GridLayout;
|
|
import java.awt.event.ActionEvent;
|
|
import java.awt.event.ActionListener;
|
|
import javax.swing.JButton;
|
|
import javax.swing.JFrame;
|
|
import javax.swing.JLabel;
|
|
import javax.swing.JOptionPane;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.JPasswordField;
|
|
import javax.swing.JTextField;
|
|
|
|
/**
|
|
* @author 3dossmanno
|
|
*/
|
|
public class IHMConnexion extends JFrame {
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
// Donnees privees
|
|
|
|
// Creation des champs textes
|
|
private JTextField jtextServeur;
|
|
private JTextField jtextPort;
|
|
private JTextField jtextBase;
|
|
private JTextField jtextIdentifiant;
|
|
private JPasswordField jtextMdp;
|
|
|
|
private JButton jOk;
|
|
|
|
// Creation d'un principal, pour utiliser ses methodes
|
|
private IHMPrincipale pr;
|
|
|
|
// Creation de la classe permettant la connexion a la base de donnees
|
|
private Connexion connexionToBdd;
|
|
|
|
/**
|
|
* @param args
|
|
*/
|
|
public static void main(String[] args) {
|
|
// TODO Auto-generated method stub
|
|
}
|
|
|
|
/**
|
|
* <h3>IHMConnexion</h3>
|
|
* <p>Interface graphique pour se connecter a une base de donnees.<br />
|
|
* Demande en parametre une IHMPrincipale, de type IHMPrincipale, et 5 parametres : Le serveur, le port, la base de donnees, l'identifiant
|
|
* et le mot de passe par defaut.</p>
|
|
* <p>Retourne en contrepartie un objet Connexion qui a tout les parametres de l'utilisateur et qui permet de se connecter.</p>
|
|
* <p>L'objet Connexion provient du paquet fr.blankoworld.connexionBDD.Connexion</p>
|
|
*/
|
|
public IHMConnexion(IHMPrincipale pr, String defaultServer, String defaultPort, String defaultDatabase, String defaultLogin, String defaultMdp) {
|
|
|
|
this.pr = pr;
|
|
|
|
connexionToBdd = new Connexion(defaultServer, defaultPort, defaultDatabase, defaultLogin, defaultMdp);
|
|
|
|
// Creation des etiquettes
|
|
JLabel jlabelServeur = new JLabel(" Serveur: ");
|
|
JLabel jlabelPort = new JLabel(" Port: ");
|
|
JLabel jlabelBase = new JLabel(" Base de donnees: ");
|
|
JLabel jlabelIdentifiant = new JLabel(" Identifiant: ");
|
|
JLabel jlabelMdp = new JLabel(" Mot de passe: ");
|
|
|
|
// Creation des champs textes
|
|
jtextServeur = new JTextField(connexionToBdd.getServer());
|
|
jtextPort = new JTextField(connexionToBdd.getPort());
|
|
jtextBase = new JTextField(connexionToBdd.getDatabase());
|
|
jtextIdentifiant = new JTextField(connexionToBdd.getLogin());
|
|
jtextMdp = new JPasswordField(connexionToBdd.getPassword());
|
|
jtextMdp.setEchoChar('*');
|
|
|
|
// Creation des boutons
|
|
jOk = new JButton("OK");
|
|
JButton jAnnuler = new JButton("Annuler");
|
|
|
|
//** Creation des panneaux **//
|
|
// Panneau au centre
|
|
JPanel Panneau_Centre = new JPanel();
|
|
Panneau_Centre.setLayout(new GridLayout(1,2));
|
|
|
|
// Donner un titre a notre panneau
|
|
//Panneau_Centre.setBorder(BorderFactory.createTitledBorder("Salut"));
|
|
|
|
// Panneau a gauche du panneau centre
|
|
JPanel Panneau_Centre_Gauche = new JPanel();
|
|
Panneau_Centre_Gauche.setLayout(new GridLayout(5,1));
|
|
|
|
// Panneau a droite du panneau centre
|
|
JPanel Panneau_Centre_Droite = new JPanel();
|
|
Panneau_Centre_Droite.setLayout(new GridLayout(5,1));
|
|
|
|
// Panneau en bas
|
|
JPanel Panneau_Bas = new JPanel();
|
|
|
|
// Ajout des etiquettes au panneau centre a gauche
|
|
Panneau_Centre_Gauche.add(jlabelServeur);
|
|
Panneau_Centre_Gauche.add(jlabelBase);
|
|
Panneau_Centre_Gauche.add(jlabelPort);
|
|
Panneau_Centre_Gauche.add(jlabelBase);
|
|
Panneau_Centre_Gauche.add(jlabelIdentifiant);
|
|
Panneau_Centre_Gauche.add(jlabelMdp);
|
|
|
|
// Ajout des champs textes au panneau centre droit
|
|
Panneau_Centre_Droite.add(jtextServeur);
|
|
Panneau_Centre_Droite.add(jtextBase);
|
|
Panneau_Centre_Droite.add(jtextPort);
|
|
Panneau_Centre_Droite.add(jtextBase);
|
|
Panneau_Centre_Droite.add(jtextIdentifiant);
|
|
Panneau_Centre_Droite.add(jtextMdp);
|
|
|
|
// Ajout des boutons au panneau bas
|
|
Panneau_Bas.add(jOk);
|
|
Panneau_Bas.add(jAnnuler);
|
|
|
|
// Ajout des panneaux droits et gauche au panneau centre
|
|
Panneau_Centre.add(Panneau_Centre_Gauche);
|
|
Panneau_Centre.add(Panneau_Centre_Droite);
|
|
|
|
// Ajout des panneaux a la fenetre
|
|
this.getContentPane().setLayout(new BorderLayout());
|
|
this.add(Panneau_Centre, BorderLayout.CENTER);
|
|
this.add(Panneau_Bas, BorderLayout.SOUTH);
|
|
|
|
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
|
|
|
this.setSize(350,200);
|
|
this.setLocation(200,200);
|
|
this.setResizable(false);
|
|
this.setTitle("Connexion a une base de donnees");
|
|
|
|
// ********************************************** //
|
|
|
|
jOk.addActionListener(new ActionListener(){
|
|
public void actionPerformed(ActionEvent ev){
|
|
valider();
|
|
}
|
|
});
|
|
|
|
jAnnuler.addActionListener(new ActionListener(){
|
|
public void actionPerformed(ActionEvent ev){
|
|
annuler();
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
private void valider(){
|
|
String message;
|
|
int resultatConfirmation;
|
|
|
|
// Recuperation des valeurs entrees dans les champs textes
|
|
message = "La connexion va etre etablie, les valeurs suivantes sont - elles exactes ? : \n\n";
|
|
message += "Serveur : " + this.jtextServeur.getText() + "\n";
|
|
message += "Port : " + this.jtextPort.getText() + "\n";
|
|
message += "Base de donnees : " + this.jtextBase.getText() + "\n";
|
|
message += "Identifiant : " + this.jtextIdentifiant.getText() + "\n";
|
|
message += "Mot de passe (crypte) : " + this.jtextMdp.getPassword().toString() + "\n";
|
|
|
|
// Affichage du message de confirmation
|
|
resultatConfirmation = JOptionPane.showConfirmDialog(this, message, "Confirmation", JOptionPane.YES_NO_OPTION);
|
|
|
|
// Nous confirmons ou pas ?
|
|
if(resultatConfirmation == 0){
|
|
|
|
String rose = new String(this.jtextMdp.getPassword());
|
|
// Si oui nous enregistrons les valeurs dans notre objet connexion
|
|
connexionToBdd.setServer(this.jtextServeur.getText());
|
|
connexionToBdd.setPort(this.jtextPort.getText());
|
|
connexionToBdd.setDatabase(this.jtextBase.getText());
|
|
connexionToBdd.setLogin(this.jtextIdentifiant.getText());
|
|
connexionToBdd.setPassword(rose);
|
|
|
|
// Puis nous recuperons la main et affichons a nouveau la fenetre principale en lui passant l'objet de connexion
|
|
this.dispose();
|
|
this.pr.setVisible(true);
|
|
this.pr.confirmationConnexion(connexionToBdd);
|
|
this.invalidate();
|
|
}
|
|
else{
|
|
// Sinon aucun traitement n'est effectue
|
|
}
|
|
}
|
|
|
|
private void annuler(){
|
|
this.dispose();
|
|
}
|
|
|
|
public void driverExist(){
|
|
// On verifie la presence du pilote JDBC, et de sa fonctionnalite
|
|
if(Integer.parseInt(connexionToBdd.driverPresent()[0]) == 1){
|
|
// Si pilote non present on desactive le bouton ok et autres boutons attaches
|
|
this.jtextServeur.setEnabled(false);
|
|
this.jtextPort.setEnabled(false);
|
|
this.jtextBase.setEnabled(false);
|
|
this.jtextIdentifiant.setEnabled(false);
|
|
this.jtextMdp.setEnabled(false);
|
|
|
|
this.jOk.setEnabled(false);
|
|
|
|
JOptionPane.showMessageDialog(this, "Pilote introuvable ou non fonctionnel.", "Avertissement", JOptionPane.ERROR_MESSAGE);
|
|
}
|
|
else{
|
|
JOptionPane.showMessageDialog(this, "Pilote trouve.", "Information", JOptionPane.INFORMATION_MESSAGE);
|
|
}
|
|
}
|
|
}
|