2022-06-19 21:01:30 +02:00
|
|
|
package fenetres;
|
2022-05-23 21:01:17 +02:00
|
|
|
|
|
|
|
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;
|
2022-05-23 21:01:17 +02:00
|
|
|
import cXML.node;
|
|
|
|
|
2022-05-25 09:30:49 +02:00
|
|
|
public class filechooserXML extends JFileChooser {
|
2022-05-23 21:01:17 +02:00
|
|
|
|
2022-05-25 09:30:49 +02:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
private static final long serialVersionUID = 1L;
|
2022-05-23 21:01:17 +02:00
|
|
|
|
|
|
|
|
2022-05-24 18:25:41 +02:00
|
|
|
public filechooserXML() {
|
|
|
|
setDialogTitle("Choisir un fichier d'analyse");
|
2022-05-23 21:01:17 +02:00
|
|
|
|
2022-05-24 18:25:41 +02:00
|
|
|
FileNameExtensionFilter filter = new FileNameExtensionFilter("Fichier d'analyse .XML", "xml");
|
2022-05-23 21:01:17 +02:00
|
|
|
setFileFilter(filter);
|
|
|
|
|
2022-05-27 11:40:08 +02:00
|
|
|
if(!commandes.PathFilenameAnalysis.isEmpty()) {
|
|
|
|
File file = new File(commandes.PathFilenameAnalysis ); //+ "\\" + utils.filename + ".xml"
|
2022-05-23 21:01:17 +02:00
|
|
|
setCurrentDirectory(file);
|
|
|
|
}
|
2022-05-27 11:40:08 +02:00
|
|
|
|
2022-05-23 21:01:17 +02:00
|
|
|
|
|
|
|
setPreferredSize(new Dimension(550, 420));
|
|
|
|
|
|
|
|
int response = showOpenDialog(null);
|
|
|
|
if(response == JFileChooser.APPROVE_OPTION) {
|
2022-12-06 13:45:12 +01:00
|
|
|
|
2022-05-23 21:01:17 +02:00
|
|
|
|
|
|
|
File file = new File(getSelectedFile().getAbsolutePath());
|
|
|
|
System.out.println(file.getPath() + "\n" + file.getName());
|
|
|
|
String ext = file.getName().substring(file.getName().lastIndexOf("."));
|
|
|
|
|
2022-05-28 19:13:25 +02:00
|
|
|
if(ext.equals(".xml")){
|
2022-11-13 11:57:18 +01:00
|
|
|
System.out.println( "Open file .xml" );
|
2022-05-23 21:01:17 +02:00
|
|
|
openFileXML(file);
|
2022-05-28 19:13:25 +02:00
|
|
|
}
|
2022-05-23 21:01:17 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-05-28 19:13:25 +02:00
|
|
|
|
2022-05-23 21:01:17 +02:00
|
|
|
|
2022-12-06 13:45:12 +01:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @param file
|
|
|
|
*/
|
2022-05-23 21:01:17 +02:00
|
|
|
private void openFileXML(File file) {
|
2022-12-06 13:45:12 +01:00
|
|
|
|
2022-07-10 11:42:47 +02:00
|
|
|
commandes.fichierAnalyseValide=true;
|
2022-12-06 13:45:12 +01:00
|
|
|
|
2022-11-24 21:49:39 +01:00
|
|
|
|
|
|
|
if(commandes.os.contains("Win")) {
|
2022-11-24 20:02:48 +01:00
|
|
|
commandes.path = file.getPath().substring(0,file.getPath().lastIndexOf("\\")); // Sur Windows
|
2022-11-25 08:26:06 +01:00
|
|
|
}else {
|
|
|
|
commandes.path = file.getPath().substring(0,file.getPath().lastIndexOf("/")); // Sur mac & Linux
|
2022-11-24 19:11:07 +01:00
|
|
|
}
|
|
|
|
|
2022-12-06 13:45:12 +01:00
|
|
|
|
|
|
|
|
|
|
|
String PathFilenameAnalysis = getCurrentDirectory().getPath();
|
|
|
|
String nameSujet = file.getName().toString();
|
2022-05-23 21:01:17 +02:00
|
|
|
|
|
|
|
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();
|
2022-05-23 21:01:17 +02:00
|
|
|
while ((line = br.readLine()) != null) {
|
2022-05-24 18:25:41 +02:00
|
|
|
targetString.append(line);
|
2022-05-23 21:01:17 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
//node.node2(targetString);
|
2022-12-06 13:45:12 +01:00
|
|
|
node sujetLoad = new node(targetString.toString().replace("\t","").replace("\r", "").replace("\n", ""));
|
|
|
|
|
|
|
|
sujetLoad.supprimeTousLesNodesEnfantWithThisName("text:change-start"); //historique des modification
|
|
|
|
sujetLoad.supprimeTousLesNodesEnfantWithThisName("text:change-end");
|
|
|
|
sujetLoad.supprimeTousLesNodesEnfantWithThisName("text:tracked-changes");
|
|
|
|
sujetLoad.supprimeTousLesNodesEnfantWithThisName("text:change");
|
|
|
|
|
2022-06-09 09:13:46 +02:00
|
|
|
|
2022-05-24 18:25:41 +02:00
|
|
|
// Vérification de la conformité du fichier d'analyse
|
2022-12-06 13:45:12 +01:00
|
|
|
if(!fichierSujetValide(sujetLoad)) {
|
|
|
|
JOptionPane.showMessageDialog(null, "Le fichier d'analyse n'est pas valide.");
|
|
|
|
}else {
|
|
|
|
commandes.initialiseParametresSettingProprietes();
|
|
|
|
commandes.sujet = sujetLoad;
|
|
|
|
commandes.sujetSauvegarde = commandes.sujet.clone();
|
|
|
|
commandes.PathFilenameAnalysis = PathFilenameAnalysis;
|
|
|
|
commandes.nameSujet = nameSujet;
|
|
|
|
//Chargement des paramètres du fichier d'analyse
|
|
|
|
System.out.println( "Chargement des paramètres du fichier d'analyse");
|
|
|
|
meptl.chargementParametresFichierAnalyse();
|
|
|
|
|
|
|
|
// Rechercher des erreurs dans le fichier d'analyse
|
|
|
|
System.out.println( "Vérification du fichier d'analyse" );
|
|
|
|
new verificationFichierAnalyse();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
2022-05-23 21:01:17 +02:00
|
|
|
|
2022-12-06 13:45:12 +01:00
|
|
|
|
2022-06-02 15:47:54 +02:00
|
|
|
|
2022-05-23 21:01:17 +02:00
|
|
|
|
|
|
|
} catch (UnsupportedEncodingException e1) {
|
|
|
|
e1.printStackTrace();
|
|
|
|
} catch (FileNotFoundException e1) {
|
|
|
|
e1.printStackTrace();
|
|
|
|
} catch (Exception e) {
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2022-05-24 18:25:41 +02:00
|
|
|
/**
|
2022-12-06 13:45:12 +01:00
|
|
|
* Verification rapide du fichier.</br>
|
|
|
|
* Vérifie la présence du node fichier (le premier node).</br>
|
2022-05-24 18:25:41 +02:00
|
|
|
* @return
|
|
|
|
*/
|
2022-12-06 13:45:12 +01:00
|
|
|
public static boolean fichierSujetValide (node SujetLoad) {
|
|
|
|
if(SujetLoad==null) {System.out.println("Le fichier est null."); return false;}
|
|
|
|
if(!SujetLoad.getNomElt().equals("fichier")) {System.out.println("Pas de node fichier."); return false;}
|
2022-05-28 19:13:25 +02:00
|
|
|
commandes.fichierAnalyseValide=false;
|
2022-05-23 21:01:17 +02:00
|
|
|
return true;
|
|
|
|
}
|
2022-05-25 09:30:49 +02:00
|
|
|
|
2022-05-23 21:01:17 +02:00
|
|
|
}
|