analyseWriter/src/app/filechooserXML.java

122 lines
3.6 KiB
Java
Raw Normal View History

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;
2022-05-24 18:25:41 +02:00
import MEPTL.meptl;
import MEPTL.verificationFichierAnalyse;
import cXML.node;
2022-05-25 09:30:49 +02:00
public class filechooserXML extends JFileChooser {
2022-05-25 09:30:49 +02:00
/**
*
*/
private static final long serialVersionUID = 1L;
2022-05-24 18:25:41 +02:00
public filechooserXML() {
setDialogTitle("Choisir un fichier d'analyse");
2022-05-24 18:25:41 +02:00
FileNameExtensionFilter filter = new FileNameExtensionFilter("Fichier d'analyse .XML", "xml");
setFileFilter(filter);
2022-05-27 11:40:08 +02:00
if(!commandes.PathFilenameAnalysis.isEmpty()) {
File file = new File(commandes.PathFilenameAnalysis ); //+ "\\" + utils.filename + ".xml"
setCurrentDirectory(file);
}
2022-05-27 11:40:08 +02:00
setPreferredSize(new Dimension(550, 420));
int response = showOpenDialog(null);
if(response == JFileChooser.APPROVE_OPTION) {
2022-06-02 15:47:54 +02:00
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();
2022-05-26 20:10:24 +02:00
commandes.nameSujet = file.getName().toString();
BufferedReader br;
try {
br = new BufferedReader(
new InputStreamReader(
new FileInputStream(file.getAbsoluteFile()), "UTF-8"));
String line;
2022-05-24 18:25:41 +02:00
StringBuilder targetString = new StringBuilder();
while ((line = br.readLine()) != null) {
2022-05-24 18:25:41 +02:00
targetString.append(line);
}
//node.node2(targetString);
2022-05-24 18:25:41 +02:00
commandes.sujet = new node(targetString.toString().replace("\t","").replace("\r", "").replace("\n", ""));
2022-06-06 18:59:42 +02:00
commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:change-start"); //historique des modification
commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:change-end");
commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:tracked-changes");
2022-06-06 18:59:42 +02:00
2022-06-09 09:13:46 +02:00
commandes.sujetSauvegarde = commandes.sujet.clone();
2022-05-24 18:25:41 +02:00
// Vérification de la conformité du fichier d'analyse
if(!fichierSujetValide()) JOptionPane.showMessageDialog(null, "Le fichier d'analyse n'est pas valide.");
2022-05-24 18:25:41 +02:00
//Chargement des paramètres du fichier d'analyse
meptl.chargementParametresFichierAnalyse();
2022-05-24 18:25:41 +02:00
// Rechercher des erreurs dans le fichier d'analyse
new verificationFichierAnalyse();
2022-06-02 15:47:54 +02:00
2022-05-24 18:25:41 +02:00
// Affiche les erreurs dans une message box
//if(!commandes.fichierAnalyseValide) JOptionPane.showMessageDialog(null, verificationFichierAnalyse.messageErreur.toString());
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (Exception e) {
}
}
2022-05-24 18:25:41 +02:00
/**
* Verification rapide du fichier.
* @return
*/
public static boolean fichierSujetValide () {
2022-05-24 18:25:41 +02:00
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;
}
2022-05-25 09:30:49 +02:00
}