package app; import java.awt.Dimension; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.filechooser.FileNameExtensionFilter; import MEPTL.commandes; import MEPTL.meptl; import MEPTL.verificationFichierAnalyse; import cXML.node; public class filechooserXML extends JFileChooser { /** * */ private static final long serialVersionUID = 1L; public filechooserXML() { setDialogTitle("Choisir un fichier d'analyse"); FileNameExtensionFilter filter = new FileNameExtensionFilter("Fichier d'analyse .XML", "xml"); setFileFilter(filter); if(!commandes.PathFilenameAnalysis.isEmpty()) { File file = new File(commandes.PathFilenameAnalysis ); //+ "\\" + utils.filename + ".xml" setCurrentDirectory(file); } setPreferredSize(new Dimension(550, 420)); int response = showOpenDialog(null); if(response == JFileChooser.APPROVE_OPTION) { commandes.message = new StringBuilder(); File file = new File(getSelectedFile().getAbsolutePath()); System.out.println(file.getPath() + "\n" + file.getName()); String ext = file.getName().substring(file.getName().lastIndexOf(".")); if(ext.equals(".xml")){ openFileXML(file); } } } private void openFileXML(File file) { commandes.path = file.getPath().substring(0,file.getPath().lastIndexOf("\\")); commandes.PathFilenameAnalysis = getCurrentDirectory().getPath(); commandes.nameSujet = file.getName().toString(); BufferedReader br; try { br = new BufferedReader( new InputStreamReader( new FileInputStream(file.getAbsoluteFile()), "UTF-8")); String line; StringBuilder targetString = new StringBuilder(); while ((line = br.readLine()) != null) { targetString.append(line); } //node.node2(targetString); commandes.sujet = new node(targetString.toString().replace("\t","").replace("\r", "").replace("\n", "")); commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:change-start"); //historique des modification commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:change-end"); commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:tracked-changes"); commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:change"); commandes.sujetSauvegarde = commandes.sujet.clone(); // Vérification de la conformité du fichier d'analyse if(!fichierSujetValide()) JOptionPane.showMessageDialog(null, "Le fichier d'analyse n'est pas valide."); //Chargement des paramètres du fichier d'analyse meptl.chargementParametresFichierAnalyse(); // Rechercher des erreurs dans le fichier d'analyse new verificationFichierAnalyse(); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (Exception e) { } } /** * Verification rapide du fichier. * @return */ public static boolean fichierSujetValide () { if(commandes.sujet==null) {System.out.println("Le fichier est null."); return false;} if(!commandes.sujet.getNomElt().equals("fichier")) {System.out.println("Pas de node fichier."); return false;} commandes.fichierAnalyseValide=false; return true; } }