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);
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |