ApplicationClient.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
class ApplicationClient extends JFrame implements ActionListener
{
private JTextArea zoneDeTexte;
private JScrollPane ascenseur;
private JMenuBar barreMenu;
private JMenu affichage,classerPar,options,aide,fichier;
private JMenuItem aideBis,aPropos,requete,suppression,actualiser,preferences;
private JCheckBoxMenuItem adresse,nbConnections,date,barreOutils;
private JRadioButtonMenuItem adresseRB,nbConnectionsRB,dateRB;
public GestionBaseClient base;
public int longueurURL, longueurDate, longueurNB;
public int positionURL, positionDate, positionNB;
public String argumentOptionel;
public JMenuItem recharger;
public BarreOutilsComptage barre;
public ApplicationClient()
{
//Création de la fenêtre
setTitle("Exploitation de la base de données"); //affecte un titre à la fenetre
setBounds(150,150,1000,700); //affecte les dimensions par défaut de la fenetre
setDefaultCloseOperation(EXIT_ON_CLOSE); //definit le comportement de la fenetre à la fermeture (fin du programme)
//Definition du container principal
Container conteneur=getContentPane(); //definit le conteneur de la fenetre
conteneur.setLayout(new BorderLayout()); //affectation du type de container
//declaration de la Jmenu Barre
barreMenu=new JMenuBar();
//declaration des différentes parties du menu et creation des options de ces menus
//**********************
//Menu Fichier
fichier=new JMenu("Fichier");
fichier.setMnemonic('F');
actualiser=new JMenuItem("Actualiser");
actualiser.setMnemonic('A');
fichier.add(actualiser);
actualiser.addActionListener(this);
recharger=new JMenuItem("Recharger Tout");
recharger.setMnemonic('R');
recharger.setEnabled(false);
fichier.add(recharger);
recharger.addActionListener(this);
barreMenu.add(fichier);
//**********************
//Menu Affichage
affichage=new JMenu("Affichage");
affichage.setMnemonic('A'); // affectation de la lettre de racoourcit A
//creation des différentes JCheckBox du menu Adresse
adresse=new JCheckBoxMenuItem("Adresse");
adresse.setMnemonic('A');
affichage.add(adresse);
adresse.addActionListener(this);
nbConnections=new JCheckBoxMenuItem("Nbr connections");
adresse.setMnemonic('N');
affichage.add(nbConnections);
nbConnections.addActionListener(this);
date=new JCheckBoxMenuItem("Date");
adresse.setMnemonic('D');
affichage.add(date);
date.addActionListener(this);
barreMenu.add(affichage); //ajout de la rubrique affichage au menu
//**********************
//Menu Classer par
classerPar=new JMenu("Classer par");
classerPar.setMnemonic('C');
adresseRB=new JRadioButtonMenuItem("Adresse");
adresseRB.setMnemonic('A');
classerPar.add(adresseRB);
adresseRB.addActionListener(this);
nbConnectionsRB=new JRadioButtonMenuItem("Nbr Connections");
nbConnectionsRB.setMnemonic('N');
classerPar.add(nbConnectionsRB);
nbConnectionsRB.addActionListener(this);
dateRB=new JRadioButtonMenuItem("Date");
dateRB.setMnemonic('D');
classerPar.add(dateRB);
dateRB.addActionListener(this);
ButtonGroup groupeClasserPar=new ButtonGroup(); //creation du groupe de boutons
groupeClasserPar.add(adresseRB);
groupeClasserPar.add(nbConnectionsRB);
groupeClasserPar.add(dateRB);
barreMenu.add(classerPar);
//**********************
//Menu options
options=new JMenu("Options");
options.setMnemonic('O');
preferences=new JMenuItem("Preférences");
preferences.setMnemonic('P');
options.add(preferences);
preferences.addActionListener(this);
barreOutils=new JCheckBoxMenuItem("Barre d'outils comptage");
barreOutils.setMnemonic('B');
options.add(barreOutils);
barreOutils.addActionListener(this);
options.addSeparator();
requete=new JMenuItem("Requete");
requete.setMnemonic('R');
options.add(requete); //ajout de requete à la rubrique options
requete.addActionListener(this); //ajout de requete à l'ecouteur d'action
suppression=new JMenuItem("Suppression");
suppression.setMnemonic('S');
options.add(suppression); //ajout de suppression à la rubrique options
suppression.addActionListener(this); //ajout de supression à l'ecouteur d'action
barreMenu.add(options);
//**********************
//Menu aide
aide=new JMenu("Aide"); //affectation du titre de la rubrique
aide.setMnemonic('i'); // affectation de la lettre de racoourcit i
aideBis=new JMenuItem("???"); //creation de l'option aide
aideBis.setMnemonic('?'); //affectation de la lettre de raccourcit ?
aide.add(aideBis); //ajout de l'option aide
aideBis.addActionListener(this);
aPropos=new JMenuItem("A Propos"); //creation de l'option à propos
aPropos.setMnemonic('A'); //affectation de la lettre de raccourcit ?
aide.add(aPropos); //ajout de l'option aide
aPropos.addActionListener(this);
barreMenu.add(aide); //ajout de la rubrique aide au menu
//ajout de la JMenuBar au container
conteneur.add(barreMenu,"North");
Container conteneurBis=new Container();
conteneurBis.setLayout(new BorderLayout());
//ajout de la zone de texte
zoneDeTexte=new JTextArea(10,10);
zoneDeTexte.setFont(new Font("Monospaced",Font.PLAIN,14));
ascenseur=new JScrollPane(zoneDeTexte,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
conteneurBis.add(ascenseur,"Center");
//Etat par défault des différents éléments
adresse.setSelected(true);
nbConnections.setSelected(true);
date.setSelected(true);
adresseRB.setSelected(true);
barreOutils.setSelected(true);
longueurURL=60;
longueurDate=30;
longueurNB=5;
positionURL=1;
positionNB=2;
positionDate=3;
argumentOptionel="";
//création de la base
base = new GestionBaseClient("projet","information","daillyn");
//Création et ajout de la barre d'outils
barre=new BarreOutilsComptage(this);
conteneurBis.add(barre,"North");
conteneur.add(conteneurBis,"Center");
//affichage de la page
actualise();
setVisible(true);
}
public void actionPerformed(ActionEvent ev)
{
Object provoque=ev.getSource(); //recuperation de l'objet qui à provoqué l'evennement
if ( (provoque).equals(suppression) ) //appui sur suppression
{
new MenuSupprimer(this);
}
else if ( (provoque).equals(barreOutils) ) //appui sur barre d'outils
{
//System.out.println("Changement d'etat");
if (barreOutils.isSelected())
{
barre.setVisible(true);
}
else
{
barre.setVisible(false);
}
}
else if ( (provoque).equals(recharger) ) //appui sur recharger
{
argumentOptionel="";
barre.initialise();
actualise();
recharger.setEnabled(false);
barre.arobase.setEnabled(false);
}
else if ( (provoque).equals(aideBis) ) //appui sur aideBis
{
JOptionPane.showMessageDialog(this,"Aide : Reste à faire");
}
else if ( (provoque).equals(aPropos) ) //appui sur aPropos
{
JOptionPane.showMessageDialog(this,"Projet I4-GRIT \n N.Dailly \n S.Selerier \nSuivi par\n I.Lebouc","A Propos",JOptionPane.PLAIN_MESSAGE);
}
else if ( (provoque).equals(requete) ) //appui sur requete
{
new MenuRequete(this);
}
else if ( (provoque).equals(actualiser) ) //appui sur actualise
{
actualise();
}
else if ( (provoque).equals(nbConnectionsRB) ) //appui sur nbConnectionsRB
{
actualise();
}
else if ( (provoque).equals(adresseRB) ) //appui sur adresseRB
{
actualise();
}
else if ( (provoque).equals(dateRB) ) //appui sur dateRB
{
actualise();
}
else if ( (provoque).equals(adresse) ) //appui sur adresses
{
actualise();
}
else if ( (provoque).equals(nbConnections) ) //appui sur nbConnections
{
actualise();
}
else if ( (provoque).equals(date) ) //appui sur date
{
actualise();
}
else if ( (provoque).equals(preferences) ) //appui sur prefences
{
new MenuPreferences(this);
}
else
{
JOptionPane.showMessageDialog(this,"Erreur dans actionPerformed, option "+ev.getActionCommand()+" non implementée","Erreur",JOptionPane.ERROR_MESSAGE);
}
}
public void actualise() //génére la requete SQL est la met dans le JTextField
{
int NBInfos=0;
int posURL, posDate, posNB;
String orderBy="";
orderBy=adresseRB.isSelected()?"url":orderBy;
orderBy=nbConnectionsRB.isSelected()?"nbconnection":orderBy;
orderBy=dateRB.isSelected()?"dernier_acces":orderBy;
if (adresse.isSelected())
{
NBInfos++;
}
if (nbConnections.isSelected())
{
NBInfos++;
}
if (date.isSelected())
{
NBInfos++;
}
posURL=positionURL;
posNB=positionNB;
posDate=positionDate;
if (!adresse.isSelected())
{
if (posURL==1)
{
posNB--;
posDate--;
}
if (posURL==2)
{
if (posNB==3) posNB--;
if (posDate==3) posDate--;
}
posURL=0;
}
if (!nbConnections.isSelected())
{
if (posNB==1)
{
posURL--;
posDate--;
}
if (posNB==2)
{
if (posURL==3) posURL--;
if (posDate==3) posDate--;
}
posNB=0;
}
if (!date.isSelected())
{
if (posDate==1)
{
posURL--;
posNB--;
}
if (posDate==2)
{
if (posURL==3) posURL--;
if (posNB==3) posNB--;
}
posDate=0;
}
if (posURL<0) posURL=0;
if (posDate<0) posDate=0;
if (posNB<0) posNB=0;
String ResultRequete;
//System.out.println("pos url "+posURL+" posdate "+posDate+" posNB "+posNB);
if (NBInfos>0)
{
ResultRequete=base.executeRequete("SELECT * FROM information"+argumentOptionel+" ORDER BY "+orderBy,NBInfos,posURL,posNB,posDate,longueurURL,longueurNB,longueurDate);
}
else
{
ResultRequete="";
}
zoneDeTexte.setText(ResultRequete);
barre.miseAJourCompteur();
}
}
//************************************************************************************************************************
class MenuPreferences extends JFrame implements ActionListener
{
private ApplicationClient fenetreAssociee;
private JButton valider;
private JButton annuler;
private JTextField champ1, champ2, champ3, champ4, champ5, champ6;
private JLabel label1, label2, label3, label4, label5, label6;
public MenuPreferences(ApplicationClient fenetreAssos)
{
fenetreAssociee=fenetreAssos;
fenetreAssociee.setEnabled(false);
setBounds(300,300,500,400);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setTitle("Préférences");
Container conteneur=getContentPane();
// conteneur.setLayout(new GridLayout(5,2)); //definit le conteneur de la fenetre
Box boite=Box.createVerticalBox();
conteneur.add(boite);
Container contient1=new Container();
contient1.setLayout(new FlowLayout());
Container contient2=new Container();
contient2.setLayout(new FlowLayout());
Container contient3=new Container();
contient3.setLayout(new FlowLayout());
Container contient4=new Container();
contient4.setLayout(new FlowLayout());
Container contient5=new Container();
contient5.setLayout(new FlowLayout());
Container contient6=new Container();
contient6.setLayout(new FlowLayout());
Container contient7=new Container();
contient7.setLayout(new FlowLayout());
boite.add(contient1);
boite.add(contient2);
boite.add(contient3);
boite.add(contient4);
boite.add(contient5);
boite.add(contient6);
boite.add(contient7);
//Création des différents champs
label1=new JLabel("Longueur du champ URL (<200) : ");
champ1=new JTextField(3);
contient1.add(label1);
contient1.add(champ1);
label2=new JLabel("Longeur du champ nombre de connections (<10) : ");
champ2=new JTextField(3);
contient2.add(label2);
contient2.add(champ2);
label3=new JLabel("longueur du champ date (<100) : ");
champ3=new JTextField(3);
contient3.add(label3);
contient3.add(champ3);
label4=new JLabel("Position du champ URL (1, 2 ou 3): ");
champ4=new JTextField(2);
contient4.add(label4);
contient4.add(champ4);
label5=new JLabel("Position du champ nombre de connections (1, 2 ou 3):");
champ5=new JTextField(2);
contient5.add(label5);
contient5.add(champ5);
label6=new JLabel("Position du champ date (1, 2 ou 3):");
champ6=new JTextField(2);
contient6.add(label6);
contient6.add(champ6);
//Création des boutons
valider=new JButton("Valider");
valider.setMnemonic('V');
contient7.add(valider);
valider.addActionListener(this);
annuler=new JButton("Annuler");
annuler.setMnemonic('A');
contient7.add(annuler);
annuler.addActionListener(this);
//mise à jour par défaul des champs
champ1.setText(""+fenetreAssociee.longueurURL);
champ2.setText(""+fenetreAssociee.longueurNB);
champ3.setText(""+fenetreAssociee.longueurDate);
champ4.setText(""+fenetreAssociee.positionURL);
champ5.setText(""+fenetreAssociee.positionNB);
champ6.setText(""+fenetreAssociee.positionDate);
//affichage de la fenetre
setVisible(true);
}
public void dispose()
{
fenetreAssociee.setEnabled(true);
super.dispose();
}
public void actionPerformed(ActionEvent ev)
{
Object provoque=ev.getSource(); //recuperation de l'objet qui à provoqué l'evennement
boolean passe=false;
if ( (provoque).equals(annuler) ) //appui sur annuler
{
dispose();
}
else if ( (provoque).equals(valider) ) //appui sur annuler
{
int val1, val2, val3, val4, val5, val6;
try
{
val1=(Integer.valueOf(champ1.getText())).intValue();
val2=(Integer.valueOf(champ2.getText())).intValue();
val3=(Integer.valueOf(champ3.getText())).intValue();
val4=(Integer.valueOf(champ4.getText())).intValue();
val5=(Integer.valueOf(champ5.getText())).intValue();
val6=(Integer.valueOf(champ6.getText())).intValue();
if ((val1<201)&&(val2<11)&&(val3<101)&&(val4<4)&&(val5<4)&&(val6<4))
{
if ((val4<1) || (val5<1) || (val6<1))
{
JOptionPane.showMessageDialog(this,"Erreur de taille des nombres, veuillez vérifier vos données","Erreur",JOptionPane.ERROR_MESSAGE);
}
else
{
if ( (val4==val5) || (val4==val6) || (val5==val6) )
{
JOptionPane.showMessageDialog(this,"Erreur dans la position des champs : deux champs ne peuvent être à la même position","Erreur",JOptionPane.ERROR_MESSAGE);
}
else
{
fenetreAssociee.longueurURL=val1;
fenetreAssociee.longueurNB=val2;
fenetreAssociee.longueurDate=val3;
fenetreAssociee.positionURL=val4;
fenetreAssociee.positionNB=val5;
fenetreAssociee.positionDate=val6;
passe=true;
}
}
}
else
{
JOptionPane.showMessageDialog(this,"Erreur de taille des nombres, veuillez vérifier vos données","Erreur",JOptionPane.ERROR_MESSAGE);
}
}
catch (Exception e)
{
JOptionPane.showMessageDialog(this,"Erreur de format des nombres, veuillez vérifier vos données","Erreur",JOptionPane.ERROR_MESSAGE);
}
if (passe==true)
{
fenetreAssociee.actualise();
dispose();
}
}
}
}
//**************************************************************************
class MenuSupprimer extends JFrame implements ActionListener
{
private ApplicationClient fenetreAssociee;
private JButton valider;
private JButton annuler;
private JRadioButton bouton1, bouton2, bouton3, bouton4, bouton5;
private JTextField champ1;//, champ2, champ3, champ4, champ5, champ6;
//private JLabel label1, label2, label3, label4, label5, label6;
public MenuSupprimer(ApplicationClient fenetreAssos)
{
fenetreAssociee=fenetreAssos;
fenetreAssociee.setEnabled(false);
setBounds(300,300,500,400);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setTitle("Supression");
Container conteneur=getContentPane();
Box boite=Box.createVerticalBox();
conteneur.add(boite);
ButtonGroup groupe1=new ButtonGroup();
ButtonGroup groupe2=new ButtonGroup();
bouton1=new JRadioButton("URL",false);
bouton2=new JRadioButton("Nombre de connections",false);
bouton3=new JRadioButton("Commençant par ",false);
bouton4=new JRadioButton("Contenant ",false);
bouton5=new JRadioButton("Valant ",false);
groupe1.add(bouton1);
groupe1.add(bouton2);
groupe2.add(bouton3);
groupe2.add(bouton4);
groupe2.add(bouton5);
JLabel label1=new JLabel("Motif de comparaison pour la suppression :");
JLabel label2=new JLabel("Suppression de type :");
JLabel label3=new JLabel("Valeur de comparaison :");
champ1=new JTextField(20);
Container contient1=new Container();
contient1.setLayout(new FlowLayout());
/* Container contient2=new Container();
contient2.setLayout(new FlowLayout());
Container contient3=new Container();
contient3.setLayout(new FlowLayout());
Container contient4=new Container();
contient4.setLayout(new FlowLayout());
Container contient5=new Container();
contient5.setLayout(new FlowLayout());
Container contient6=new Container();
contient6.setLayout(new FlowLayout());*/
Container contient7=new Container();
contient7.setLayout(new FlowLayout());
boite.add(label1);
boite.add(bouton1);
boite.add(bouton2);
boite.add(label2);
boite.add(bouton3);
boite.add(bouton4);
boite.add(bouton5);
contient1.add(label3);
contient1.add(champ1);
boite.add(contient1);
//Création des boutons
valider=new JButton("Valider");
valider.setMnemonic('V');
contient7.add(valider);
valider.addActionListener(this);
annuler=new JButton("Annuler");
annuler.setMnemonic('A');
contient7.add(annuler);
annuler.addActionListener(this);
boite.add(contient7);
//affichage de la fenetre
setVisible(true);
}
public void dispose()
{
fenetreAssociee.setEnabled(true);
super.dispose();
}
public void actionPerformed(ActionEvent ev)
{
Object provoque=ev.getSource(); //recuperation de l'objet qui à provoqué l'evennement
boolean passe=false;
if ( (provoque).equals(annuler) ) //appui sur annuler
{
dispose();
}
else if ( (provoque).equals(valider) ) //appui sur valider
{
String valeur1="";
String valeur2="";
String valeur3=champ1.getText();
if ( (bouton1.isSelected()) || (bouton2.isSelected()) )
{
if (bouton1.isSelected())
{
valeur1="url";
}
else
{
valeur1="nbconnection";
}
passe=true;
//System.out.println("coucou "+ valeur1);
}
else
{
JOptionPane.showMessageDialog(this,"Veuillez cocher un motif de comparaison","Information",JOptionPane.INFORMATION_MESSAGE);
passe=false;
}
if (passe)
{
if ( (bouton3.isSelected()) || (bouton4.isSelected()) || (bouton5.isSelected()) )
{
if (bouton3.isSelected()) valeur2="'%"+valeur3+"'";
else if (bouton4.isSelected()) valeur2="'%"+valeur3+"%'";
else valeur2="'"+valeur3+"'";
passe=true;
//System.out.println("coucou "+ valeur2);
}
else
{
JOptionPane.showMessageDialog(this,"Veuillez choisir un type de supression","Information",JOptionPane.INFORMATION_MESSAGE);
passe=false;
}
}
if (passe)
{
int dialogue=JOptionPane.showConfirmDialog(this,"Etes vous sur de vouloir effectuer cette suppression ?","Confirmation de la supression",JOptionPane.YES_NO_OPTION);
if (dialogue==0)
{
//System.out.println("Choix confirmé");
if (fenetreAssociee.base.supprimerEnregistrement(valeur1,valeur2))
{
JOptionPane.showMessageDialog(this,"La supression à bien été effectuée","Information",JOptionPane.INFORMATION_MESSAGE);
}
else
{
JOptionPane.showMessageDialog(this,"Erreur au cours de la supression","Erreur",JOptionPane.ERROR_MESSAGE);
}
fenetreAssociee.actualise();
dispose();
}
}
}
}
}
//*********************************************************************************************
//menu requete
class MenuRequete extends JFrame implements ActionListener
{
private ApplicationClient fenetreAssociee;
private JButton valider;
private JButton annuler;
private JRadioButton bouton1, bouton2, bouton3, bouton4, bouton5;
private JTextField champ1;//, champ2, champ3, champ4, champ5, champ6;
//private JLabel label1, label2, label3, label4, label5, label6;
public MenuRequete(ApplicationClient fenetreAssos)
{
fenetreAssociee=fenetreAssos;
fenetreAssociee.setEnabled(false);
setBounds(300,300,500,400);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setTitle("Construction de requete");
Container conteneur=getContentPane();
Box boite=Box.createVerticalBox();
conteneur.add(boite);
ButtonGroup groupe1=new ButtonGroup();
ButtonGroup groupe2=new ButtonGroup();
bouton1=new JRadioButton("URL",false);
bouton2=new JRadioButton("Nombre de connections",false);
bouton3=new JRadioButton("Commençant par ",false);
bouton4=new JRadioButton("Contenant ",false);
bouton5=new JRadioButton("Valant ",false);
groupe1.add(bouton1);
groupe1.add(bouton2);
groupe2.add(bouton3);
groupe2.add(bouton4);
groupe2.add(bouton5);
JLabel label1=new JLabel("Motif de comparaison pour la requete :");
JLabel label2=new JLabel("Requete de type :");
JLabel label3=new JLabel("Valeur de comparaison :");
champ1=new JTextField(20);
Container contient1=new Container();
contient1.setLayout(new FlowLayout());
Container contient7=new Container();
contient7.setLayout(new FlowLayout());
boite.add(label1);
boite.add(bouton1);
boite.add(bouton2);
boite.add(label2);
boite.add(bouton3);
boite.add(bouton4);
boite.add(bouton5);
contient1.add(label3);
contient1.add(champ1);
boite.add(contient1);
//Création des boutons
valider=new JButton("Valider");
valider.setMnemonic('V');
contient7.add(valider);
valider.addActionListener(this);
annuler=new JButton("Annuler");
annuler.setMnemonic('A');
contient7.add(annuler);
annuler.addActionListener(this);
boite.add(contient7);
//affichage de la fenetre
setVisible(true);
}
public void dispose()
{
fenetreAssociee.setEnabled(true);
super.dispose();
}
public void actionPerformed(ActionEvent ev)
{
Object provoque=ev.getSource(); //recuperation de l'objet qui à provoqué l'evennement
boolean passe=false;
if ( (provoque).equals(annuler) ) //appui sur annuler
{
dispose();
}
else if ( (provoque).equals(valider) ) //appui sur valider
{
String valeur1="";
String valeur2="";
String valeur3=champ1.getText();
if ( (bouton1.isSelected()) || (bouton2.isSelected()) )
{
if (bouton1.isSelected())
{
valeur1="url";
}
else
{
valeur1="nbconnection";
}
passe=true;
//System.out.println("coucou "+ valeur1);
}
else
{
JOptionPane.showMessageDialog(this,"Veuillez cocher un motif de comparaison","Information",JOptionPane.INFORMATION_MESSAGE);
passe=false;
}
if (passe)
{
if ( (bouton3.isSelected()) || (bouton4.isSelected()) || (bouton5.isSelected()) )
{
if (bouton3.isSelected()) valeur2="'%"+valeur3+"'";
else if (bouton4.isSelected()) valeur2="'%"+valeur3+"%'";
else valeur2="'"+valeur3+"'";
passe=true;
//System.out.println("coucou "+ valeur2);
}
else
{
JOptionPane.showMessageDialog(this,"Veuillez choisir un type de requete","Information",JOptionPane.INFORMATION_MESSAGE);
passe=false;
}
}
if (passe)
{
fenetreAssociee.argumentOptionel=" WHERE "+valeur1+" LIKE "+valeur2;
fenetreAssociee.actualise();
if (bouton5.isSelected()||(!valeur3.equals("")))
{
fenetreAssociee.recharger.setEnabled(true);
fenetreAssociee.barre.arobase.setEnabled(true);
}
dispose();
}
}
}
}
//*********************************************************************************************
//Barre d'outils
class BarreOutilsComptage extends JToolBar implements ActionListener
{
private JButton go;
public JButton arobase;
private JComboBox liste;
private ApplicationClient fenetreAssociee;
private JTextField champTexte;
private JLabel reponse;
public BarreOutilsComptage(ApplicationClient fenetreAssos)
{
fenetreAssociee=fenetreAssos;
setVisible(true);
setFloatable(true);
//creation du label de réponse
reponse=new JLabel("<"+fenetreAssociee.base.sommeConnections(fenetreAssociee.argumentOptionel)+">");
add(reponse);
//création de la liste
String listeOptions[]={"commençant par","valant","contenant"};
liste=new JComboBox(listeOptions);
liste.setSelectedIndex(0);
add(liste);
//création du champ où on entre l'URL
champTexte=new JTextField(20);
add(champTexte);
//création du bouton go;
go=new JButton("Go");
add(go);
go.addActionListener(this);
go.setToolTipText("Execution de la requete");
//creation du bouton recharger (initialement arobase)
ImageIcon icone=new ImageIcon("recharger.jpg");
arobase=new JButton(icone);
add(arobase);
arobase.addActionListener(this);
arobase.setToolTipText("Recharger tout");
arobase.setEnabled(false);
}
public void actionPerformed(ActionEvent ev)
{
Object provoque=ev.getSource(); //recuperation de l'objet qui à provoqué l'evennement
if (provoque.equals(go))
{
String requete="";
if (liste.getSelectedIndex()==0)
{
requete=champTexte.getText()+"%";
}
else if (liste.getSelectedIndex()==1)
{
requete=champTexte.getText();
}
else if (liste.getSelectedIndex()==2)
{
requete="%"+champTexte.getText()+"%";
}
fenetreAssociee.argumentOptionel=" WHERE url LIKE '"+requete+"'";
reponse.setText("<"+fenetreAssociee.base.sommeConnections(fenetreAssociee.argumentOptionel)+">");
fenetreAssociee.actualise();
if (!champTexte.getText().equals("") && liste.getSelectedIndex()!=1)
{
fenetreAssociee.recharger.setEnabled(true);
arobase.setEnabled(true);
}
else
{
fenetreAssociee.recharger.setEnabled(true);
arobase.setEnabled(true);
}
}
else if (provoque.equals(arobase))
{
initialise();
fenetreAssociee.recharger.setEnabled(false);
arobase.setEnabled(false);
fenetreAssociee.argumentOptionel="";
fenetreAssociee.actualise();
}
}
public void initialise()
{
reponse.setText("<"+fenetreAssociee.base.sommeConnections(fenetreAssociee.argumentOptionel)+">");
champTexte.setText("");
}
public void miseAJourCompteur()
{
reponse.setText("<"+fenetreAssociee.base.sommeConnections(fenetreAssociee.argumentOptionel)+">");
}
}