1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
txtlocalPath.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent e) {
/*btntradsimple.setEnabled(false);
btntradcomplique.setEnabled(false);
/*Utilisation d'un parser DOM ou SAX sans DTD ou xml schema pour la validation,
* s'il ya une erreur de parsing alors le fichier XML n'est pas bien formé càd NON XML.
*/
DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
DocumentBuilder constructeur;
try {
if(txtlocalPath.getText().length()==0){
JOptionPane jop1 = new JOptionPane();
jop1.showMessageDialog(null, "Veuillez saisir un fichier de sortie d'extension .xml ", "Information", JOptionPane.INFORMATION_MESSAGE);
txtlocalPath.requestFocus();
}
else{
constructeur = fabrique.newDocumentBuilder();
// lecture du contenu d'un fichier XML avec DOM
File xml = new File(decoupeURL());
Document document;
document = constructeur.parse(xml);
/*on se place sur la racine, on vérifie alors :
* - soit que le fichier d'entrée est un document ebXML
* -soit que le fichier d'entrée est un document XML simple
* - soit ni l'un ni l'autre, alors erreur...
*/
Node racine = document.getDocumentElement();
String nomRacine = racine.getNodeName();
if(nomRacine=="Dematerialisation_prix" && (getFileExtension(txtSortie.getText())).compareTo("xml")==0){
btntradcomplique.setEnabled(true);
btntradsimple.setEnabled(false);
}
else if(nomRacine=="itt:InvitationToTenderDetails" && (getFileExtension(txtSortie.getText())).compareTo("xml")==0){
btntradcomplique.setEnabled(false);
btntradsimple.setEnabled(true);
}
else if (txtSortie.getText().length()==0 || (getFileExtension(txtSortie.getText())).compareTo("xml")!=0){
JOptionPane jop1 = new JOptionPane();
jop1.showMessageDialog(null, "Veuillez saisir un fichier de sortie d'extension .xml ", "Information", JOptionPane.INFORMATION_MESSAGE);
}
}
}
catch (ParserConfigurationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
catch (SAXException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
JOptionPane error = new JOptionPane();
error.showMessageDialog(null, "Le fichier n'est ni un ebXML, ni un XML simple. Veuillez saisir un fichier.xml", "Erreur", JOptionPane.ERROR_MESSAGE);
}
}
}); |
Partager