MAJ V4.5.0

This commit is contained in:
pablo rodriguez 2024-06-23 22:30:44 +02:00
parent 9af2818859
commit f93042bf4f
14 changed files with 117 additions and 32 deletions

View File

@ -8,6 +8,6 @@
</classpathentry> </classpathentry>
<classpathentry kind="lib" path="C:/Users/pabr6/git/analyseWriter/MEPTL/libs/miglayout15-swing.jar"/> <classpathentry kind="lib" path="C:/Users/pabr6/git/analyseWriter/MEPTL/libs/miglayout15-swing.jar"/>
<classpathentry kind="lib" path="C:/Users/pabr6/git/analyseWriter/MEPTL/libs/zip4j-1.2.7.jar"/> <classpathentry kind="lib" path="C:/Users/pabr6/git/analyseWriter/MEPTL/libs/zip4j-1.2.7.jar"/>
<classpathentry kind="lib" path="C:/Users/pabr6/git/analyseWriter/MEPTL/libs/cXML.jar"/> <classpathentry kind="lib" path="C:/Users/pabr6/git/analyseWriter/MEPTL/libs/cXML.jar" sourcepath="/cXML"/>
<classpathentry kind="output" path="bin"/> <classpathentry kind="output" path="bin"/>
</classpath> </classpath>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -20,6 +20,7 @@ import javax.swing.JOptionPane;
import analyseWriter.baseListesEtudiants.ecritureBaseListesEtudiants; import analyseWriter.baseListesEtudiants.ecritureBaseListesEtudiants;
import analyseWriter.calcul.formatDateWriter; import analyseWriter.calcul.formatDateWriter;
import analyseWriter.calcul.fusionStyleTextSpan;
import analyseWriter.evaluer.evaluation; import analyseWriter.evaluer.evaluation;
import cXML.Run; import cXML.Run;
import cXML.Run.UserStatus; import cXML.Run.UserStatus;
@ -621,7 +622,6 @@ public class meptl {
} }
// construction du node de l'étudiant // construction du node de l'étudiant
node structurePage = new node(); node structurePage = new node();
structurePage.setNomElt("structurepage"); structurePage.setNomElt("structurepage");
@ -630,8 +630,6 @@ public class meptl {
structurePage.setClose(true); structurePage.setClose(true);
node fichier = new node(); node fichier = new node();
fichier.setNomElt("fichier"); fichier.setNomElt("fichier");
@ -664,16 +662,10 @@ public class meptl {
fichier.getNodes().add(nodframe); fichier.getNodes().add(nodframe);
fichier.getNodes().add(nodsection); fichier.getNodes().add(nodsection);
// nodtableaux = a.numeroteNameNode(nodtableaux, "0");
fichier.getNodes().add(nodtableaux); fichier.getNodes().add(nodtableaux);
// nodbiblio = a.numeroteNameNode(nodbiblio, "0"); //ajoute les numéros d'index et des attributs
fichier.getNodes().add(nodbiblio); fichier.getNodes().add(nodbiblio);
//nodtable = a.numeroteNameNode(nodtable, "0"); //ajoute les numéros d'index et des attributs
fichier.getNodes().add(nodtable); fichier.getNodes().add(nodtable);
// nodillustrations = a.numeroteNameNode(nodillustrations, "0"); //ajoute les numéros d'index et des attributs
fichier.getNodes().add(nodillustrations); fichier.getNodes().add(nodillustrations);
structurePage = a.numeroteNameNode(structurePage,""); //ajoute les numéros d'index et des attributs
fichier.getNodes().add(structurePage); fichier.getNodes().add(structurePage);
fichier.getNodes().add(nodhistorique); fichier.getNodes().add(nodhistorique);
@ -681,6 +673,16 @@ public class meptl {
fichier = attributLesParentsAuxNodes(fichier); fichier = attributLesParentsAuxNodes(fichier);
fichier.setParent(null); fichier.setParent(null);
// Fusion les text:span ayant le même style et étant mitoyen
ArrayList<node> textSpans = structurePage.retourneEnfantsByName("text:span", new ArrayList<node>());
for(int j =0 ; j < textSpans.size() ; j++) {
boolean nodRemove = fusionStyleTextSpan.isStyleIsEqualsToTheNextTextSpan(textSpans.get(j));
if(nodRemove) j--;
}
structurePage = a.numeroteNameNode(structurePage,""); //ajoute les numéros d'index et des attributs
return fichier; return fichier;
} }

View File

@ -50,7 +50,7 @@ public class actDeleteNode extends AbstractAction{
if(!(nod.getNomElt().equals("setting")||nod.getNomElt().equals("csv")||nod.getNomElt().equals("import_moodle")||nod.getNomElt().equals("zip") if(!(nod.getNomElt().equals("setting")||nod.getNomElt().equals("csv")||nod.getNomElt().equals("import_moodle")||nod.getNomElt().equals("zip")
||nod.getNomElt().equals("plagiarism")||nod.getNomElt().equals("text:similarity")||nod.getNomElt().equals("color") ||nod.getNomElt().equals("translation") )) { ||nod.getNomElt().equals("plagiarism")||nod.getNomElt().equals("text:similarity")||nod.getNomElt().equals("color") ||nod.getNomElt().equals("translation") )) {
nod.getParent().supprimeNodeEnfant(nod); nod.getParent().supprimeFirstNodeEnfant(nod);
TreePath path = analyseWriter.fenetres.create.getTree().getSelectionPath().getParentPath(); TreePath path = analyseWriter.fenetres.create.getTree().getSelectionPath().getParentPath();
DefaultMutableTreeNode nodMu = analyseWriter.fenetres.create.getSelectNode(); DefaultMutableTreeNode nodMu = analyseWriter.fenetres.create.getSelectNode();

View File

@ -3,6 +3,8 @@ package analyseWriter.baseEvaluations;
import java.text.ParseException; import java.text.ParseException;
import java.util.Date; import java.util.Date;
import javax.swing.JOptionPane;
import analyseWriter.MEPTL.commandes; import analyseWriter.MEPTL.commandes;
import cXML.node; import cXML.node;
@ -40,6 +42,11 @@ public class creerNouvelleEvaluation {
private node nouvelleEvaluation(node evaluation, String nameEvaluation) { private node nouvelleEvaluation(node evaluation, String nameEvaluation) {
if(nameEvaluation==null) {
JOptionPane.showMessageDialog(null, "L'évaluation ne possède pas de nom");
return evaluation;
}
// création du nouveau node evaluation // création du nouveau node evaluation
evaluation.setNomElt("evaluation"); evaluation.setNomElt("evaluation");

View File

@ -0,0 +1,48 @@
package analyseWriter.calcul;
import cXML.node;
public class fusionStyleTextSpan {
public static boolean isStyleIsEqualsToTheNextTextSpan(node nod) {
if(nod==null) return false;
if(!nod.getNomElt().equals("text:span")) return false;
node nodeNext = nod.retourneLeNodeFrereApres();
if(nodeNext==null) return false;
if(!nodeNext.getNomElt().equals("text:span")) return false;
String nodNameStyle = nod.getAttributs().get("text:style-name");
String nodeNextNameStyle = nodeNext.getAttributs().get("text:style-name");
node racineStyles = nod.racineDuNode().retourneFirstEnfantsByName("style:paragraph");
node nodStyle = racineStyles.racineDuNode().retourneFirstNodeByNameAndAttributValueExactStrict("style:style", "style:name", nodNameStyle);
node nodeNextStyle = racineStyles.racineDuNode().retourneFirstNodeByNameAndAttributValueExactStrict("style:style", "style:name", nodeNextNameStyle);
node nodStyle_text_properties = nodStyle.retourneFirstEnfantsByName("style:text-properties");
node nodeNextStyle_text_properties = nodeNextStyle.retourneFirstEnfantsByName("style:text-properties");
nodStyle_text_properties.getAttributs().remove("officeooo:rsid");
nodeNextStyle_text_properties.getAttributs().remove("officeooo:rsid");
int H1 = nodStyle_text_properties.hashCode();
int H2 = nodeNextStyle_text_properties.hashCode();
if(H1==H2) {
for (String text : nodeNext.getContenu()) {
String current = nod.getContenu().get(nod.getContenu().size()-1);
nod.getContenu().set(nod.getContenu().size()-1, current + text);
nod.getParent().supprimeFirstNodeEnfant(nodeNext);
}
return true;
}
return false;
}
}

View File

@ -126,9 +126,9 @@ public class analyseLesNodesEnfants {
node StyleParagraphSujet = null; node StyleParagraphSujet = null;
node StyleParagraphStudent = null; node StyleParagraphStudent = null;
if(nodSujet.getAttributs().get("analyseStyle")!=null) { if(nodSujet.getAttributs().get("analyseStyle")!=null) {
if(nodSujet.getAttributs().get("analyseStyle").equals("true") && nodSujet.getAttributs().get("text:style-name")!=null) { if(nodSujet.getAttributs().get("analyseStyle").equals("true") && nodSujet.getAttributs().get("text:style-name")!=null) {
String NameStyleParagrapheSujet = nodSujet.getAttributs().get("text:style-name"); String NameStyleParagrapheSujet = nodSujet.getAttributs().get("text:style-name");
StyleParagraphSujet = nodSujetParagraphs.retourneFirstNodeStyleByValueAttribut("style:style", "style:name", NameStyleParagrapheSujet); StyleParagraphSujet = nodSujetParagraphs.retourneFirstNodeStyleByValueAttribut("style:style", "style:name", NameStyleParagrapheSujet);

View File

@ -89,7 +89,6 @@ public class evaluationAttribut {
*/ */
private static node evalLesNodesEnfantsDesAnalyseAuTraversAnalyseStyle(node nodeStyleParagraphSujet, node nodeStyleParagraphStudent, node retour, String nameItem, String nameElt) { private static node evalLesNodesEnfantsDesAnalyseAuTraversAnalyseStyle(node nodeStyleParagraphSujet, node nodeStyleParagraphStudent, node retour, String nameItem, String nameElt) {
for(int i = 0 ; i < nodeStyleParagraphSujet.getNodes().size();i++) { for(int i = 0 ; i < nodeStyleParagraphSujet.getNodes().size();i++) {
String nameNodeSujet = nodeStyleParagraphSujet.getNodes().get(i).getNomElt(); String nameNodeSujet = nodeStyleParagraphSujet.getNodes().get(i).getNomElt();
@ -458,10 +457,11 @@ public class evaluationAttribut {
//**************************************************************************** //****************************************************************************
//**************************************************************************** //****************************************************************************
//** LES METHODES LORSQU'ELLES SONT LONGUES ** //** LES METHODES D'EVALUATIONS **
//**************************************************************************** //****************************************************************************
//**************************************************************************** //****************************************************************************
/** /**
* Méthode allContent.</br> * Méthode allContent.</br>
* Evaluer le contenu textuel d'un node.</br> * Evaluer le contenu textuel d'un node.</br>

View File

@ -10,10 +10,13 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.nio.file.Files;
import javax.swing.ImageIcon; import javax.swing.ImageIcon;
import javax.swing.JDialog; import javax.swing.JDialog;
import javax.swing.JFileChooser; import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.filechooser.FileNameExtensionFilter;
@ -55,11 +58,37 @@ public class ChargeFichierXML extends JFileChooser {
File file = new File(getSelectedFile().getAbsolutePath()); File file = new File(getSelectedFile().getAbsolutePath());
String ext = file.getName().substring(file.getName().lastIndexOf(".")); if(Files.isReadable(file.toPath())) {
String ext = "";
if(file.getName().contains(".")) {
ext = file.getName().substring(file.getName().lastIndexOf("."));
if(ext.equals(".xml")){ if(ext.equals(".xml")){
openFileXML(file); openFileXML(file);
}else {
JFrame frame = new JFrame();
JLabel texte = new JLabel("<html><h1>Veuillez sélectionner un fichier au format XML.</h1>"
+ "<p>"+ file.getAbsolutePath() +"</p></html>");
JOptionPane.showMessageDialog(frame, texte);
} }
}else {
JFrame frame = new JFrame();
JLabel texte = new JLabel("<html><h1>Veuillez sélectionner un fichier.</h1>"
+ "<p>"+ file.getAbsolutePath() +"</p></html>");
JOptionPane.showMessageDialog(frame, texte);
}
}else {
JFrame frame = new JFrame();
JLabel texte = new JLabel("<html><h1>Problème avec la lecture du fichier</h1>"
+ "<p>"+ file.getAbsolutePath() +"</p>"
+ "<p>Vous devez avoir des droits pour lire dans ce dossier.</p></html>");
JOptionPane.showMessageDialog(frame, texte);
}
} }
} }

View File

@ -57,7 +57,7 @@ public class baseDonneesEvaluations extends JFrame { /**
private JPanel panelGauche = new JPanel(); private JPanel panelGauche = new JPanel();
private JLabel lblInformationBaseEvluation = new JLabel(""); private JLabel lblInformationBaseEvluation = new JLabel("");
private JButton btnSupprimeEvaluation = new JButton("<html>Supprimer une<br>évaluation</html>"); private JButton btnSupprimeEvaluation = new JButton("<html>Supprimer une<br>évaluation</html>");
private JButton btnSaveEvaluation = new JButton("<html>Enregistrer l'évaluation<br>chargée en mémoire.</html>"); private JButton btnSaveEvaluation = new JButton("<html>Enregistrer ou renommer<br>l'évaluation chargée en mémoire.</html>");
private JButton btnRenommeFichierAnalyse = new JButton("<html>Renommer le fichier d'analyse<br>de l'évaluation sélectionnée</html>"); private JButton btnRenommeFichierAnalyse = new JButton("<html>Renommer le fichier d'analyse<br>de l'évaluation sélectionnée</html>");
private JButton btnRenommerEvaluation = new JButton("<html>Renommer l'évaluation<br>sélectionnée</html>"); private JButton btnRenommerEvaluation = new JButton("<html>Renommer l'évaluation<br>sélectionnée</html>");
private JButton btndefautBaseEvaluation = new JButton("<html>Base par défaut</html>"); private JButton btndefautBaseEvaluation = new JButton("<html>Base par défaut</html>");
@ -186,7 +186,7 @@ public baseDonneesEvaluations() {
panelGauche.add(btnSaveEvaluation, "flowy,cell 0 5,growx,aligny top"); panelGauche.add(btnSaveEvaluation, "flowy,cell 0 5,growx,aligny top");
btnSaveEvaluation.setForeground(new Color(0, 64, 128)); btnSaveEvaluation.setForeground(new Color(0, 64, 128));
btnSaveEvaluation.setFont(new Font("Tahoma", Font.BOLD, 15)); btnSaveEvaluation.setFont(new Font("Tahoma", Font.BOLD, 14));
btnRenommerEvaluation.setToolTipText("Renommer l'évaluation sélectionnée."); btnRenommerEvaluation.setToolTipText("Renommer l'évaluation sélectionnée.");
btnRenommerEvaluation.setHorizontalAlignment(SwingConstants.LEFT); btnRenommerEvaluation.setHorizontalAlignment(SwingConstants.LEFT);
btnRenommerEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/renommeEvaluaton.png"))); btnRenommerEvaluation.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/renommeEvaluaton.png")));

View File

@ -1,11 +1,16 @@
package analyseWriter.list; package analyseWriter.list;
import analyseWriter.fenetres.afficheText;
public class descriptionNode { public class descriptionNode {
public static String description(String nameNode) { public static String description(String nameNode) {
String descriptionNode = ""; String descriptionNode = "";
String imagereanalyseStyle = "<img src="+afficheText.class.getResource("/resources/evaluerstylemini.png").toString()+">";
if(listeNodeAnalyseWriter.isNodeAnalyseWriter(nameNode)) { if(listeNodeAnalyseWriter.isNodeAnalyseWriter(nameNode)) {
descriptionNode="<p style=\"color:red;\"><b>C'est un node de l'application d'analyseWriter.</b></p>"; descriptionNode="<p style=\"color:red;\"><b>C'est un node de l'application d'analyseWriter.</b></p>";
} }
@ -151,7 +156,7 @@ public class descriptionNode {
return descriptionNode; return descriptionNode;
} }
case "text:line-break": { case "text:line-break": {
descriptionNode = descriptionNode + "<p>Ce node est celui d'un saut à la ligne (retour à la lige).<br>" descriptionNode = descriptionNode + "<p>Ce node est celui d'un saut à la ligne (retour à la ligne).<br>"
+ "<a href=\"http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#__RefHeading__1415206_253892949\">documentation OASIS</a></p>"; + "<a href=\"http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#__RefHeading__1415206_253892949\">documentation OASIS</a></p>";
return descriptionNode; return descriptionNode;
} }
@ -205,7 +210,8 @@ public class descriptionNode {
return descriptionNode; return descriptionNode;
} }
case "text:span": { case "text:span": {
descriptionNode = descriptionNode + "<p>Formatage local des caractères, vous pouvez analyser le style <b><u>Tx</u></b> ou <b><u>text:style-name</u></b>.</p>"; descriptionNode = descriptionNode + "<p>Formatage local des caractères, vous pouvez analyser le style <b><u>Tx</u></b> ou <b><u>text:style-name</u></b>.</p>"
+ "<p>"+imagereanalyseStyle +" La méthode \"analyseStyle\" peut être utilisée.</p>";
return descriptionNode; return descriptionNode;
} }
case "style:default-style": { case "style:default-style": {

View File

@ -25,13 +25,6 @@ public class listeAttributWriterPasEvaluableAvecCodeEvaluateur {
default: default:
return false; return false;
} }
// if(nameAttribut.equals("style:name")) return true;
// if(nameAttribut.equals("style:page-layout-name")) return true;
// if(nameAttribut.equals("style:family")) return true;
// if(nameAttribut.equals("text:name")) return true;
// if(nameAttribut.equals("text:style-name")) return true;
// return false;
} }
} }