diff --git a/.classpath b/.classpath index 16ab85d..f3c227d 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,10 @@ - + + + + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index e2812ca..7f17fe1 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,12 +1,14 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=19 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=19 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=19 diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..b19179f --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,9 @@ +/outils/ +/xml/ +/fenetres/ +/calc/ +/calcul/ +/AnalyseCalc/ +/nodeAC/ +/resources/ +/onLine/ diff --git a/bin/AnalyseCalc/AnalyseClasseur.class b/bin/AnalyseCalc/AnalyseClasseur.class index daca0fd..da10cf0 100644 Binary files a/bin/AnalyseCalc/AnalyseClasseur.class and b/bin/AnalyseCalc/AnalyseClasseur.class differ diff --git a/bin/AnalyseCalc/AnalyseFeuille.class b/bin/AnalyseCalc/AnalyseFeuille.class index 14cd568..5d93414 100644 Binary files a/bin/AnalyseCalc/AnalyseFeuille.class and b/bin/AnalyseCalc/AnalyseFeuille.class differ diff --git a/bin/AnalyseCalc/AnalyseHisto.class b/bin/AnalyseCalc/AnalyseHisto.class index bb4d7ca..121ee93 100644 Binary files a/bin/AnalyseCalc/AnalyseHisto.class and b/bin/AnalyseCalc/AnalyseHisto.class differ diff --git a/bin/AnalyseCalc/Classeur2$feuille$colonne.class b/bin/AnalyseCalc/Classeur2$feuille$colonne.class index 5cecfa2..38b50ee 100644 Binary files a/bin/AnalyseCalc/Classeur2$feuille$colonne.class and b/bin/AnalyseCalc/Classeur2$feuille$colonne.class differ diff --git a/bin/AnalyseCalc/Classeur2$feuille$graphic.class b/bin/AnalyseCalc/Classeur2$feuille$graphic.class index 3bbc633..ae683e6 100644 Binary files a/bin/AnalyseCalc/Classeur2$feuille$graphic.class and b/bin/AnalyseCalc/Classeur2$feuille$graphic.class differ diff --git a/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule$validation.class b/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule$validation.class index dad86aa..5cee174 100644 Binary files a/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule$validation.class and b/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule$validation.class differ diff --git a/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule.class b/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule.class index cc54e9b..c8c7924 100644 Binary files a/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule.class and b/bin/AnalyseCalc/Classeur2$feuille$ligne$cellule.class differ diff --git a/bin/AnalyseCalc/Classeur2$feuille$ligne.class b/bin/AnalyseCalc/Classeur2$feuille$ligne.class index 310e4b5..8490d59 100644 Binary files a/bin/AnalyseCalc/Classeur2$feuille$ligne.class and b/bin/AnalyseCalc/Classeur2$feuille$ligne.class differ diff --git a/bin/AnalyseCalc/Classeur2$feuille.class b/bin/AnalyseCalc/Classeur2$feuille.class index afc5f15..6384e07 100644 Binary files a/bin/AnalyseCalc/Classeur2$feuille.class and b/bin/AnalyseCalc/Classeur2$feuille.class differ diff --git a/bin/AnalyseCalc/Classeur2$historique.class b/bin/AnalyseCalc/Classeur2$historique.class index c03dc85..60fd5d8 100644 Binary files a/bin/AnalyseCalc/Classeur2$historique.class and b/bin/AnalyseCalc/Classeur2$historique.class differ diff --git a/bin/AnalyseCalc/Classeur2$modification.class b/bin/AnalyseCalc/Classeur2$modification.class index 5489e8f..dd26174 100644 Binary files a/bin/AnalyseCalc/Classeur2$modification.class and b/bin/AnalyseCalc/Classeur2$modification.class differ diff --git a/bin/AnalyseCalc/Classeur2.class b/bin/AnalyseCalc/Classeur2.class index 3d5706c..07bc62c 100644 Binary files a/bin/AnalyseCalc/Classeur2.class and b/bin/AnalyseCalc/Classeur2.class differ diff --git a/bin/AnalyseCalc/ObjejctGraphic.class b/bin/AnalyseCalc/ObjejctGraphic.class index fc58cd0..f52475e 100644 Binary files a/bin/AnalyseCalc/ObjejctGraphic.class and b/bin/AnalyseCalc/ObjejctGraphic.class differ diff --git a/bin/AnalyseCalc/analyseCalc.class b/bin/AnalyseCalc/analyseCalc.class index f15c56f..8243384 100644 Binary files a/bin/AnalyseCalc/analyseCalc.class and b/bin/AnalyseCalc/analyseCalc.class differ diff --git a/bin/AnalyseCalc/sousTotal.class b/bin/AnalyseCalc/sousTotal.class index 7e4847c..081dd24 100644 Binary files a/bin/AnalyseCalc/sousTotal.class and b/bin/AnalyseCalc/sousTotal.class differ diff --git a/bin/AnalyseCalc/verifsujet.class b/bin/AnalyseCalc/verifsujet.class index 002514d..0cbd764 100644 Binary files a/bin/AnalyseCalc/verifsujet.class and b/bin/AnalyseCalc/verifsujet.class differ diff --git a/bin/calc/commandes.class b/bin/calc/commandes.class index fa49c44..461d825 100644 Binary files a/bin/calc/commandes.class and b/bin/calc/commandes.class differ diff --git a/bin/calcul/StringSimilarity.class b/bin/calcul/StringSimilarity.class index 51e8beb..6524f5a 100644 Binary files a/bin/calcul/StringSimilarity.class and b/bin/calcul/StringSimilarity.class differ diff --git a/bin/calcul/calculIntervalleBaremeABCDE.class b/bin/calcul/calculIntervalleBaremeABCDE.class index 6345b08..0225a1d 100644 Binary files a/bin/calcul/calculIntervalleBaremeABCDE.class and b/bin/calcul/calculIntervalleBaremeABCDE.class differ diff --git a/bin/calcul/calculNombrePointEvaluation.class b/bin/calcul/calculNombrePointEvaluation.class index bda8a2f..c93991f 100644 Binary files a/bin/calcul/calculNombrePointEvaluation.class and b/bin/calcul/calculNombrePointEvaluation.class differ diff --git a/bin/calcul/calculNotesProgression.class b/bin/calcul/calculNotesProgression.class index 9d54c91..9f4c8bd 100644 Binary files a/bin/calcul/calculNotesProgression.class and b/bin/calcul/calculNotesProgression.class differ diff --git a/bin/calcul/formatDateWriter.class b/bin/calcul/formatDateWriter.class index c618f32..c639e2d 100644 Binary files a/bin/calcul/formatDateWriter.class and b/bin/calcul/formatDateWriter.class differ diff --git a/bin/fenetres/about$1.class b/bin/fenetres/about$1.class index ec13c64..bcba4ce 100644 Binary files a/bin/fenetres/about$1.class and b/bin/fenetres/about$1.class differ diff --git a/bin/fenetres/about.class b/bin/fenetres/about.class index 666e253..c9a5ac9 100644 Binary files a/bin/fenetres/about.class and b/bin/fenetres/about.class differ diff --git a/bin/fenetres/afficheText.class b/bin/fenetres/afficheText.class index 07c9272..8fcfd81 100644 Binary files a/bin/fenetres/afficheText.class and b/bin/fenetres/afficheText.class differ diff --git a/bin/fenetres/allContent$1.class b/bin/fenetres/allContent$1.class index 00f94df..c0b977d 100644 Binary files a/bin/fenetres/allContent$1.class and b/bin/fenetres/allContent$1.class differ diff --git a/bin/fenetres/allContent$2.class b/bin/fenetres/allContent$2.class index 690dec8..002fcc3 100644 Binary files a/bin/fenetres/allContent$2.class and b/bin/fenetres/allContent$2.class differ diff --git a/bin/fenetres/allContent.class b/bin/fenetres/allContent.class index 287faa3..ac82197 100644 Binary files a/bin/fenetres/allContent.class and b/bin/fenetres/allContent.class differ diff --git a/bin/fenetres/attributs$1.class b/bin/fenetres/attributs$1.class index ed6d06f..03dfd7d 100644 Binary files a/bin/fenetres/attributs$1.class and b/bin/fenetres/attributs$1.class differ diff --git a/bin/fenetres/attributs$10.class b/bin/fenetres/attributs$10.class index 525059f..16554ef 100644 Binary files a/bin/fenetres/attributs$10.class and b/bin/fenetres/attributs$10.class differ diff --git a/bin/fenetres/attributs$2.class b/bin/fenetres/attributs$2.class index 1533a5a..1fc54fb 100644 Binary files a/bin/fenetres/attributs$2.class and b/bin/fenetres/attributs$2.class differ diff --git a/bin/fenetres/attributs$3.class b/bin/fenetres/attributs$3.class index 4fc63d6..c723603 100644 Binary files a/bin/fenetres/attributs$3.class and b/bin/fenetres/attributs$3.class differ diff --git a/bin/fenetres/attributs$4.class b/bin/fenetres/attributs$4.class index f8986ae..f40a78f 100644 Binary files a/bin/fenetres/attributs$4.class and b/bin/fenetres/attributs$4.class differ diff --git a/bin/fenetres/attributs$5.class b/bin/fenetres/attributs$5.class index a73e453..846d5f1 100644 Binary files a/bin/fenetres/attributs$5.class and b/bin/fenetres/attributs$5.class differ diff --git a/bin/fenetres/attributs$6.class b/bin/fenetres/attributs$6.class index cffecd8..1c6b1ca 100644 Binary files a/bin/fenetres/attributs$6.class and b/bin/fenetres/attributs$6.class differ diff --git a/bin/fenetres/attributs$7.class b/bin/fenetres/attributs$7.class index 6643646..d182a61 100644 Binary files a/bin/fenetres/attributs$7.class and b/bin/fenetres/attributs$7.class differ diff --git a/bin/fenetres/attributs$8.class b/bin/fenetres/attributs$8.class index 7643833..ad0db9e 100644 Binary files a/bin/fenetres/attributs$8.class and b/bin/fenetres/attributs$8.class differ diff --git a/bin/fenetres/attributs$9.class b/bin/fenetres/attributs$9.class index b97e376..e8b6acb 100644 Binary files a/bin/fenetres/attributs$9.class and b/bin/fenetres/attributs$9.class differ diff --git a/bin/fenetres/attributs$MyMouseListener.class b/bin/fenetres/attributs$MyMouseListener.class index 573895d..d2c2018 100644 Binary files a/bin/fenetres/attributs$MyMouseListener.class and b/bin/fenetres/attributs$MyMouseListener.class differ diff --git a/bin/fenetres/attributs.class b/bin/fenetres/attributs.class index 04864d5..7166398 100644 Binary files a/bin/fenetres/attributs.class and b/bin/fenetres/attributs.class differ diff --git a/bin/fenetres/baliseStyle.class b/bin/fenetres/baliseStyle.class index 9d6a2da..23c16a4 100644 Binary files a/bin/fenetres/baliseStyle.class and b/bin/fenetres/baliseStyle.class differ diff --git a/bin/fenetres/create$1.class b/bin/fenetres/create$1.class index 30ea32f..d3686c0 100644 Binary files a/bin/fenetres/create$1.class and b/bin/fenetres/create$1.class differ diff --git a/bin/fenetres/create$2.class b/bin/fenetres/create$2.class index ad30676..86355f1 100644 Binary files a/bin/fenetres/create$2.class and b/bin/fenetres/create$2.class differ diff --git a/bin/fenetres/create.class b/bin/fenetres/create.class index 425d50f..2a28e97 100644 Binary files a/bin/fenetres/create.class and b/bin/fenetres/create.class differ diff --git a/bin/fenetres/create_act/actAPropos.class b/bin/fenetres/create_act/actAPropos.class index e9e2584..c582cc4 100644 Binary files a/bin/fenetres/create_act/actAPropos.class and b/bin/fenetres/create_act/actAPropos.class differ diff --git a/bin/fenetres/create_act/actAbout.class b/bin/fenetres/create_act/actAbout.class index ca64d7d..cf42bd3 100644 Binary files a/bin/fenetres/create_act/actAbout.class and b/bin/fenetres/create_act/actAbout.class differ diff --git a/bin/fenetres/create_act/actAddMenuFalse.class b/bin/fenetres/create_act/actAddMenuFalse.class index 77503ea..1ed624a 100644 Binary files a/bin/fenetres/create_act/actAddMenuFalse.class and b/bin/fenetres/create_act/actAddMenuFalse.class differ diff --git a/bin/fenetres/create_act/actAddMenuTrue.class b/bin/fenetres/create_act/actAddMenuTrue.class index 5ccd26f..a158936 100644 Binary files a/bin/fenetres/create_act/actAddMenuTrue.class and b/bin/fenetres/create_act/actAddMenuTrue.class differ diff --git a/bin/fenetres/create_act/actAfficheInformationFichierAnalyse.class b/bin/fenetres/create_act/actAfficheInformationFichierAnalyse.class index 6d751ff..47d0c51 100644 Binary files a/bin/fenetres/create_act/actAfficheInformationFichierAnalyse.class and b/bin/fenetres/create_act/actAfficheInformationFichierAnalyse.class differ diff --git a/bin/fenetres/create_act/actAttribut.class b/bin/fenetres/create_act/actAttribut.class index a8dc812..1fecae3 100644 Binary files a/bin/fenetres/create_act/actAttribut.class and b/bin/fenetres/create_act/actAttribut.class differ diff --git a/bin/fenetres/create_act/actCoefficient.class b/bin/fenetres/create_act/actCoefficient.class index 9bf1668..f822c71 100644 Binary files a/bin/fenetres/create_act/actCoefficient.class and b/bin/fenetres/create_act/actCoefficient.class differ diff --git a/bin/fenetres/create_act/actCollapseAll.class b/bin/fenetres/create_act/actCollapseAll.class index b3c3811..2b6a658 100644 Binary files a/bin/fenetres/create_act/actCollapseAll.class and b/bin/fenetres/create_act/actCollapseAll.class differ diff --git a/bin/fenetres/create_act/actCollapseNode.class b/bin/fenetres/create_act/actCollapseNode.class index cd5b909..02e06db 100644 Binary files a/bin/fenetres/create_act/actCollapseNode.class and b/bin/fenetres/create_act/actCollapseNode.class differ diff --git a/bin/fenetres/create_act/actDeleteNode.class b/bin/fenetres/create_act/actDeleteNode.class index d5f1aae..4c7776b 100644 Binary files a/bin/fenetres/create_act/actDeleteNode.class and b/bin/fenetres/create_act/actDeleteNode.class differ diff --git a/bin/fenetres/create_act/actDocumentation.class b/bin/fenetres/create_act/actDocumentation.class index e7660b7..3f4b222 100644 Binary files a/bin/fenetres/create_act/actDocumentation.class and b/bin/fenetres/create_act/actDocumentation.class differ diff --git a/bin/fenetres/create_act/actDownNode.class b/bin/fenetres/create_act/actDownNode.class index 0b2a5f8..d14e839 100644 Binary files a/bin/fenetres/create_act/actDownNode.class and b/bin/fenetres/create_act/actDownNode.class differ diff --git a/bin/fenetres/create_act/actEvalInitialCreator.class b/bin/fenetres/create_act/actEvalInitialCreator.class index c8b24f7..76fc910 100644 Binary files a/bin/fenetres/create_act/actEvalInitialCreator.class and b/bin/fenetres/create_act/actEvalInitialCreator.class differ diff --git a/bin/fenetres/create_act/actEvalNameNodeNon.class b/bin/fenetres/create_act/actEvalNameNodeNon.class index 3538c90..5da171e 100644 Binary files a/bin/fenetres/create_act/actEvalNameNodeNon.class and b/bin/fenetres/create_act/actEvalNameNodeNon.class differ diff --git a/bin/fenetres/create_act/actEvalNameNodeOui.class b/bin/fenetres/create_act/actEvalNameNodeOui.class index 780ea28..ffd829f 100644 Binary files a/bin/fenetres/create_act/actEvalNameNodeOui.class and b/bin/fenetres/create_act/actEvalNameNodeOui.class differ diff --git a/bin/fenetres/create_act/actEvalNamePageNon.class b/bin/fenetres/create_act/actEvalNamePageNon.class index fa09120..a4d5d56 100644 Binary files a/bin/fenetres/create_act/actEvalNamePageNon.class and b/bin/fenetres/create_act/actEvalNamePageNon.class differ diff --git a/bin/fenetres/create_act/actEvalNamePageOui.class b/bin/fenetres/create_act/actEvalNamePageOui.class index fef9685..c019690 100644 Binary files a/bin/fenetres/create_act/actEvalNamePageOui.class and b/bin/fenetres/create_act/actEvalNamePageOui.class differ diff --git a/bin/fenetres/create_act/actEvalueFalse.class b/bin/fenetres/create_act/actEvalueFalse.class index 850cce3..b1936f7 100644 Binary files a/bin/fenetres/create_act/actEvalueFalse.class and b/bin/fenetres/create_act/actEvalueFalse.class differ diff --git a/bin/fenetres/create_act/actEvalueTrue.class b/bin/fenetres/create_act/actEvalueTrue.class index f3d956f..9d938b3 100644 Binary files a/bin/fenetres/create_act/actEvalueTrue.class and b/bin/fenetres/create_act/actEvalueTrue.class differ diff --git a/bin/fenetres/create_act/actEvaluer.class b/bin/fenetres/create_act/actEvaluer.class index 3302e42..ed9cbd9 100644 Binary files a/bin/fenetres/create_act/actEvaluer.class and b/bin/fenetres/create_act/actEvaluer.class differ diff --git a/bin/fenetres/create_act/actEvaluerTousEnfantsFalse.class b/bin/fenetres/create_act/actEvaluerTousEnfantsFalse.class index 0b661db..9ffa7e4 100644 Binary files a/bin/fenetres/create_act/actEvaluerTousEnfantsFalse.class and b/bin/fenetres/create_act/actEvaluerTousEnfantsFalse.class differ diff --git a/bin/fenetres/create_act/actEvaluerTousEnfantsTrue.class b/bin/fenetres/create_act/actEvaluerTousEnfantsTrue.class index fe272c3..fc661d3 100644 Binary files a/bin/fenetres/create_act/actEvaluerTousEnfantsTrue.class and b/bin/fenetres/create_act/actEvaluerTousEnfantsTrue.class differ diff --git a/bin/fenetres/create_act/actExit.class b/bin/fenetres/create_act/actExit.class index f9a788b..f074a8f 100644 Binary files a/bin/fenetres/create_act/actExit.class and b/bin/fenetres/create_act/actExit.class differ diff --git a/bin/fenetres/create_act/actExpandAll.class b/bin/fenetres/create_act/actExpandAll.class index 987f183..ace6bee 100644 Binary files a/bin/fenetres/create_act/actExpandAll.class and b/bin/fenetres/create_act/actExpandAll.class differ diff --git a/bin/fenetres/create_act/actExpandNode.class b/bin/fenetres/create_act/actExpandNode.class index bb2ef01..005cff4 100644 Binary files a/bin/fenetres/create_act/actExpandNode.class and b/bin/fenetres/create_act/actExpandNode.class differ diff --git a/bin/fenetres/create_act/actNewFichierAnalyse.class b/bin/fenetres/create_act/actNewFichierAnalyse.class index 4c1390a..5a4b639 100644 Binary files a/bin/fenetres/create_act/actNewFichierAnalyse.class and b/bin/fenetres/create_act/actNewFichierAnalyse.class differ diff --git a/bin/fenetres/create_act/actNodeFichier.class b/bin/fenetres/create_act/actNodeFichier.class index ad598fc..bc631f6 100644 Binary files a/bin/fenetres/create_act/actNodeFichier.class and b/bin/fenetres/create_act/actNodeFichier.class differ diff --git a/bin/fenetres/create_act/actOpen.class b/bin/fenetres/create_act/actOpen.class index 6254434..15959ef 100644 Binary files a/bin/fenetres/create_act/actOpen.class and b/bin/fenetres/create_act/actOpen.class differ diff --git a/bin/fenetres/create_act/actSave.class b/bin/fenetres/create_act/actSave.class index e15b18a..e570849 100644 Binary files a/bin/fenetres/create_act/actSave.class and b/bin/fenetres/create_act/actSave.class differ diff --git a/bin/fenetres/create_act/actSaveAs.class b/bin/fenetres/create_act/actSaveAs.class index 5bce70a..5e57e9d 100644 Binary files a/bin/fenetres/create_act/actSaveAs.class and b/bin/fenetres/create_act/actSaveAs.class differ diff --git a/bin/fenetres/create_act/actSetting.class b/bin/fenetres/create_act/actSetting.class index f4d94bb..6f6b896 100644 Binary files a/bin/fenetres/create_act/actSetting.class and b/bin/fenetres/create_act/actSetting.class differ diff --git a/bin/fenetres/create_act/actSupprimeTitre.class b/bin/fenetres/create_act/actSupprimeTitre.class index 4f9720a..34903bb 100644 Binary files a/bin/fenetres/create_act/actSupprimeTitre.class and b/bin/fenetres/create_act/actSupprimeTitre.class differ diff --git a/bin/fenetres/create_act/actTitre1.class b/bin/fenetres/create_act/actTitre1.class index 51b2d49..b947557 100644 Binary files a/bin/fenetres/create_act/actTitre1.class and b/bin/fenetres/create_act/actTitre1.class differ diff --git a/bin/fenetres/create_act/actTitre2.class b/bin/fenetres/create_act/actTitre2.class index 3b6aec5..9924dc9 100644 Binary files a/bin/fenetres/create_act/actTitre2.class and b/bin/fenetres/create_act/actTitre2.class differ diff --git a/bin/fenetres/create_act/actTitre3.class b/bin/fenetres/create_act/actTitre3.class index 205a465..3925f8b 100644 Binary files a/bin/fenetres/create_act/actTitre3.class and b/bin/fenetres/create_act/actTitre3.class differ diff --git a/bin/fenetres/create_act/actTitrePrincipal.class b/bin/fenetres/create_act/actTitrePrincipal.class index 69820c2..5244e07 100644 Binary files a/bin/fenetres/create_act/actTitrePrincipal.class and b/bin/fenetres/create_act/actTitrePrincipal.class differ diff --git a/bin/fenetres/create_act/actTotalPoint.class b/bin/fenetres/create_act/actTotalPoint.class index 8c74d2c..5536bd2 100644 Binary files a/bin/fenetres/create_act/actTotalPoint.class and b/bin/fenetres/create_act/actTotalPoint.class differ diff --git a/bin/fenetres/create_act/actTotalPointNode.class b/bin/fenetres/create_act/actTotalPointNode.class index f678cab..bd1594b 100644 Binary files a/bin/fenetres/create_act/actTotalPointNode.class and b/bin/fenetres/create_act/actTotalPointNode.class differ diff --git a/bin/fenetres/create_act/actTousLesNodesEvaluer.class b/bin/fenetres/create_act/actTousLesNodesEvaluer.class index 6e9b929..884be33 100644 Binary files a/bin/fenetres/create_act/actTousLesNodesEvaluer.class and b/bin/fenetres/create_act/actTousLesNodesEvaluer.class differ diff --git a/bin/fenetres/create_act/actTutoriels.class b/bin/fenetres/create_act/actTutoriels.class index c905a1d..b244808 100644 Binary files a/bin/fenetres/create_act/actTutoriels.class and b/bin/fenetres/create_act/actTutoriels.class differ diff --git a/bin/fenetres/create_act/actUpNode.class b/bin/fenetres/create_act/actUpNode.class index 69db009..4e3c53a 100644 Binary files a/bin/fenetres/create_act/actUpNode.class and b/bin/fenetres/create_act/actUpNode.class differ diff --git a/bin/fenetres/create_act/actevalNameCreator.class b/bin/fenetres/create_act/actevalNameCreator.class index 7e1e392..49ba474 100644 Binary files a/bin/fenetres/create_act/actevalNameCreator.class and b/bin/fenetres/create_act/actevalNameCreator.class differ diff --git a/bin/fenetres/create_act/actsautfalse.class b/bin/fenetres/create_act/actsautfalse.class index b46e1c4..742f377 100644 Binary files a/bin/fenetres/create_act/actsautfalse.class and b/bin/fenetres/create_act/actsautfalse.class differ diff --git a/bin/fenetres/create_act/actsauttrue.class b/bin/fenetres/create_act/actsauttrue.class index 5bf4018..3df39cb 100644 Binary files a/bin/fenetres/create_act/actsauttrue.class and b/bin/fenetres/create_act/actsauttrue.class differ diff --git a/bin/fenetres/evaluate$1.class b/bin/fenetres/evaluate$1.class index e214ef7..9fffc42 100644 Binary files a/bin/fenetres/evaluate$1.class and b/bin/fenetres/evaluate$1.class differ diff --git a/bin/fenetres/evaluate$10.class b/bin/fenetres/evaluate$10.class index 4fd1d21..576c88c 100644 Binary files a/bin/fenetres/evaluate$10.class and b/bin/fenetres/evaluate$10.class differ diff --git a/bin/fenetres/evaluate$11.class b/bin/fenetres/evaluate$11.class index 47ca017..fa31d9e 100644 Binary files a/bin/fenetres/evaluate$11.class and b/bin/fenetres/evaluate$11.class differ diff --git a/bin/fenetres/evaluate$12.class b/bin/fenetres/evaluate$12.class index 737fcf0..5a45db1 100644 Binary files a/bin/fenetres/evaluate$12.class and b/bin/fenetres/evaluate$12.class differ diff --git a/bin/fenetres/evaluate$13.class b/bin/fenetres/evaluate$13.class index 68e662c..93e312c 100644 Binary files a/bin/fenetres/evaluate$13.class and b/bin/fenetres/evaluate$13.class differ diff --git a/bin/fenetres/evaluate$14.class b/bin/fenetres/evaluate$14.class index 19b99e5..39329e9 100644 Binary files a/bin/fenetres/evaluate$14.class and b/bin/fenetres/evaluate$14.class differ diff --git a/bin/fenetres/evaluate$15.class b/bin/fenetres/evaluate$15.class index f66ee70..23cf0b6 100644 Binary files a/bin/fenetres/evaluate$15.class and b/bin/fenetres/evaluate$15.class differ diff --git a/bin/fenetres/evaluate$16.class b/bin/fenetres/evaluate$16.class index e95fadc..f30a48d 100644 Binary files a/bin/fenetres/evaluate$16.class and b/bin/fenetres/evaluate$16.class differ diff --git a/bin/fenetres/evaluate$17.class b/bin/fenetres/evaluate$17.class index 4684bd3..37725d0 100644 Binary files a/bin/fenetres/evaluate$17.class and b/bin/fenetres/evaluate$17.class differ diff --git a/bin/fenetres/evaluate$18.class b/bin/fenetres/evaluate$18.class index e38beec..2550b66 100644 Binary files a/bin/fenetres/evaluate$18.class and b/bin/fenetres/evaluate$18.class differ diff --git a/bin/fenetres/evaluate$19.class b/bin/fenetres/evaluate$19.class index abe2834..2327a1d 100644 Binary files a/bin/fenetres/evaluate$19.class and b/bin/fenetres/evaluate$19.class differ diff --git a/bin/fenetres/evaluate$2.class b/bin/fenetres/evaluate$2.class index dcd2ad8..08f4321 100644 Binary files a/bin/fenetres/evaluate$2.class and b/bin/fenetres/evaluate$2.class differ diff --git a/bin/fenetres/evaluate$20.class b/bin/fenetres/evaluate$20.class index 5aa584e..37a1a37 100644 Binary files a/bin/fenetres/evaluate$20.class and b/bin/fenetres/evaluate$20.class differ diff --git a/bin/fenetres/evaluate$3.class b/bin/fenetres/evaluate$3.class index 26d0339..11a3fe4 100644 Binary files a/bin/fenetres/evaluate$3.class and b/bin/fenetres/evaluate$3.class differ diff --git a/bin/fenetres/evaluate$4.class b/bin/fenetres/evaluate$4.class index e059af0..25be4aa 100644 Binary files a/bin/fenetres/evaluate$4.class and b/bin/fenetres/evaluate$4.class differ diff --git a/bin/fenetres/evaluate$5.class b/bin/fenetres/evaluate$5.class index 7aaf4f7..b75989f 100644 Binary files a/bin/fenetres/evaluate$5.class and b/bin/fenetres/evaluate$5.class differ diff --git a/bin/fenetres/evaluate$6.class b/bin/fenetres/evaluate$6.class index e7dbac6..4736339 100644 Binary files a/bin/fenetres/evaluate$6.class and b/bin/fenetres/evaluate$6.class differ diff --git a/bin/fenetres/evaluate$7.class b/bin/fenetres/evaluate$7.class index be541f8..7bfa83e 100644 Binary files a/bin/fenetres/evaluate$7.class and b/bin/fenetres/evaluate$7.class differ diff --git a/bin/fenetres/evaluate$8.class b/bin/fenetres/evaluate$8.class index 5184e03..9e14542 100644 Binary files a/bin/fenetres/evaluate$8.class and b/bin/fenetres/evaluate$8.class differ diff --git a/bin/fenetres/evaluate$9.class b/bin/fenetres/evaluate$9.class index 269dddd..a91c84e 100644 Binary files a/bin/fenetres/evaluate$9.class and b/bin/fenetres/evaluate$9.class differ diff --git a/bin/fenetres/evaluate.class b/bin/fenetres/evaluate.class index 5e02486..2ae16d8 100644 Binary files a/bin/fenetres/evaluate.class and b/bin/fenetres/evaluate.class differ diff --git a/bin/fenetres/filechooserXML.class b/bin/fenetres/filechooserXML.class index a4b0c05..6f88ef5 100644 Binary files a/bin/fenetres/filechooserXML.class and b/bin/fenetres/filechooserXML.class differ diff --git a/bin/fenetres/mainApp$1.class b/bin/fenetres/mainApp$1.class index 1f5eb2b..00c976e 100644 Binary files a/bin/fenetres/mainApp$1.class and b/bin/fenetres/mainApp$1.class differ diff --git a/bin/fenetres/mainApp$2.class b/bin/fenetres/mainApp$2.class index f2ec488..493d3f8 100644 Binary files a/bin/fenetres/mainApp$2.class and b/bin/fenetres/mainApp$2.class differ diff --git a/bin/fenetres/mainApp.class b/bin/fenetres/mainApp.class index 4c18724..a0f420c 100644 Binary files a/bin/fenetres/mainApp.class and b/bin/fenetres/mainApp.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$1.class b/bin/fenetres/proprieteFichierAnalyse$1.class index 762e22f..26ff4fe 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$1.class and b/bin/fenetres/proprieteFichierAnalyse$1.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$10.class b/bin/fenetres/proprieteFichierAnalyse$10.class index 012c51f..16d3879 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$10.class and b/bin/fenetres/proprieteFichierAnalyse$10.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$11.class b/bin/fenetres/proprieteFichierAnalyse$11.class index cd096a7..d28b12f 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$11.class and b/bin/fenetres/proprieteFichierAnalyse$11.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$12.class b/bin/fenetres/proprieteFichierAnalyse$12.class index 0a512c0..303ac43 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$12.class and b/bin/fenetres/proprieteFichierAnalyse$12.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$13.class b/bin/fenetres/proprieteFichierAnalyse$13.class index de83be8..69cdc24 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$13.class and b/bin/fenetres/proprieteFichierAnalyse$13.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$14.class b/bin/fenetres/proprieteFichierAnalyse$14.class index 903c2fb..d91e36b 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$14.class and b/bin/fenetres/proprieteFichierAnalyse$14.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$15.class b/bin/fenetres/proprieteFichierAnalyse$15.class index fd85ec3..0b377a6 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$15.class and b/bin/fenetres/proprieteFichierAnalyse$15.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$16.class b/bin/fenetres/proprieteFichierAnalyse$16.class index a8c309f..581ba0f 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$16.class and b/bin/fenetres/proprieteFichierAnalyse$16.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$17.class b/bin/fenetres/proprieteFichierAnalyse$17.class index d1de636..7e8192a 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$17.class and b/bin/fenetres/proprieteFichierAnalyse$17.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$2.class b/bin/fenetres/proprieteFichierAnalyse$2.class index 1f9a783..e584059 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$2.class and b/bin/fenetres/proprieteFichierAnalyse$2.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$3.class b/bin/fenetres/proprieteFichierAnalyse$3.class index 18a03e0..45687a8 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$3.class and b/bin/fenetres/proprieteFichierAnalyse$3.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$4.class b/bin/fenetres/proprieteFichierAnalyse$4.class index 24bc8a4..6fc3698 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$4.class and b/bin/fenetres/proprieteFichierAnalyse$4.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$5.class b/bin/fenetres/proprieteFichierAnalyse$5.class index 96afb44..4c5ba2a 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$5.class and b/bin/fenetres/proprieteFichierAnalyse$5.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$6.class b/bin/fenetres/proprieteFichierAnalyse$6.class index 69d34c7..f5a2dd2 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$6.class and b/bin/fenetres/proprieteFichierAnalyse$6.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$7.class b/bin/fenetres/proprieteFichierAnalyse$7.class index 8ab61b5..662e579 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$7.class and b/bin/fenetres/proprieteFichierAnalyse$7.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$8.class b/bin/fenetres/proprieteFichierAnalyse$8.class index 129fd7c..4bc12c8 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$8.class and b/bin/fenetres/proprieteFichierAnalyse$8.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse$9.class b/bin/fenetres/proprieteFichierAnalyse$9.class index 891fb1f..4640fc6 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse$9.class and b/bin/fenetres/proprieteFichierAnalyse$9.class differ diff --git a/bin/fenetres/proprieteFichierAnalyse.class b/bin/fenetres/proprieteFichierAnalyse.class index cd90565..93f246b 100644 Binary files a/bin/fenetres/proprieteFichierAnalyse.class and b/bin/fenetres/proprieteFichierAnalyse.class differ diff --git a/bin/fenetres/setting$1.class b/bin/fenetres/setting$1.class index 4d2ef21..8c62a05 100644 Binary files a/bin/fenetres/setting$1.class and b/bin/fenetres/setting$1.class differ diff --git a/bin/fenetres/setting$2.class b/bin/fenetres/setting$2.class index 268cff8..d7e409b 100644 Binary files a/bin/fenetres/setting$2.class and b/bin/fenetres/setting$2.class differ diff --git a/bin/fenetres/setting$3.class b/bin/fenetres/setting$3.class index 696f6fb..ff7792a 100644 Binary files a/bin/fenetres/setting$3.class and b/bin/fenetres/setting$3.class differ diff --git a/bin/fenetres/setting$4.class b/bin/fenetres/setting$4.class index 29b35d4..e8b8634 100644 Binary files a/bin/fenetres/setting$4.class and b/bin/fenetres/setting$4.class differ diff --git a/bin/fenetres/setting$5.class b/bin/fenetres/setting$5.class index d6d765e..2d4ff4d 100644 Binary files a/bin/fenetres/setting$5.class and b/bin/fenetres/setting$5.class differ diff --git a/bin/fenetres/setting.class b/bin/fenetres/setting.class index 032beff..594270e 100644 Binary files a/bin/fenetres/setting.class and b/bin/fenetres/setting.class differ diff --git a/bin/list/listeAttributCalcValeurPasModifiable.class b/bin/list/listeAttributCalcValeurPasModifiable.class index 3a52a48..f916306 100644 Binary files a/bin/list/listeAttributCalcValeurPasModifiable.class and b/bin/list/listeAttributCalcValeurPasModifiable.class differ diff --git a/bin/list/listeAttributWriterPasEvaluableAvecCodeEvaluateur.class b/bin/list/listeAttributWriterPasEvaluableAvecCodeEvaluateur.class index 2b8ec95..dd7084f 100644 Binary files a/bin/list/listeAttributWriterPasEvaluableAvecCodeEvaluateur.class and b/bin/list/listeAttributWriterPasEvaluableAvecCodeEvaluateur.class differ diff --git a/bin/list/listeAttributsAnalyseCalc.class b/bin/list/listeAttributsAnalyseCalc.class index 94958bd..56343c1 100644 Binary files a/bin/list/listeAttributsAnalyseCalc.class and b/bin/list/listeAttributsAnalyseCalc.class differ diff --git a/bin/list/listeEvalNameNode.class b/bin/list/listeEvalNameNode.class index fdd0442..18a25dd 100644 Binary files a/bin/list/listeEvalNameNode.class and b/bin/list/listeEvalNameNode.class differ diff --git a/bin/list/listeNodeAnalyseWriter.class b/bin/list/listeNodeAnalyseWriter.class index 26b8d95..2b68443 100644 Binary files a/bin/list/listeNodeAnalyseWriter.class and b/bin/list/listeNodeAnalyseWriter.class differ diff --git a/bin/list/listeNodeFormatageDirectDeWriter.class b/bin/list/listeNodeFormatageDirectDeWriter.class index f0c1c00..606fdd3 100644 Binary files a/bin/list/listeNodeFormatageDirectDeWriter.class and b/bin/list/listeNodeFormatageDirectDeWriter.class differ diff --git a/bin/list/listeRechercheParAnchorPageNumber.class b/bin/list/listeRechercheParAnchorPageNumber.class index 3a55d05..968dd42 100644 Binary files a/bin/list/listeRechercheParAnchorPageNumber.class and b/bin/list/listeRechercheParAnchorPageNumber.class differ diff --git a/bin/nodeAC/Attributs.class b/bin/nodeAC/Attributs.class index 0e7ee1f..7199fae 100644 Binary files a/bin/nodeAC/Attributs.class and b/bin/nodeAC/Attributs.class differ diff --git a/bin/nodeAC/Ecriture$LocationFile.class b/bin/nodeAC/Ecriture$LocationFile.class index b5b257b..e6cab11 100644 Binary files a/bin/nodeAC/Ecriture$LocationFile.class and b/bin/nodeAC/Ecriture$LocationFile.class differ diff --git a/bin/nodeAC/Ecriture$typeFichier.class b/bin/nodeAC/Ecriture$typeFichier.class index 4698c2c..d2f10f8 100644 Binary files a/bin/nodeAC/Ecriture$typeFichier.class and b/bin/nodeAC/Ecriture$typeFichier.class differ diff --git a/bin/nodeAC/Ecriture.class b/bin/nodeAC/Ecriture.class index 247f5ff..0f0f57a 100644 Binary files a/bin/nodeAC/Ecriture.class and b/bin/nodeAC/Ecriture.class differ diff --git a/bin/nodeAC/EnsembleFichiers.class b/bin/nodeAC/EnsembleFichiers.class index 55137f3..b7525e8 100644 Binary files a/bin/nodeAC/EnsembleFichiers.class and b/bin/nodeAC/EnsembleFichiers.class differ diff --git a/bin/nodeAC/LecturesDossiers.class b/bin/nodeAC/LecturesDossiers.class index 146221d..861c668 100644 Binary files a/bin/nodeAC/LecturesDossiers.class and b/bin/nodeAC/LecturesDossiers.class differ diff --git a/bin/nodeAC/constructionNodeAvecString.class b/bin/nodeAC/constructionNodeAvecString.class index 3125ed8..185e470 100644 Binary files a/bin/nodeAC/constructionNodeAvecString.class and b/bin/nodeAC/constructionNodeAvecString.class differ diff --git a/bin/nodeAC/hashNodeAC.class b/bin/nodeAC/hashNodeAC.class deleted file mode 100644 index b8767b8..0000000 Binary files a/bin/nodeAC/hashNodeAC.class and /dev/null differ diff --git a/bin/nodeAC/nodeAC.class b/bin/nodeAC/nodeAC.class index 9de6d61..d169824 100644 Binary files a/bin/nodeAC/nodeAC.class and b/bin/nodeAC/nodeAC.class differ diff --git a/bin/outils/HTML.class b/bin/outils/HTML.class index d218589..21169f1 100644 Binary files a/bin/outils/HTML.class and b/bin/outils/HTML.class differ diff --git a/bin/outils/feedback.class b/bin/outils/feedback.class index b66b4c8..9674026 100644 Binary files a/bin/outils/feedback.class and b/bin/outils/feedback.class differ diff --git a/bin/outils/notation.class b/bin/outils/notation.class index d27baf0..6e3992c 100644 Binary files a/bin/outils/notation.class and b/bin/outils/notation.class differ diff --git a/bin/outils/outils.class b/bin/outils/outils.class index 404dd2d..506b9fb 100644 Binary files a/bin/outils/outils.class and b/bin/outils/outils.class differ diff --git a/bin/outils/resources.class b/bin/outils/resources.class index d250187..794702d 100644 Binary files a/bin/outils/resources.class and b/bin/outils/resources.class differ diff --git a/bin/outils/verificationFichierAnalyse.class b/bin/outils/verificationFichierAnalyse.class index c5db61f..9b5cb79 100644 Binary files a/bin/outils/verificationFichierAnalyse.class and b/bin/outils/verificationFichierAnalyse.class differ diff --git a/bin/resources/accueilanalysecalc.png b/bin/resources/accueilanalysecalc.png index 2d45569..b8634b7 100644 Binary files a/bin/resources/accueilanalysecalc.png and b/bin/resources/accueilanalysecalc.png differ diff --git a/images/accueil_new_version.png b/images/accueil_new_version.png new file mode 100644 index 0000000..ce4d93f Binary files /dev/null and b/images/accueil_new_version.png differ diff --git a/images/accueilanalyseCalcl.svg b/images/accueilanalyseCalcl.svg index 19f061e..1eed676 100644 --- a/images/accueilanalyseCalcl.svg +++ b/images/accueilanalyseCalcl.svg @@ -1,15 +1,15 @@ + + + + + y2="6" + gradientTransform="matrix(0.13140715,0,0,0.12826325,9.4577708,48.418245)"> + x1="532.39862" + x2="497.16809" + y1="109.3368" + y2="83.932327"> + id="stop10" + style="stop-color:#111111;stop-opacity:1;" /> + + + + + + + + + + + + + + + + + + + + + + + + inkscape:snap-page="true" + inkscape:showpageshadow="2" + inkscape:deskcolor="#d1d1d1"> + position="-2.5688102,12.182592" + inkscape:locked="false" /> + id="guide2372" + inkscape:locked="false" /> @@ -361,183 +483,588 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Calque 1"> - - analyseCalc - - + id="g6332" + transform="matrix(0.1648432,0,0,-0.08707046,508.87124,180.15207)" + style="display:inline;stroke-width:1.20245;stroke-miterlimit:4;stroke-dasharray:none"> + + id="g32052" + style="display:inline;stroke-width:0.902143" + transform="matrix(1.6818328,0,0,1.1208753,2451.3512,-595.54445)"> - - - - - - - - - - - - - - - - + style="fill:#c6dce2;fill-opacity:1;stroke:none;stroke-width:0.676608px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -3051.3168,1715.0167 117.9756,190.8511 15.2087,-5.1151 z" + id="path32014" + sodipodi:nodetypes="cccc" /> + style="fill:#c6dce2;fill-opacity:1;stroke:none;stroke-width:0.676608px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -3051.3168,1715.0167 176.3026,193.6794 9.4677,-3.94 z" + id="path32016" + sodipodi:nodetypes="cccc" /> + style="fill:#c6dce2;fill-opacity:1;stroke:none;stroke-width:0.676608px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -3051.3168,1715.0167 272.8332,202.1873 37.5354,6.6881 z" + id="path32018" + sodipodi:nodetypes="cccc" /> + style="opacity:1;fill:#0387ab;fill-opacity:1;stroke:none;stroke-width:0.676608px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -3051.3168,1715.0167 350.2709,204.7311 0.844,-2.1098 z" + id="path32020" + sodipodi:nodetypes="cccc" /> + style="fill:#c6dce2;fill-opacity:1;stroke:none;stroke-width:0.676608px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -3051.3168,1715.0167 369.2094,157.8283 9.7391,-9.2656 z" + id="path32022" + sodipodi:nodetypes="cccc" /> + style="fill:#c6dce2;fill-opacity:1;stroke:none;stroke-width:0.676608px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -3051.3168,1715.0167 376.0613,99.6919 v -20.847 z" + id="path32024" + sodipodi:nodetypes="cccc" /> + + style="fill:#c6dce2;fill-opacity:1;stroke:none;stroke-width:0.676608px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -3051.3168,1715.0167 376.0613,39.6068 v -16.0165 z" + id="path32028" + sodipodi:nodetypes="cccc" /> + style="fill:url(#linearGradient213);stroke:none;stroke-width:0.676608px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -3051.3168,1715.0167 377.9716,0.4852 -5.0522,-58.5537 z" + id="path32030" + sodipodi:nodetypes="cccc" /> + style="fill:#c6dce2;fill-opacity:1;stroke:none;stroke-width:0.676608px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -3049.7675,1716.3006 372.9841,9.4625 3.0578,-11.0074 z" + id="path32032" + sodipodi:nodetypes="cccc" /> + style="fill:#c6dce2;fill-opacity:1;stroke:none;stroke-width:0.676608px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -3051.3168,1715.0167 375.8685,-110.6183 3.6053,12.5006 z" + id="path32034" + sodipodi:nodetypes="cccc" /> + style="fill:#c6dce2;fill-opacity:1;stroke:none;stroke-width:0.676608px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -3051.3168,1715.0167 360.5106,-171.3972 14.5987,16.8163 z" + id="path32036" + sodipodi:nodetypes="cccc" /> + style="fill:#c6dce2;fill-opacity:1;stroke:none;stroke-width:0.676608px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m -3051.3168,1715.0167 336.3428,-170.8613 -22.247,-2.7693 z" + id="path32038" + sodipodi:nodetypes="cccc" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + id="g4" + inkscape:label="Titre" + transform="matrix(1.0620466,0,0,1.0620466,-2.8272111,-3.9747456)"> + analyseCalc + analyseCalc + + + transform="matrix(0.2200885,0,0,0.21482291,-70.978396,36.994978)" + id="g105"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ODF + + + Évaluer les tableurs au format ODF. + Évaluer les tableurs au format ODF. + diff --git a/images/accueilanalysecalc.png b/images/accueilanalysecalc.png index 2d45569..b8634b7 100644 Binary files a/images/accueilanalysecalc.png and b/images/accueilanalysecalc.png differ diff --git a/images/accueill new version.svg b/images/accueill new version.svg new file mode 100644 index 0000000..ee72ef3 --- /dev/null +++ b/images/accueill new version.svg @@ -0,0 +1,1699 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + analyseWriter + analyseWriter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Nouvelle version disponible sur la forge + Nouvelle version disponible sur la forge + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + analyseCalc + analyseCalc + + + diff --git a/newFile.xml b/newFile.xml new file mode 100644 index 0000000..3bdf144 --- /dev/null +++ b/newFile.xml @@ -0,0 +1 @@ +A1A5B5C5D5A6B6cel D6A7B7C7cel D7A8cel D8A9C9cel D9J9A10cel D10A11B11C11D11A15B15F15F16B19F19B20C20F20Z20C21F21D22E22F22F23D24F24E25F25C28D28E28F28A31B31E31F31E32J1048576test Z1048576CE texet est dans une cellule fusionnée A2:H2Moi – cellule I201je tape un texte cellule C5234Le ori – cellule B85Le ori – cellule B9678Cellule F11Je tape ce texte dans une cellule fisionnée de B12:D219 + cellule E12cellule F1210cellule F13111213141516 – cellule E19cellule F19111Je tape dans cellule C25:C40cellile D39lui AM96Bonjour cellule AT97Le sernier XFD1048576???Page 1Prénom Nom2023-04-05T17:49:12.9440000002023-04-23T17:36:41.532000000Pablo RodriguezPT7H5M48S47LibreOffice/7.4.6.2$Windows_X86_64 LibreOffice_project/5b1f5509c2decdade7fda905e3e1429a67acd63dmon code sujet \ No newline at end of file diff --git a/src/AnalyseCalc/Classeur2.java b/src/AnalyseCalc/Classeur2.java index 8505b84..5696c82 100644 --- a/src/AnalyseCalc/Classeur2.java +++ b/src/AnalyseCalc/Classeur2.java @@ -16,11 +16,11 @@ import AnalyseCalc.Classeur2.feuille.graphic; import AnalyseCalc.Classeur2.feuille.ligne; import AnalyseCalc.Classeur2.feuille.ligne.cellule; import calc.commandes; -import nodeAC.Ecriture; -import nodeAC.Ecriture.typeFichier; -import nodeAC.LecturesDossiers; -import nodeAC.constructionNodeAvecString; -import nodeAC.nodeAC; +import xml.LecturesDossiers; +import xml.ecritureFileXML; +import xml.ecritureFileXML.typeFichier; +import xml.node; +import xml.transformeXLMtoNode; /** * Cette class permet de lire les feuilles de calcul de libreOffice Calc @@ -56,13 +56,13 @@ public class Classeur2 { /** * Création des feuilles du classeur - * @param nod : nodeAC permettant de rechercher les feuilles "table:table" + * @param nod : node permettant de rechercher les feuilles "table:table" * @throws CloneNotSupportedException * @throws IOException */ - public Classeur2(nodeAC nod, Integer indexStudent, typeFichier type) throws CloneNotSupportedException, IOException { + public Classeur2(node nod, Integer indexStudent, typeFichier type) throws CloneNotSupportedException, IOException { - if(type.equals(Ecriture.typeFichier.fichier_analyse)) { + if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) { if(nod.getAttributs().get("bareme")!=null)calc.commandes.analyse_bareme = Double.valueOf(nod.getAttributs().get("bareme")); if(nod.getAttributs().get("version")!=null)calc.commandes.version = nod.getAttributs().get("version"); if(nod.getAttributs().get("controleDateCreation")!=null)calc.commandes.analyse_controleDateCreation = Boolean.valueOf(nod.getAttributs().get("controleDateCreation")); @@ -81,41 +81,41 @@ public class Classeur2 { } //Les meta-données pour tous les classeurs analyse et students - nodeAC nMeta = nod.retourneFirstEnfantsByName("office:meta"); + node nMeta = nod.retourneFirstEnfant("office:meta"); if(nMeta!=null) { - nodeAC n = nMeta.retourneFirstEnfantsByName("meta:creation-date"); + node n = nMeta.retourneFirstEnfant("meta:creation-date"); if(n!=null) { dateCreation = n.getContenu().get(0); - if(type.equals(Ecriture.typeFichier.fichier_analyse)) { + if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) { calc.commandes.analyse_creationDate = dateCreation; } } - n = nMeta.retourneFirstEnfantsByName("dc:date"); + n = nMeta.retourneFirstEnfant("dc:date"); if(n!=null) { dateModification = n.getContenu().get(0); - if(type.equals(Ecriture.typeFichier.fichier_analyse)) { + if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) { calc.commandes.analyse_date = dateModification; } } - n = nMeta.retourneFirstEnfantsByName("meta:initial-creator"); + n = nMeta.retourneFirstEnfant("meta:initial-creator"); if(n!=null) { Initial_Creator = n.getContenu().get(0); - if(type.equals(Ecriture.typeFichier.fichier_analyse)) { + if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) { calc.commandes.analyse_Initial_Creator = Initial_Creator; } } - n = nMeta.retourneFirstEnfantsByName("dc:creator"); + n = nMeta.retourneFirstEnfant("dc:creator"); if(n!=null) { auteur=n.getContenu().get(0); - if(type.equals(Ecriture.typeFichier.fichier_analyse)) { + if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) { calc.commandes.analyse_auteur = auteur; } } - n = nMeta.retourneFirstEnfantsByName("meta:generator"); + n = nMeta.retourneFirstEnfant("meta:generator"); if(n!=null) { producteur=n.getContenu().get(0); - if(type.equals(Ecriture.typeFichier.fichier_analyse)) { + if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) { calc.commandes.analysis_producteur = producteur; } } @@ -125,14 +125,14 @@ public class Classeur2 { - nodeAC n = nod.retourneFirstEnfantsByName("meta:user-defined"); + node n = nod.retourneFirstEnfant("meta:user-defined"); if(n!=null) { if(n.getAttributs().get("meta:name").equalsIgnoreCase("sujet")) { metaSujet = n.getAttributs().get("meta:name"); - if(type.equals(Ecriture.typeFichier.fichier_analyse)) { + if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) { calc.commandes.analyse_metaSujet=metaSujet; } - metaSujetContent = n.retourneLesContenusEnfants(""); + metaSujetContent = n.getContenuAvecTousLesContenusDesEnfants(); } } @@ -145,20 +145,20 @@ public class Classeur2 { //feuilles. A partir des feuilles -> en partie lignes, cellules - ArrayList feuilles = nod.retourneListEnfantsByName("table:table"); + ArrayList feuilles = nod.retourneAllEnfants("table:table"); NbreFeuille = feuilles.size(); - if(type.equals(Ecriture.typeFichier.fichier_analyse)) commandes.analysis_nbr_feuilles = NbreFeuille; + if(type.equals(ecritureFileXML.typeFichier.fichier_analyse)) commandes.analysis_nbr_feuilles = NbreFeuille; for(int i = 0 ; i nommage = nod.retourneListEnfantsByName("table:named-expressions"); + ArrayList nommage = nod.retourneAllEnfants("table:named-expressions"); if(nommage.size()>0) { for(int i=0;i dateModificationId = new TreeMap(); - private HashMap IdModifications = new HashMap(); + private HashMap IdModifications = new HashMap(); ArrayList ListeIdSimultane = new ArrayList(); ArrayList ListeRefSimultane = new ArrayList(); int NombreCopierColler = 0; @@ -439,7 +440,7 @@ public class Classeur2 { } - public void addhistorique(ArrayList hist, Integer indexStudent ) { + public void addhistorique(ArrayList hist, Integer indexStudent ) { LocalDateTime datetime1 = LocalDateTime.of(2017, 1, 14, 10, 34); ZonedDateTime zonedDateTime = null; @@ -448,17 +449,17 @@ public class Classeur2 { for(int i = 0 ; i < hist.size();i++) { String id = hist.get(i).getAttributs().get("table:id"); - String col = (hist.get(i).retourneFirstEnfantsByName("table:cell-address").getAttributs().get("table:column")); - String lig = (hist.get(i).retourneFirstEnfantsByName("table:cell-address").getAttributs().get("table:row")); - String tab = (hist.get(i).retourneFirstEnfantsByName("table:cell-address").getAttributs().get("table:table")); - String aut = (hist.get(i).retourneFirstEnfantsByName("dc:creator").getContenu().get(0)); - String dat = (hist.get(i).retourneFirstEnfantsByName("dc:date").getContenu().get(0)); + String col = (hist.get(i).retourneFirstEnfant("table:cell-address").getAttributs().get("table:column")); + String lig = (hist.get(i).retourneFirstEnfant("table:cell-address").getAttributs().get("table:row")); + String tab = (hist.get(i).retourneFirstEnfant("table:cell-address").getAttributs().get("table:table")); + String aut = (hist.get(i).retourneFirstEnfant("dc:creator").getContenu().get(0)); + String dat = (hist.get(i).retourneFirstEnfant("dc:date").getContenu().get(0)); String ref = "tab"+tab+"Col"+col+"Lig"+lig+"-"; - nodeAC c = hist.get(i).retourneFirstEnfantsByName("table:previous"); + node c = hist.get(i).retourneFirstEnfant("table:previous"); String idprevious = c.getAttributs().get("table:id"); - nodeAC d = hist.get(i).retourneFirstEnfantsByName("table:change-track-table-cell"); + node d = hist.get(i).retourneFirstEnfant("table:change-track-table-cell"); String previousvalue = d.getAttributs().get("office:value"); String previousformula = d.getAttributs().get("table:formula"); String previousadress = d.getAttributs().get("table:cell-address"); @@ -479,7 +480,7 @@ public class Classeur2 { } - nodeAC e= new nodeAC(); + node e= new node(); e.getAttributs().put("Id", id); e.getAttributs().put("ref", ref); e.getAttributs().put("aut", aut); @@ -576,7 +577,7 @@ public class Classeur2 { return dateModificationId; } - public HashMap getIdModifications() { + public HashMap getIdModifications() { return IdModifications; } @@ -615,14 +616,14 @@ public class Classeur2 { } - public void addModification(nodeAC N) { + public void addModification(node N) { String value =""; String Id = N.getAttributs().get("id"); - for(int j = 0 ; j < N.getNodes().size();j++) { + for(int j = 0 ; j < N.getEnfants().size();j++) { - String ref = " tab"+ N.getNodes().get(j).getAttributs().get("table:table")+"Col"+N.getNodes().get(j).getAttributs().get("table:column")+"Lig"+N.getNodes().get(j).getAttributs().get("table:row")+"-"; + String ref = " tab"+ N.getEnfants().get(j).getAttributs().get("table:table")+"Col"+N.getEnfants().get(j).getAttributs().get("table:column")+"Lig"+N.getEnfants().get(j).getAttributs().get("table:row")+"-"; value = value + ref; - message.put(ref,N.getNodes().get(j).getAttributs().get("message")); + message.put(ref,N.getEnfants().get(j).getAttributs().get("message")); } modif.put(Id, value); @@ -676,7 +677,7 @@ public class Classeur2 { * Chargement du sujet * @param fe */ - public feuille(nodeAC fe) { + public feuille(node fe) { // chargement du sujet if(fe.getAttributs().get("nomFeuille")!=null) nomFeuille=fe.getAttributs().get("nomFeuille"); if(fe.getAttributs().get("styleLigne")!=null) styleLigne=fe.getAttributs().get("styleLigne"); @@ -685,33 +686,33 @@ public class Classeur2 { if(fe.getAttributs().get("link")!=null) link=fe.getAttributs().get("link"); if(fe.getAttributs().get("linktitle")!=null) linktitle=fe.getAttributs().get("linktitle"); - nodeAC comm = fe.retourneFirstEnfantsByName("communication"); + node comm = fe.retourneFirstEnfant("communication"); if(!comm.isVide()) communication=comm.getContenu().get(0); //nommage for (Entry j : nommageCellules.entrySet()) { nommageCellulesFeuille.put(j.getKey(), j.getValue()); } - ArrayList noms = fe.retourneListEnfantsByName("nommagecellulesfeuille"); + ArrayList noms = fe.retourneAllEnfants("nommagecellulesfeuille"); for(int i=0; i < noms.size();i++) { nommageCellulesFeuille.put(noms.get(i).getAttributs().get("name"),noms.get(i).getAttributs().get("cells")); } //colonnes chargement sujet - ArrayList nods= fe.retourneListEnfantsByName("colonne"); + ArrayList nods= fe.retourneAllEnfants("colonne"); for(int i = 0 ; i < nods.size();i++) { colonnes.put( i , new colonne(nods.get(i),nods.get(i).getAttributs().get("RefColonne"))); } nods.clear(); //lignes chargement sujet - nods= fe.retourneListEnfantsByName("ligne"); + nods= fe.retourneAllEnfants("ligne"); for(int i=0 ; i < nods.size();i++) { lignes.put(i, new ligne(nods.get(i), nods.get(i).getAttributs().get("RefLigne"))); } //graphics chargement sujet - nods= fe.retourneListEnfantsByName("graphic"); + nods= fe.retourneAllEnfants("graphic"); for(int i=0 ; i < nods.size();i++) { graphics.put(i, new graphic(nods.get(i))); } @@ -726,7 +727,7 @@ public class Classeur2 { * @param a * @throws IOException */ - public feuille(nodeAC fe, nodeAC nod, Integer indexStudent) throws IOException { + public feuille(node fe, node nod, Integer indexStudent) throws IOException { //Ajoute des variables pour l'évaluation fe.getAttributs().put("poids","1"); fe.getAttributs().put("evaluer","false"); @@ -735,9 +736,9 @@ public class Classeur2 { // for (Entry j : nommageCellules.entrySet()) { // nommageCellulesFeuille.put(j.getKey(), j.getValue()); // } - ArrayList nommage = fe.retourneListEnfantsByName("table:named-expressions"); + ArrayList nommage = fe.retourneAllEnfants("table:named-expressions"); if(nommage.size()>0) { - nommage = nommage.get(0).getNodes(); + nommage = nommage.get(0).getEnfants(); for(int i=0;i nods = fe.retourneListEnfantsByName("table:table-column"); + ArrayList nods = fe.retourneAllEnfants("table:table-column"); System.out.println("Nbre de colonne = " + nods.size()); //int numCol = 0; int numRepeated = 0; @@ -768,7 +769,7 @@ public class Classeur2 { //lignes chargement - nods=fe.retourneListEnfantsByName("table:table-row"); + nods=fe.retourneAllEnfants("table:table-row"); System.out.println("Nbre de ligne = " + nods.size()); int nombreRepetitionLigne = 0; for(int i=0 ; i < nods.size();i++) { @@ -779,9 +780,9 @@ public class Classeur2 { } //graphics ancrer à la feuille chargement - nodeAC LesGraphics = fe.retourneFirstEnfantsByName("table:shapes"); + node LesGraphics = fe.retourneFirstEnfant("table:shapes"); if(LesGraphics!=null) { - ArrayList A = LesGraphics.retourneListEnfantsByName("draw:frame"); + ArrayList A = LesGraphics.retourneAllEnfants("draw:frame"); System.out.println("Nbr de graphique = " + A.size()); for(int i = 0 ; i < A.size();i++) { graphics.put(i, new graphic(A.get(i), nod, indexStudent)); @@ -1135,7 +1136,7 @@ public class Classeur2 { * @param col * @param numColonne */ - public colonne(nodeAC col, String numColonne) { + public colonne(node col, String numColonne) { RefColonne=numColonne; RefColDansClasseur = ConvertirNumColonneEnString(Integer.valueOf(RefColonne)); if (col.getAttributs().get("LargeurColonne")!=null) propertiesColumn.put("LargeurColonne", col.getAttributs().get("LargeurColonne")); @@ -1152,7 +1153,7 @@ public class Classeur2 { * @param XMLContent * @param a */ - public colonne(nodeAC col, String numColonne, nodeAC nod) { + public colonne(node col, String numColonne, node nod) { RefColonne = numColonne; RefColDansClasseur = ConvertirNumColonneEnString(Integer.valueOf(RefColonne)); @@ -1162,9 +1163,9 @@ public class Classeur2 { if (col.getAttributs().get("table:number-columns-repeated")!=null) propertiesColumn.put("Repetition", col.getAttributs().get("table:number-columns-repeated")); if (col.getAttributs().get("table:visibility")!=null) propertiesColumn.put("Visible", col.getAttributs().get("table:visibility")); - ArrayList s = nod.retourneListEnfantsByName("style:style", "style:name",propertiesColumn.get("Style")); + ArrayList s = nod.retourneAllEnfants("style:style", "style:name",propertiesColumn.get("Style")); if(s.size()>0) { - nodeAC b = s.get(0).retourneFirstEnfantsByName("style:table-column-properties"); + node b = s.get(0).retourneFirstEnfant("style:table-column-properties"); if(b.getAttributs().get("style:column-width")!=null) propertiesColumn.put("LargeurColonne",b.getAttributs().get("style:column-width")); } @@ -1232,17 +1233,17 @@ public class Classeur2 { - public graphic(nodeAC nodeGraphic ) { + public graphic(node nodeGraphic ) { //chargement sujet if(nodeGraphic.getAttributs().get("nomObjet")!=null) nomObjet = nodeGraphic.getAttributs().get("nomObjet"); if(nodeGraphic.getAttributs().get("type")!=null) type = nodeGraphic.getAttributs().get("type"); if(nodeGraphic.getAttributs().get("evaluer")!=null) evaluer = nodeGraphic.getAttributs().get("evaluer"); if(nodeGraphic.getAttributs().get("TitreGraphique")!=null) TitreAfficherFeedBack = nodeGraphic.getAttributs().get("TitreGraphique"); - nodeAC b = nodeGraphic.retourneFirstEnfantsByName("communication"); + node b = nodeGraphic.retourneFirstEnfant("communication"); if(b!=null) communication=b.getContenu().get(0); - b = nodeGraphic.retourneFirstEnfantsByName("propertiesGraphic"); + b = nodeGraphic.retourneFirstEnfant("propertiesGraphic"); if(b.getAttributs().get("Type")!=null) propertiesGraphic.put("Type", b.getAttributs().get("Type")); if(b.getAttributs().get("style")!=null) propertiesGraphic.put("style", b.getAttributs().get("style")); if(b.getAttributs().get("positionY")!=null) propertiesGraphic.put("positionY", b.getAttributs().get("positionY")); @@ -1259,7 +1260,7 @@ public class Classeur2 { if(b.getAttributs().get("description")!=null) propertiesGraphic.put("description", b.getAttributs().get("description")); - b = nodeGraphic.retourneFirstEnfantsByName("titre"); + b = nodeGraphic.retourneFirstEnfant("titre"); if(b.getAttributs().get("Style")!=null) titre.put("Style", b.getAttributs().get("Style")); if(b.getAttributs().get("Titre")!=null) { titre.put("Titre", b.getAttributs().get("Titre")); @@ -1283,7 +1284,7 @@ public class Classeur2 { if(b.getAttributs().get("OmbrePolice")!=null) titre.put("OmbrePolice", b.getAttributs().get("OmbrePolice")); - b = nodeGraphic.retourneFirstEnfantsByName("soustitre"); + b = nodeGraphic.retourneFirstEnfant("soustitre"); if(b.getAttributs().get("Style")!=null) soustitre.put("Style", b.getAttributs().get("Style")); if(b.getAttributs().get("SousTitre")!=null) soustitre.put("SousTitre", b.getAttributs().get("SousTitre")); if(b.getAttributs().get("PositionAutomatique")!=null) soustitre.put("PositionAutomatique", b.getAttributs().get("PositionAutomatique")); @@ -1297,7 +1298,7 @@ public class Classeur2 { if(b.getAttributs().get("CouleurPolice")!=null) soustitre.put("CouleurPolice", b.getAttributs().get("CouleurPolice")); if(b.getAttributs().get("OmbrePolice")!=null) soustitre.put("OmbrePolice", b.getAttributs().get("OmbrePolice")); - b = nodeGraphic.retourneFirstEnfantsByName("airegraphic"); + b = nodeGraphic.retourneFirstEnfant("airegraphic"); if(b.getAttributs().get("Style")!=null) airegraphic.put("Style", b.getAttributs().get("Style")); if(b.getAttributs().get("hauteur")!=null) airegraphic.put("hauteur", b.getAttributs().get("hauteur")); if(b.getAttributs().get("largeur")!=null) airegraphic.put("largeur", b.getAttributs().get("largeur")); @@ -1305,19 +1306,19 @@ public class Classeur2 { if(b.getAttributs().get("TableData")!=null) airegraphic.put("TableData", b.getAttributs().get("TableData")); - b = nodeGraphic.retourneFirstEnfantsByName("axeXprincipal"); + b = nodeGraphic.retourneFirstEnfant("axeXprincipal"); addAxeSujet(b,axeXprincipal); - b = nodeGraphic.retourneFirstEnfantsByName("axeXsecondaire"); + b = nodeGraphic.retourneFirstEnfant("axeXsecondaire"); addAxeSujet(b,axeXsecondaire); - b = nodeGraphic.retourneFirstEnfantsByName("axeYprincipal"); + b = nodeGraphic.retourneFirstEnfant("axeYprincipal"); addAxeSujet(b,axeYprincipal); - b = nodeGraphic.retourneFirstEnfantsByName("axeYsecondaire"); + b = nodeGraphic.retourneFirstEnfant("axeYsecondaire"); addAxeSujet(b,axeYsecondaire); - b = nodeGraphic.retourneFirstEnfantsByName("legend"); + b = nodeGraphic.retourneFirstEnfant("legend"); if(b.getAttributs().get("LegendPosition")!=null) legend.put("LegendPosition", b.getAttributs().get("LegendPosition")); if(b.getAttributs().get("Style")!=null) legend.put("Style", b.getAttributs().get("Style")); if(b.getAttributs().get("CouleurArrierePlan")!=null) legend.put("CouleurArrierePlan", b.getAttributs().get("CouleurArrierePlan")); @@ -1329,7 +1330,7 @@ public class Classeur2 { if(b.getAttributs().get("StylePoliceWeight")!=null) legend.put("StylePoliceWeight", b.getAttributs().get("StylePoliceWeight")); if(b.getAttributs().get("Police")!=null) legend.put("Police", b.getAttributs().get("Police")); - b = nodeGraphic.retourneFirstEnfantsByName("series"); + b = nodeGraphic.retourneFirstEnfant("series"); if(b.getAttributs().get("Serie_1_AfficheCategorieEtiquetteDeValeur")!=null) series.put("Serie_1_AfficheCategorieEtiquetteDeValeur", b.getAttributs().get("Serie_1_AfficheCategorieEtiquetteDeValeur")); if(b.getAttributs().get("Serie_1_AfficheSymbolEtiquetteDeValeur")!=null) series.put("Serie_1_AfficheSymbolEtiquetteDeValeur", b.getAttributs().get("Serie_1_AfficheSymbolEtiquetteDeValeur")); if(b.getAttributs().get("Serie_1_AxeAssocier")!=null) series.put("Serie_1_AxeAssocier", b.getAttributs().get("Serie_1_AxeAssocier")); @@ -1361,7 +1362,7 @@ public class Classeur2 { //Chargement - public graphic(nodeAC nodeGraphic,nodeAC nod, Integer indexStudent ) throws IOException { + public graphic(node nodeGraphic,node nod, Integer indexStudent ) throws IOException { if(nodeGraphic.getAttributs().get("draw:style-name")!=null) propertiesGraphic.put("Style", nodeGraphic.getAttributs().get("draw:style-name")); if(nodeGraphic.getAttributs().get("svg:y")!=null) propertiesGraphic.put("positionY", nodeGraphic.getAttributs().get("svg:y")); if(nodeGraphic.getAttributs().get("svg:x")!=null) propertiesGraphic.put("positionX", nodeGraphic.getAttributs().get("svg:x")); @@ -1372,7 +1373,7 @@ public class Classeur2 { //chargement String numObjet[] = null; - nodeAC b = nodeGraphic.retourneFirstEnfantsByName("draw:object"); + node b = nodeGraphic.retourneFirstEnfant("draw:object"); if(b.getAttributs().get("xlink:href")!=null) { propertiesGraphic.put("nomObjet", b.getAttributs().get("xlink:href")); nomObjet = b.getAttributs().get("xlink:href"); @@ -1384,23 +1385,23 @@ public class Classeur2 { } //TitreObjet - b = nodeGraphic.retourneFirstEnfantsByName("svg:title"); + b = nodeGraphic.retourneFirstEnfant("svg:title"); if(b!=null) { propertiesGraphic.put("titreObjet", b.getContenu().get(0)); } //Description - b = nodeGraphic.retourneFirstEnfantsByName("svg:desc"); + b = nodeGraphic.retourneFirstEnfant("svg:desc"); if(b!=null) { propertiesGraphic.put("description", b.getContenu().get(0)); } //Style gri1, ... - ArrayList C = nod.retourneListEnfantsByName("style:style", "style:name", propertiesGraphic.get("Style")); + ArrayList C = nod.retourneAllEnfants("style:style", "style:name", propertiesGraphic.get("Style")); System.out.println("C.size() = " + C.size()); System.out.println("propertiesGraphic.get(\"Style\") = " + propertiesGraphic.get("Style")); if(C.size()>0) { - nodeAC b1 = C.get(0).retourneFirstEnfantsByName("style:graphic-properties"); + node b1 = C.get(0).retourneFirstEnfant("style:graphic-properties"); if(b1!=null) { if(b1.getAttributs().get("svg:stroke-width")!=null) propertiesGraphic.put("EpaisseurBordures", b1.getAttributs().get("svg:stroke-width")); if(b1.getAttributs().get("draw:stroke")!=null) propertiesGraphic.put("TypeBordures", b1.getAttributs().get("draw:stroke")); @@ -1412,11 +1413,17 @@ public class Classeur2 { if(!nomObjet.isEmpty() && numObjet.length>1) { - ArrayList XMLContentGraphic; - constructionNodeAvecString A = new constructionNodeAvecString(); - nodeAC B = A.NewNode(LecturesDossiers.getEC().getListeObjetGraphicTableur().get(indexStudent)); - Ecriture.ecritureNodeEnXML(B, "Objet", commandes.PathFilenameAnalysis, typeFichier.fichier_etudiant); - XMLContentGraphic = B.retourneListEnfantsByName("Object","num",numObjet[1]); //cloner + ArrayList XMLContentGraphic; + + + new transformeXLMtoNode(LecturesDossiers.getEC().getListeObjetGraphicTableur().get(indexStudent), false, null); + + node B = transformeXLMtoNode.getNodeRoot(); + B.saveNodeEnXML("Objet", commandes.PathFilenameAnalysis); + //Ecriture.ecritureNodeEnXML(B, "Objet", commandes.PathFilenameAnalysis, typeFichier.fichier_etudiant); + + XMLContentGraphic = B.retourneAllEnfants("Object","num",numObjet[1]); //cloner + if(XMLContentGraphic.size()>0) { // XMLContentGraphic = B.retourneListEnfantsByName("office:chart"); // System.out.println("XMLContentGraphic.size() = " + XMLContentGraphic.size()); @@ -1432,8 +1439,8 @@ public class Classeur2 { * */ //** Uniquement pour le chargement ** - public void ajouteProperties(nodeAC nodeGraphic) { - nodeAC b = nodeGraphic.retourneFirstEnfantsByName("chart:chart"); + public void ajouteProperties(node nodeGraphic) { + node b = nodeGraphic.retourneFirstEnfant("chart:chart"); if(b!=null) { type = b.getAttributs().get("chart:class"); @@ -1442,21 +1449,21 @@ public class Classeur2 { // titre - b = nodeGraphic.retourneFirstEnfantsByName("chart:title"); + b = nodeGraphic.retourneFirstEnfant("chart:title"); if(b!=null) { if(b.getAttributs().get("chart:style-name")!=null) titre.put("Style", b.getAttributs().get("chart:style-name")); - b = b.retourneFirstEnfantsByName("text:p"); + b = b.retourneFirstEnfant("text:p"); if(b!=null) { - titre.put("Titre", b.retourneLesContenusEnfants("")); - TitreGraphique = titre.put("Titre", b.retourneLesContenusEnfants("")); - b = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", titre.get("Style")); + titre.put("Titre", b.getContenuAvecTousLesContenusDesEnfants()); + TitreGraphique = titre.put("Titre", b.getContenuAvecTousLesContenusDesEnfants()); + b = nodeGraphic.retourneFirstEnfant("style:style", "style:name", titre.get("Style")); if(b!=null) { - nodeAC b2 = b.retourneFirstEnfantsByName("style:chart-properties"); + node b2 = b.retourneFirstEnfant("style:chart-properties"); if(b2!=null) { if(b2.getAttributs().get("chart:auto-position")!=null) titre.put("PositionAutomatique", b2.getAttributs().get("chart:auto-position")); if(b2.getAttributs().get("style:rotation-angle")!=null) titre.put("Rotation", b2.getAttributs().get("style:rotation-angle")); } - b2 = b.retourneFirstEnfantsByName("style:text-properties"); + b2 = b.retourneFirstEnfant("style:text-properties"); if(b2!=null) { if(b2.getAttributs().get("fo:font-size")!=null) titre.put("TaillePolice", b2.getAttributs().get("fo:font-size")); if(b2.getAttributs().get("style:font-style-name")!=null) titre.put("StylePolice", b2.getAttributs().get("style:font-style-name")); @@ -1473,22 +1480,22 @@ public class Classeur2 { } // sous-titre - b = nodeGraphic.retourneFirstEnfantsByName("chart:subtitle"); + b = nodeGraphic.retourneFirstEnfant("chart:subtitle"); if(b!=null) { if(b.getAttributs().get("chart:style-name")!=null) soustitre.put("Style", b.getAttributs().get("chart:style-name")); - b = b.retourneFirstEnfantsByName("text:p"); + b = b.retourneFirstEnfant("text:p"); if(b!=null) { - soustitre.put("SousTitre", b.retourneLesContenusEnfants("")); + soustitre.put("SousTitre", b.getContenuAvecTousLesContenusDesEnfants()); } - b = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", soustitre.get("Style")); + b = nodeGraphic.retourneFirstEnfant("style:style", "style:name", soustitre.get("Style")); if(b!=null) { - nodeAC b2 = b.retourneFirstEnfantsByName("style:chart-properties"); + node b2 = b.retourneFirstEnfant("style:chart-properties"); System.out.println("style:chart-properties = " + b2.toString()); if(b2!=null) { if(b2.getAttributs().get("chart:auto-position")!=null) soustitre.put("PositionAutomatique", b2.getAttributs().get("chart:auto-position")); if(b2.getAttributs().get("style:rotation-angle")!=null) soustitre.put("Rotation", b2.getAttributs().get("style:rotation-angle")); } - b2 = b.retourneFirstEnfantsByName("style:text-properties"); + b2 = b.retourneFirstEnfant("style:text-properties"); if(b2!=null) { if(b2.getAttributs().get("fo:font-size")!=null) soustitre.put("TaillePolice", b2.getAttributs().get("fo:font-size")); if(b2.getAttributs().get("style:font-style-name")!=null) soustitre.put("StylePolice", b2.getAttributs().get("style:font-style-name")); @@ -1505,21 +1512,21 @@ public class Classeur2 { //legend - b = nodeGraphic.retourneFirstEnfantsByName("chart:legend"); + b = nodeGraphic.retourneFirstEnfant("chart:legend"); if(b!=null) { if(b.getAttributs().get("chart:legend-position")!=null) legend.put("LegendPosition", b.getAttributs().get("chart:legend-position")); if(b.getAttributs().get("chart:style-name")!=null) { legend.put("Style", b.getAttributs().get("chart:style-name")); - b = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", legend.get("Style")); + b = nodeGraphic.retourneFirstEnfant("style:style", "style:name", legend.get("Style")); if(b!=null) { - nodeAC b2 = b.retourneFirstEnfantsByName("style:graphic-properties"); + node b2 = b.retourneFirstEnfant("style:graphic-properties"); if(b2!=null) { if(b2.getAttributs().get("draw:fill-color")!=null) legend.put("CouleurArrierePlan", b2.getAttributs().get("draw:fill-color")); if(b2.getAttributs().get("draw:fill")!=null) legend.put("TypeArrierePlan", b2.getAttributs().get("draw:fill")); if(b2.getAttributs().get("svg:stroke-color")!=null) legend.put("CouleurBordure", b2.getAttributs().get("svg:stroke-color")); if(b2.getAttributs().get("svg:stroke-width")!=null) legend.put("EpaisseurBordure", b2.getAttributs().get("svg:stroke-width")); } - b2 = b.retourneFirstEnfantsByName("style:text-properties"); + b2 = b.retourneFirstEnfant("style:text-properties"); if(b2!=null) { if(b2.getAttributs().get("fo:font-size")!=null) legend.put("TaillePolice", b2.getAttributs().get("fo:font-size")); if(b2.getAttributs().get("style:font-style-name")!=null) legend.put("StylePolice", b2.getAttributs().get("style:font-style-name")); @@ -1537,7 +1544,7 @@ public class Classeur2 { // Aire - b = nodeGraphic.retourneFirstEnfantsByName("chart:plot-area"); + b = nodeGraphic.retourneFirstEnfant("chart:plot-area"); if(b!=null) { if(b.getAttributs().get("chart:style-name")!=null) airegraphic.put("Style", b.getAttributs().get("chart:style-name")); if(b.getAttributs().get("svg:height")!=null) airegraphic.put("hauteur", b.getAttributs().get("svg:height")); @@ -1545,9 +1552,9 @@ public class Classeur2 { if(b.getAttributs().get("chart:data-source-has-labels")!=null) airegraphic.put("EtiquettesData", b.getAttributs().get("chart:data-source-has-labels")); if(b.getAttributs().get("table:cell-range-address")!=null) airegraphic.put("TableData", b.getAttributs().get("table:cell-range-address")); if(airegraphic.get("Style")!=null) { - nodeAC b1 = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name",airegraphic.get("Style")); + node b1 = nodeGraphic.retourneFirstEnfant("style:style", "style:name",airegraphic.get("Style")); if(b1!=null) { - nodeAC b2 = b1.retourneFirstEnfantsByName("style:chart-properties"); + node b2 = b1.retourneFirstEnfant("style:chart-properties"); if(b2!=null) { if(b2.getAttributs().get("chart:data-label-number")!=null) airegraphic.put("FormatEtiquetteValeurSurGraphique", b2.getAttributs().get("chart:data-label-number")); if(b2.getAttributs().get("chart:data-label-symbol")!=null) airegraphic.put("AfficheSymbolCommeEtiquetteDeValeur", b2.getAttributs().get("chart:data-label-symbol")); @@ -1559,7 +1566,7 @@ public class Classeur2 { } // les axes - ArrayList C = nodeGraphic.retourneListEnfantsByName("chart:axis"); + ArrayList C = nodeGraphic.retourneAllEnfants("chart:axis"); for(int i = 0 ; i < C.size();i++) { // axe X principal if(C.get(i).getAttributs().get("chart:name").equals("primary-x")) { @@ -1581,7 +1588,7 @@ public class Classeur2 { } // les series - C = nodeGraphic.retourneListEnfantsByName("chart:series"); + C = nodeGraphic.retourneAllEnfants("chart:series"); for(int i = 0 ; i < C.size();i++) { addSerieProperties(series, C.get(i), i+1, nodeGraphic); } @@ -1590,7 +1597,7 @@ public class Classeur2 { } - private void addAxeSujet(nodeAC b, TreeMap axe) { + private void addAxeSujet(node b, TreeMap axe) { //en premier lieu les valeurs par défauts axe.put("AfficherGrillePrincipale", "false"); // à vérifier axe.put("AfficherGrilleSecondaire", "false"); @@ -1668,38 +1675,38 @@ public class Classeur2 { * @param b * @param a */ - public void addAxeProperties(TreeMap axe, nodeAC nodeAxe , nodeAC nodeGraphic) { + public void addAxeProperties(TreeMap axe, node nodeAxe , node nodeGraphic) { // valeur par défaut axe.put("AfficherGrillePrincipale", "false"); axe.put("AfficherGrilleSecondaire", "false"); - axe.put("TitreAxe", nodeAxe.retourneLesContenusEnfants("")); + axe.put("TitreAxe", nodeAxe.getContenuAvecTousLesContenusDesEnfants()); if(nodeAxe.getAttributs().get("chart:style-name")!=null) { axe.put("Style", nodeAxe.getAttributs().get("chart:style-name")); if(nodeAxe.getAttributs().get("chart:style-name")!=null) axe.put("Style", nodeAxe.getAttributs().get("chart:style-name")); if(nodeAxe.getAttributs().get("chartooo:axis-type")!=null) axe.put("Type", nodeAxe.getAttributs().get("chartooo:axis-type")); if(nodeAxe.getAttributs().get("chart:dimension")!=null) axe.put("Dimension", nodeAxe.getAttributs().get("chart:dimension")); - nodeAC b = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", axe.get("Style")); + node b = nodeGraphic.retourneFirstEnfant("style:style", "style:name", axe.get("Style")); if(b!=null) { //format nombre if(b.getAttributs().get("style:data-style-name")!=null) { - nodeAC b1 = nodeGraphic.retourneFirstEnfantsByName("number:number-style", "style:name", b.getAttributs().get("style:data-style-name")); + node b1 = nodeGraphic.retourneFirstEnfant("number:number-style", "style:name", b.getAttributs().get("style:data-style-name")); if(!b1.isVide()) { - nodeAC b2 = b1.retourneFirstEnfantsByName("style:text-properties"); + node b2 = b1.retourneFirstEnfant("style:text-properties"); if(b2.getAttributs().get("fo:color")!=null) axe.put("Format_1_CouleurNombre", b2.getAttributs().get("fo:color")); - b2 = b1.retourneFirstEnfantsByName("number:number"); + b2 = b1.retourneFirstEnfant("number:number"); if(b2.getAttributs().get("number:min-integer-digits")!=null) axe.put("Format_1_MinimumDigitNombre", b2.getAttributs().get("number:min-integer-digits")); if(b2.getAttributs().get("loext:min-decimal-places")!=null) axe.put("Format_1_MinimumDecimalNombre", b2.getAttributs().get("loext:min-decimal-places")); if(b2.getAttributs().get("number:decimal-places")!=null) axe.put("Format_1_DecimalPlaceNombre", b2.getAttributs().get("number:decimal-places")); - b2 = b1.retourneFirstEnfantsByName("style:map"); + b2 = b1.retourneFirstEnfant("style:map"); if(b2.getAttributs().get("style:condition")!=null) axe.put("FormatCondition", b2.getAttributs().get("style:condition")); //format 2 if(b2.getAttributs().get("style:apply-style-name")!=null) { - b1 = nodeGraphic.retourneFirstEnfantsByName("number:number-style", "style:name", b2.getAttributs().get("style:apply-style-name")); + b1 = nodeGraphic.retourneFirstEnfant("number:number-style", "style:name", b2.getAttributs().get("style:apply-style-name")); if(!b1.isVide()) { - b2 = b1.retourneFirstEnfantsByName("style:text-properties"); + b2 = b1.retourneFirstEnfant("style:text-properties"); if(b2.getAttributs().get("fo:color")!=null) axe.put("Format_2_CouleurNombre", b2.getAttributs().get("fo:color")); - b2 = b1.retourneFirstEnfantsByName("number:number"); + b2 = b1.retourneFirstEnfant("number:number"); if(b2.getAttributs().get("number:min-integer-digits")!=null) axe.put("Format_2_MinimumDigitNombre", b2.getAttributs().get("number:min-integer-digits")); if(b2.getAttributs().get("loext:min-decimal-places")!=null) axe.put("Format_2_MinimumDecimalNombre", b2.getAttributs().get("loext:min-decimal-places")); if(b2.getAttributs().get("number:decimal-places")!=null) axe.put("Format_2_DecimalPlaceNombre", b2.getAttributs().get("number:decimal-places")); @@ -1708,7 +1715,7 @@ public class Classeur2 { } } - nodeAC b2 = b.retourneFirstEnfantsByName("style:chart-properties"); + node b2 = b.retourneFirstEnfant("style:chart-properties"); if(b2!=null) { if(b2.getAttributs().get("chart:interval-minor-divisor")!=null) axe.put("NombreIntervalleSecondaire", b2.getAttributs().get("chart:interval-minor-divisor")); if(b2.getAttributs().get("chart:interval-major")!=null) axe.put("IntervallePrincipal", b2.getAttributs().get("chart:interval-major")); @@ -1729,13 +1736,13 @@ public class Classeur2 { if(b2.getAttributs().get("chart:tick-marks-major-inner")!=null) axe.put("MarquePrincipaleInterieur", b2.getAttributs().get("chart:tick-marks-major-inner")); } - b2 = b.retourneFirstEnfantsByName("style:graphic-properties"); + b2 = b.retourneFirstEnfant("style:graphic-properties"); if(b2!=null) { if(b2.getAttributs().get("svg:stroke-color")!=null) axe.put("CouleurMarque", b2.getAttributs().get("svg:stroke-color")); if(b2.getAttributs().get("svg:stroke-width")!=null) axe.put("EpaisseurMarque", b2.getAttributs().get("svg:stroke-width")); } - b2 = b.retourneFirstEnfantsByName("style:text-properties"); + b2 = b.retourneFirstEnfant("style:text-properties"); if(b2!=null) { if(b2.getAttributs().get("fo:font-size")!=null) axe.put("TaillePoliceEtiquetteAxe", b2.getAttributs().get("fo:font-size")); if(b2.getAttributs().get("style:font-style-name")!=null) axe.put("StylePoliceEtiquetteAxe", b2.getAttributs().get("style:font-style-name")); @@ -1747,16 +1754,16 @@ public class Classeur2 { } } // titre axe - b = nodeAxe.retourneFirstEnfantsByName("chart:title"); + b = nodeAxe.retourneFirstEnfant("chart:title"); if(b!=null) { - nodeAC b1 = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", b.getAttributs().get("chart:style-name")); + node b1 = nodeGraphic.retourneFirstEnfant("style:style", "style:name", b.getAttributs().get("chart:style-name")); if(b1!=null) { - nodeAC b2 = b1.retourneFirstEnfantsByName("style:chart-properties"); + node b2 = b1.retourneFirstEnfant("style:chart-properties"); if(b2!=null) { if(b2.getAttributs().get("style:rotation-angle")!=null) axe.put("RotationTitreAxe", b2.getAttributs().get("style:rotation-angle")); if(b2.getAttributs().get("chart:auto-position")!=null) axe.put("PositionAutomatiqueTitreAxe", b2.getAttributs().get("chart:auto-position")); } - b2 = b1.retourneFirstEnfantsByName("style:text-properties"); + b2 = b1.retourneFirstEnfant("style:text-properties"); if(b2!=null) { if(b2.getAttributs().get("fo:font-size")!=null) axe.put("TaillePoliceTitreAxe", b2.getAttributs().get("fo:font-size")); if(b2.getAttributs().get("fo:font-family")!=null) axe.put("PoliceTitreAxe", b2.getAttributs().get("fo:font-family")); @@ -1766,16 +1773,16 @@ public class Classeur2 { } } // données - b = nodeAxe.retourneFirstEnfantsByName("chart:categories"); + b = nodeAxe.retourneFirstEnfant("chart:categories"); if(b!=null) if(b.getAttributs().get("table:cell-range-address")!=null) axe.put("Data", b.getAttributs().get("table:cell-range-address")); // grille - b = nodeAxe.retourneFirstEnfantsByName("chart:grid"); + b = nodeAxe.retourneFirstEnfant("chart:grid"); if(b!=null) { if(b.getAttributs().get("chart:class")!=null) if(b.getAttributs().get("chart:class").equals("major")) { axe.put("AfficherGrillePrincipale", "true"); - nodeAC b1 = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", b.getAttributs().get("chart:style-name")); + node b1 = nodeGraphic.retourneFirstEnfant("style:style", "style:name", b.getAttributs().get("chart:style-name")); if(b1!=null) { - nodeAC b2 = b1.retourneFirstEnfantsByName("style:graphic-properties"); + node b2 = b1.retourneFirstEnfant("style:graphic-properties"); if(b2!=null) { if(b2.getAttributs().get("svg:stroke-color")!=null) axe.put("CouleurGrillePrincipale", b2.getAttributs().get("svg:stroke-color")); if(b2.getAttributs().get("svg:stroke-width")!=null) axe.put("EpaisseurGrillePrincipale", b2.getAttributs().get("svg:stroke-width")); @@ -1785,9 +1792,9 @@ public class Classeur2 { } if(b.getAttributs().get("chart:class")!=null) if(b.getAttributs().get("chart:class").equals("minor")) { axe.put("AfficherGrilleSecondaire", "true"); - nodeAC b1 = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", b.getAttributs().get("chart:style-name")); + node b1 = nodeGraphic.retourneFirstEnfant("style:style", "style:name", b.getAttributs().get("chart:style-name")); if(b1!=null) { - nodeAC b2 = b1.retourneFirstEnfantsByName("style:graphic-properties"); + node b2 = b1.retourneFirstEnfant("style:graphic-properties"); if(b2!=null) { if(b2.getAttributs().get("svg:stroke-color")!=null) axe.put("CouleurGrilleSecondaire", b2.getAttributs().get("svg:stroke-color")); if(b2.getAttributs().get("svg:stroke-width")!=null) axe.put("EpaisseurGrilleSecondaire", b2.getAttributs().get("svg:stroke-width")); @@ -1808,26 +1815,26 @@ public class Classeur2 { * @param nodeGraphic * @param a */ - public void addSerieProperties(TreeMap serie, nodeAC nodeSerie , Integer Num,nodeAC nodeGraphic) { + public void addSerieProperties(TreeMap serie, node nodeSerie , Integer Num,node nodeGraphic) { serie.put("Serie_"+ Num + "_Type",nodeSerie.getAttributs().get("chart:class")); serie.put("Serie_"+ Num + "_LabelData",nodeSerie.getAttributs().get("chart:label-cell-address")); serie.put("Serie_"+ Num + "_Data",nodeSerie.getAttributs().get("chart:values-cell-range-address")); serie.put("Serie_"+ Num + "_AxeAssocier",nodeSerie.getAttributs().get("chart:attached-axis")); - nodeAC b1 = nodeGraphic.retourneFirstEnfantsByName("style:style", "style:name", nodeSerie.getAttributs().get("chart:style-name")); + node b1 = nodeGraphic.retourneFirstEnfant("style:style", "style:name", nodeSerie.getAttributs().get("chart:style-name")); if(b1!=null) { - nodeAC b2 = b1.retourneFirstEnfantsByName("style:chart-properties"); + node b2 = b1.retourneFirstEnfant("style:chart-properties"); if(b2!=null) { if(b2.getAttributs().get("chart:link-data-style-to-source")!=null) serie.put("Serie_"+ Num + "_DataLierAlaSource", b2.getAttributs().get("chart:link-data-style-to-source")); if(b2.getAttributs().get("chart:data-label-symbol")!=null) serie.put("Serie_"+ Num + "_AfficheSymbolEtiquetteDeValeur", b2.getAttributs().get("chart:data-label-symbol")); if(b2.getAttributs().get("chart:data-label-text")!=null) serie.put("Serie_"+ Num + "_AfficheCategorieEtiquetteDeValeur", b2.getAttributs().get("chart:data-label-text")); if(b2.getAttributs().get("chart:data-label-number")!=null) serie.put("Serie_"+ Num + "_FormatEtiquetteValeurSurGraphique", b2.getAttributs().get("chart:data-label-number")); } - b2 = b1.retourneFirstEnfantsByName("style:graphic-properties"); + b2 = b1.retourneFirstEnfant("style:graphic-properties"); if(b2!=null) { if(b2.getAttributs().get("draw:stroke")!=null) serie.put("Serie_"+ Num + "_Bordures", b2.getAttributs().get("draw:stroke")); if(b2.getAttributs().get("draw:fill-color")!=null) serie.put("Serie_"+ Num + "_Couleur", b2.getAttributs().get("draw:fill-color")); } - b2 = b1.retourneFirstEnfantsByName("style:text-properties"); + b2 = b1.retourneFirstEnfant("style:text-properties"); if(b2!=null) { if(b2.getAttributs().get("fo:font-size")!=null) serie.put("Serie_"+ Num + "_TaillePolice", b2.getAttributs().get("fo:font-size")); if(b2.getAttributs().get("style:font-style-name")!=null) serie.put("Serie_"+ Num + "_StylePolice", b2.getAttributs().get("style:font-style-name")); @@ -1939,18 +1946,18 @@ public class Classeur2 { * @param nodeLigne * @param numLigne */ - public ligne(nodeAC nodeLigne, String numLigne) { + public ligne(node nodeLigne, String numLigne) { //lecture sujet (propertiesRow) RefLigne = numLigne; - nodeAC properties = nodeLigne.retourneFirstEnfantsByName("propertiesRow"); + node properties = nodeLigne.retourneFirstEnfant("propertiesRow"); if(properties.getAttributs().get("Style")!=null) propertiesRow.put("Style", properties.getAttributs().get("Style")); if(properties.getAttributs().get("HauteurLigne")!=null) propertiesRow.put("HauteurLigne", properties.getAttributs().get("HauteurLigne")); if(properties.getAttributs().get("RefLigne")!=null) propertiesRow.put("RefLigne", properties.getAttributs().get("RefLigne")); if(properties.getAttributs().get("evaluer")!=null) propertiesRow.put("evaluer", properties.getAttributs().get("evaluer")); if(properties.getAttributs().get("styletitre")!=null) propertiesRow.put("styletitre", properties.getAttributs().get("styletitre")); - nodeAC comm = nodeLigne.retourneFirstEnfantsByName("communication"); - if(!comm.isVide()) communication=comm.retourneLesContenusEnfants(""); + node comm = nodeLigne.retourneFirstEnfant("communication"); + if(!comm.isVide()) communication=comm.getContenuAvecTousLesContenusDesEnfants(); //lecture sujet les attributs de la ligne if(nodeLigne.getAttributs().get("evaluer")!=null) evaluer=nodeLigne.getAttributs().get("evaluer"); @@ -1959,7 +1966,7 @@ public class Classeur2 { if(nodeLigne.getAttributs().get("styletitre")!=null) styletitrePrincipale=nodeLigne.getAttributs().get("styletitre"); // les cellules de la ligne - ArrayList cels = nodeLigne.retourneListEnfantsByName("cellule"); + ArrayList cels = nodeLigne.retourneAllEnfants("cellule"); for(int i = 0 ; i < cels.size();i++) { cellules.put(i , new cellule(cels.get(i),numLigne,cels.get(i).getAttributs().get("RefColonne"))); } @@ -1973,7 +1980,7 @@ public class Classeur2 { * @param a * @throws IOException */ - public ligne(nodeAC nodeLigne, String numLigne,nodeAC nod, Integer indexStudent) throws IOException { + public ligne(node nodeLigne, String numLigne,node nod, Integer indexStudent) throws IOException { RefLigne= numLigne; int numeroLigne = Integer.valueOf(numLigne); @@ -1986,10 +1993,10 @@ public class Classeur2 { propertiesRow.put("evaluer", "false"); //Le style pour obtenir la hauteur de la ligne - ArrayList cels = nod.retourneListEnfantsByName("style:style", "style:name", propertiesRow.get("Style")); + ArrayList cels = nod.retourneAllEnfants("style:style", "style:name", propertiesRow.get("Style")); if(cels.size()>0) { - nodeAC b = cels.get(0).retourneFirstEnfantsByName("style:table-row-properties"); + node b = cels.get(0).retourneFirstEnfant("style:table-row-properties"); if(b!=null) { if(b.getAttributs().get("style:row-height")!=null) propertiesRow.put("HauteurLigne",b.getAttributs().get("style:row-height")); } @@ -1998,7 +2005,7 @@ public class Classeur2 { // chargement d'une nouvelle cellule - cels = nodeLigne.retourneListEnfantsByName("table:table-cell"); // cels sont les cellules de la ligne actuelle + cels = nodeLigne.retourneAllEnfants("table:table-cell"); // cels sont les cellules de la ligne actuelle int nombreRepetitioncolonne = 0; // concerne les cellules de la ligne actuelle (pas suivante) int nombreRepetitionligne = 0; for(int i = 0 ; i < cels.size();i++) { @@ -2115,14 +2122,14 @@ public class Classeur2 { * @param numLigne * @param numColonne */ - public cellule(nodeAC cel,String numLigne,String numColonne) { + public cellule(node cel,String numLigne,String numColonne) { refLigne = numLigne; refColonne = numColonne; RefColDansClasseur = ConvertirNumColonneEnString(Integer.valueOf(refColonne)); RefLigDansClasseur = refLigne; valeurParDefault(); - nodeAC c = cel.retourneFirstEnfantsByName("propertiesCell"); + node c = cel.retourneFirstEnfant("propertiesCell"); if(c.getAttributs().get("Style")!=null) propertiesCell.put("Style",c.getAttributs().get("Style")); if(c.getAttributs().get("TypeValue")!=null) propertiesCell.put("TypeValue",c.getAttributs().get("TypeValue")); if(c.getAttributs().get("DateValue")!=null) propertiesCell.put("DateValue",c.getAttributs().get("DateValue")); @@ -2196,7 +2203,7 @@ public class Classeur2 { if(cel.getAttributs().get("titre")!=null) titre = cel.getAttributs().get("titre"); // validation pour le sujet - nodeAC nods = cel.retourneFirstEnfantsByName("validation"); + node nods = cel.retourneFirstEnfant("validation"); if(!nods.isVide()) val.ajouteValidationProperties(nods); @@ -2214,7 +2221,7 @@ public class Classeur2 { * @param a * @throws IOException */ - public cellule(nodeAC cel,String numLigne,String numColonne,nodeAC nod, Integer indexStudent) throws IOException { + public cellule(node cel,String numLigne,String numColonne,node nod, Integer indexStudent) throws IOException { refLigne = numLigne; refColonne = numColonne; RefColDansClasseur = ConvertirNumColonneEnString(Integer.valueOf(refColonne)); @@ -2246,18 +2253,18 @@ public class Classeur2 { if(LargeurColonne!=null) if(!LargeurColonne.isEmpty()) propertiesCell.put("LargeurColonne",LargeurColonne); } - ArrayList c = cel.retourneListEnfantsByName("text:p"); + ArrayList c = cel.retourneAllEnfants("text:p"); if(c.size()>0) { for(int i = 0 ; i < c.size();i++) { - if(!c.get(i).chemin().contains("office:annotation")) { - propertiesCell.put("contenuCell", c.get(i).retourneLesContenusEnfants("")); - nodeAC ta = c.get(i).retourneFirstEnfantsByName("text:a"); + if(!c.get(i).getAllNameParents().contains("office:annotation")) { + propertiesCell.put("contenuCell", c.get(i).getContenuAvecTousLesContenusDesEnfants()); + node ta = c.get(i).retourneFirstEnfant("text:a"); if(ta!=null) { propertiesCell.put("TypeLien", ta.getAttributs().get("xlink:type")); propertiesCell.put("Lien", ta.getAttributs().get("xlink:ref")); } }else { - propertiesCell.put("commentaire", c.get(i).retourneLesContenusEnfants("")); + propertiesCell.put("commentaire", c.get(i).getContenuAvecTousLesContenusDesEnfants()); } } } @@ -2266,41 +2273,41 @@ public class Classeur2 { // En premier lieu le style par défaut de la colonne - ArrayList s1 = new ArrayList(); + ArrayList s1 = new ArrayList(); if(col!=null) { String st2 = col.getPropertiesColumn().get("Style"); - s1 = nod.retourneListEnfantsByName("style:style", "style:name",st2); + s1 = nod.retourneAllEnfants("style:style", "style:name",st2); if(s1.size()>0) { - nodeAC n1 = s1.get(0); + node n1 = s1.get(0); addProperties(n1); } st2 = col.getPropertiesColumn().get("StyleDefautCell"); - s1 = nod.retourneListEnfantsByName("style:style", "style:name",st2); + s1 = nod.retourneAllEnfants("style:style", "style:name",st2); if(s1.size()>0) { - nodeAC n1 = s1.get(0); + node n1 = s1.get(0); addProperties(n1); } } // En seconde lieu le style de la cellule qui écrase le style de la colonne - s1 = nod.retourneListEnfantsByName("style:style", "style:name",propertiesCell.get("Style")); + s1 = nod.retourneAllEnfants("style:style", "style:name",propertiesCell.get("Style")); if(s1.size()>0) { - nodeAC n1 = s1.get(0); + node n1 = s1.get(0); addProperties(n1); //le style du format String styleFormatData = n1.getAttributs().get("style:data-style-name"); if(styleFormatData!=null) { - s1 = nod.retourneListEnfantsByName("number:number-style", "style:name",styleFormatData); + s1 = nod.retourneAllEnfants("number:number-style", "style:name",styleFormatData); if(s1.size()>0) { n1 = s1.get(0); addProperties(n1); } - s1 = nod.retourneListEnfantsByName("number:date-style", "style:name",styleFormatData); + s1 = nod.retourneAllEnfants("number:date-style", "style:name",styleFormatData); if(s1.size()>0) { n1 = s1.get(0); addProperties(n1); } - s1 = nod.retourneListEnfantsByName("number:percentage-style", "style:name",styleFormatData); + s1 = nod.retourneAllEnfants("number:percentage-style", "style:name",styleFormatData); if(s1.size()>0) { n1 = s1.get(0); addProperties(n1); @@ -2312,12 +2319,12 @@ public class Classeur2 { // validation de données if(propertiesCell.get("NomValidation")!=null) { - ArrayList v = nod.retourneListEnfantsByName("table:content-validation","table:name", propertiesCell.get("NomValidation")); + ArrayList v = nod.retourneAllEnfants("table:content-validation","table:name", propertiesCell.get("NomValidation")); if(v.size()>0) val.ajouteValidationProperties(v.get(0)); } // graphique ancrer à la cellule - nodeAC g = cel.retourneFirstEnfantsByName("draw:frame"); + node g = cel.retourneFirstEnfant("draw:frame"); if(g!=null) { Graph = new graphic(g, nod, indexStudent); } @@ -2340,11 +2347,11 @@ public class Classeur2 { * Ajoute des propriétés à partir des différents styles (cellule, colonne) * @param n1 */ - public void addProperties(nodeAC n1) { + public void addProperties(node n1) { if(n1.getAttributs().get("style:data-style-name")!=null) getPropertiesCell().put("StyleDate",n1.getAttributs().get("style:data-style-name")); if(n1.getAttributs().get("style:parent-style-name")!=null) getPropertiesCell().put("StyleParent",n1.getAttributs().get("style:parent-style-name")); - nodeAC n2 = n1.retourneFirstEnfantsByName("style:table-cell-properties"); + node n2 = n1.retourneFirstEnfant("style:table-cell-properties"); if(n2!=null) { if(n2.getAttributs().get("fo:border")!=null) { getPropertiesCell().put("Bordures",n2.getAttributs().get("fo:border")); @@ -2363,32 +2370,32 @@ public class Classeur2 { if(n2.getAttributs().get("fo:wrap-option")!=null) getPropertiesCell().put("AjusteLeTexte",n2.getAttributs().get("fo:wrap-option")); } - n2 = n1.retourneFirstEnfantsByName("style:table-column-properties"); + n2 = n1.retourneFirstEnfant("style:table-column-properties"); if(n2!=null) { if(n2.getAttributs().get("style:column-width")!=null) getPropertiesCell().put("LargeurColonne",n2.getAttributs().get("style:column-width")); } - n2 = n1.retourneFirstEnfantsByName("style:paragraph-properties"); + n2 = n1.retourneFirstEnfant("style:paragraph-properties"); if(n2!=null) { if(n2.getAttributs().get("fo:margin-left")!=null) getPropertiesCell().put("MargeGauche",n2.getAttributs().get("fo:margin-left")); if(n2.getAttributs().get("fo:text-align")!=null) getPropertiesCell().put("AlignementText",n2.getAttributs().get("fo:text-align")); } - n2 = n1.retourneFirstEnfantsByName("style:text-properties"); + n2 = n1.retourneFirstEnfant("style:text-properties"); if(n2!=null) { if(n2.getAttributs().get("style:font-name")!=null) getPropertiesCell().put("Police",n2.getAttributs().get("style:font-name")); if(n2.getAttributs().get("fo:color")!=null) getPropertiesCell().put("CouleurPolice",n2.getAttributs().get("fo:color")); if(n2.getAttributs().get("fo:font-weight")!=null) getPropertiesCell().put("FontEpaisseur",n2.getAttributs().get("fo:font-weight")); if(n2.getAttributs().get("fo:font-size")!=null) getPropertiesCell().put("FontTaille",n2.getAttributs().get("fo:font-size")); } - n2 = n1.retourneFirstEnfantsByName("number:number"); + n2 = n1.retourneFirstEnfant("number:number"); if(n2!=null) { if(n2.getAttributs().get("number:min-integer-digits")!=null) getPropertiesCell().put("Format_NombreMiniDigit",n2.getAttributs().get("number:min-integer-digits")); if(n2.getAttributs().get("number:decimal-places")!=null) getPropertiesCell().put("Format_NombreDecimale",n2.getAttributs().get("number:decimal-places")); - n2 = n1.retourneFirstEnfantsByName("number:text"); + n2 = n1.retourneFirstEnfant("number:text"); if(n2!=null) if(n2.getContenu().size()>0) getPropertiesCell().put("Symbol-Unit",n2.getContenu().get(0)); } - n2 = n1.retourneFirstEnfantsByName("number:scientific-number"); + n2 = n1.retourneFirstEnfant("number:scientific-number"); if(n2!=null) { getPropertiesCell().put("Format_NotationScientifique","true"); if(n2.getAttributs().get("loext:forced-exponent-sign")!=null) getPropertiesCell().put("Format_SigneExposant",n2.getAttributs().get("loext:forced-exponent-sign")); @@ -2398,7 +2405,7 @@ public class Classeur2 { if(n2.getAttributs().get("loext:min-decimal-places")!=null) getPropertiesCell().put("Format_NombreMiniDecimale",n2.getAttributs().get("loext:min-decimal-places")); if(n2.getAttributs().get("number:decimal-places")!=null) getPropertiesCell().put("Format_NombreDecimale",n2.getAttributs().get("number:decimal-places")); } - n2 = n1.retourneFirstEnfantsByName("number:fraction"); + n2 = n1.retourneFirstEnfant("number:fraction"); if(n2!=null) { getPropertiesCell().put("Format_Fraction","true"); if(n2.getAttributs().get("number:min-integer-digits")!=null) getPropertiesCell().put("Format_NombreMiniEntierValeur",n2.getAttributs().get("number:min-integer-digits")); @@ -2410,28 +2417,28 @@ public class Classeur2 { } - n2 = n1.retourneFirstEnfantsByName("number:percentage-style"); + n2 = n1.retourneFirstEnfant("number:percentage-style"); if(n2!=null) { if(n2.getAttributs().get("number:min-integer-digits")!=null) getPropertiesCell().put("Format_NombreMiniDigit",n2.getAttributs().get("number:min-integer-digits")); if(n2.getAttributs().get("number:decimal-places")!=null) getPropertiesCell().put("Format_NombreDecimale",n2.getAttributs().get("number:decimal-places")); } if(n1.getAttributs().get("number:format-source")!=null) getPropertiesCell().put("Format_DateTexte",n1.getAttributs().get("number:format-source")); - n2 = n1.retourneFirstEnfantsByName("number:day"); + n2 = n1.retourneFirstEnfant("number:day"); if(n2!=null) { if(n2.getAttributs().size()==0) getPropertiesCell().put("Format_DateJour","default"); if(n2.getAttributs().get("number:style")!=null) getPropertiesCell().put("Format_DateJour",n2.getAttributs().get("number:style")); } - n2 = n1.retourneFirstEnfantsByName("number:day-of-week"); + n2 = n1.retourneFirstEnfant("number:day-of-week"); if(n2!=null) { if(n2.getAttributs().get("number:style")!=null) getPropertiesCell().put("Format_DateJourText",n2.getAttributs().get("number:style")); } - n2 = n1.retourneFirstEnfantsByName("number:month"); + n2 = n1.retourneFirstEnfant("number:month"); if(n2!=null) { if(n2.getAttributs().get("number:style")!=null) getPropertiesCell().put("Format_DateMois",n2.getAttributs().get("number:style")); if(n2.getAttributs().get("number:textual")!=null) getPropertiesCell().put("Format_DateMoisTextuel",n2.getAttributs().get("number:textual")); } - n2 = n1.retourneFirstEnfantsByName("number:year"); + n2 = n1.retourneFirstEnfant("number:year"); if(n2!=null) { if(n2.getAttributs().size()==0) getPropertiesCell().put("Format_DateAnnee","default"); if(n2.getAttributs().get("number:style")!=null) getPropertiesCell().put("Format_DateAnnee",n2.getAttributs().get("number:style")); @@ -2541,25 +2548,25 @@ public class Classeur2 { private String styletitre = "H1"; private TreeMap propertiesValidation = new TreeMap(); - public void ajouteValidationProperties(nodeAC v) { + public void ajouteValidationProperties(node v) { //chargement if(v.getAttributs().get("table:name")!=null) propertiesValidation.put("Nom", v.getAttributs().get("table:name")); if(v.getAttributs().get("table:base-cell-address")!=null) propertiesValidation.put("StartCell", v.getAttributs().get("table:base-cell-address")); if(v.getAttributs().get("table:allow-empty-cell")!=null) propertiesValidation.put("AutoriseVide", v.getAttributs().get("table:allow-empty-cell")); if(v.getAttributs().get("table:condition")!=null) propertiesValidation.put("Condition", v.getAttributs().get("table:condition")); - nodeAC v1 = v.retourneFirstEnfantsByName("table:help-message"); + node v1 = v.retourneFirstEnfant("table:help-message"); if(v1.getAttributs().get("table:title")!=null) propertiesValidation.put("TitreHelp", v1.getAttributs().get("table:title")); if(v1.getAttributs().get("table:display")!=null) propertiesValidation.put("AfficheHelp", v1.getAttributs().get("table:display")); - v1 = v1.retourneFirstEnfantsByName("text:p"); - propertiesValidation.put("ContenuMessageHelp", v1.retourneLesContenusEnfants("")); + v1 = v1.retourneFirstEnfant("text:p"); + propertiesValidation.put("ContenuMessageHelp", v1.getContenuAvecTousLesContenusDesEnfants()); - v1 = v.retourneFirstEnfantsByName("table:error-message"); + v1 = v.retourneFirstEnfant("table:error-message"); if(v1.getAttributs().get("table:title")!=null) propertiesValidation.put("TitreError", v1.getAttributs().get("table:title")); if(v1.getAttributs().get("table:display")!=null) propertiesValidation.put("AfficheError", v1.getAttributs().get("table:display")); if(v1.getAttributs().get("table:message-type")!=null) propertiesValidation.put("TypeError", v1.getAttributs().get("table:message-type")); - v1 = v1.retourneFirstEnfantsByName("text:p"); - propertiesValidation.put("ContenuMessageError", v1.retourneLesContenusEnfants("")); + v1 = v1.retourneFirstEnfant("text:p"); + propertiesValidation.put("ContenuMessageError", v1.getContenuAvecTousLesContenusDesEnfants()); //sujet if(v.getAttributs().get("Nom")!=null) propertiesValidation.put("Nom", v.getAttributs().get("Nom")); @@ -2732,13 +2739,13 @@ public class Classeur2 { // } - public nodeAC convertClasseurToNode(Ecriture.typeFichier type) throws IOException { + public node convertClasseurToNode(ecritureFileXML.typeFichier type) throws IOException { StringBuilder fichier = new StringBuilder(); fichier.append(""); fichier.append(""); } @@ -2850,8 +2856,8 @@ public class Classeur2 { fichier.append(""); - constructionNodeAvecString A = new constructionNodeAvecString(); - return A.NewNode(fichier.toString()); + new transformeXLMtoNode(fichier.toString(), false, null); + return transformeXLMtoNode.getNodeRoot(); } @@ -2933,6 +2939,7 @@ public class Classeur2 { } + @SuppressWarnings("unused") private void ecritureGraphique(BufferedWriter fichier, graphic k1, String prefix ) throws IOException { fichier.write(prefix+"\t\r"); diff --git a/src/calc/commandes.java b/src/calc/commandes.java index fbb3eb5..5d60a17 100644 --- a/src/calc/commandes.java +++ b/src/calc/commandes.java @@ -5,7 +5,7 @@ import java.io.IOException; import javax.swing.JTree; -import nodeAC.nodeAC; +import xml.node; /** @@ -16,13 +16,15 @@ import nodeAC.nodeAC; public class commandes { //** LenodeAC du fichier d'analyse - public static nodeAC sujet = new nodeAC(); - public static nodeAC sujetSauvegarde = new nodeAC(); + public static node sujet = new node(); + public static node sujetSauvegarde = new node(); public static JTree tree = new JTree(); - public static nodeAC nodeACCSV = null; + public static node nodeACCSV = null; //**version public static String version ="V2.0.1"; // La version actuelle + public static Boolean newVersion = false; + public static String nameNewVersion = ""; public static String branch = "Origin"; public static String Annee ="2022"; diff --git a/src/calcul/calculNombrePointEvaluation.java b/src/calcul/calculNombrePointEvaluation.java index 02b3efb..a013427 100644 --- a/src/calcul/calculNombrePointEvaluation.java +++ b/src/calcul/calculNombrePointEvaluation.java @@ -4,8 +4,10 @@ import java.util.ArrayList; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; + import javax.swing.JOptionPane; -import nodeAC.nodeAC; + +import xml.node; public class calculNombrePointEvaluation { @@ -15,18 +17,18 @@ public class calculNombrePointEvaluation { */ public static ArrayList calculPointDansToutExercice(){ ArrayList ListeNodeEvaluer = new ArrayList();; - for(int i = 0 ; i < calc.commandes.sujet.getNodes().size();i++) { - if(!calc.commandes.sujet.getNodes().get(i).getNomElt().equals("setting")) { - ListeNodeEvaluer.add(calc.commandes.sujet.getNodes().get(i).getNomElt() + " " + - String.valueOf(calculNombreDepoint(calc.commandes.sujet.getNodes().get(i), 0)) + " " + - String.valueOf(calc.commandes.sujet.getNodes().get(i).getAttributs().get("poids"))); + for(int i = 0 ; i < calc.commandes.sujet.getEnfants().size();i++) { + if(!calc.commandes.sujet.getEnfants().get(i).getNameNode().equals("setting")) { + ListeNodeEvaluer.add(calc.commandes.sujet.getEnfants().get(i).getNameNode() + " " + + String.valueOf(calculNombreDepoint(calc.commandes.sujet.getEnfants().get(i), 0)) + " " + + String.valueOf(calc.commandes.sujet.getEnfants().get(i).getAttributs().get("poids"))); } } return ListeNodeEvaluer; } - public static int calculNombreDepoint(nodeAC nod, int point) { + public static int calculNombreDepoint(node nod, int point) { if(nod.getAttributs().get("evaluer")!=null) if(nod.getAttributs().get("evaluer").equalsIgnoreCase("true")){ if(nod.getAttributs().get("allContent")!=null) { @@ -84,9 +86,9 @@ public class calculNombrePointEvaluation { } - for(int i = 0 ; i < nod.getNodes().size();i++) { - if(nod.getNodes().get(i)!=null) { - point = calculNombreDepoint(nod.getNodes().get(i), point); + for(int i = 0 ; i < nod.getEnfants().size();i++) { + if(nod.getEnfants().get(i)!=null) { + point = calculNombreDepoint(nod.getEnfants().get(i), point); } } } diff --git a/src/fenetres/afficheText.java b/src/fenetres/afficheText.java index cef07d4..c632c02 100644 --- a/src/fenetres/afficheText.java +++ b/src/fenetres/afficheText.java @@ -14,7 +14,7 @@ import javax.swing.JEditorPane; import calcul.calculIntervalleBaremeABCDE; import calcul.calculNotesProgression; import list.listeAttributsAnalyseCalc; -import nodeAC.nodeAC; +import xml.node; public class afficheText extends JEditorPane { @@ -28,11 +28,11 @@ public class afficheText extends JEditorPane { * Raffraichie l'affichage de la fenête create lorsque selection d'un nodeAC. * @param nod */ - public void refreshAffichage(nodeAC nod) { + public void refreshAffichage(node nod) { if(nod!=null) { setContentType("text/html"); - nodeAC nodeParent = nod.getParent(); + node nodeParent = nod.getParent(); String imageAllContent = ""; String imageTitre = ""; @@ -60,26 +60,26 @@ public class afficheText extends JEditorPane { sb.append(baliseStyle.balise()); - if(nodeParent!=null) sb.append("

Parent = " + nodeParent.getNomElt() + "


"); + if(nodeParent!=null) sb.append("

Parent = " + nodeParent.getNameNode() + "


"); sb.append("

Nom du nodeAC : " + nod.toString() + "



"); //********************************************* //** sous titre pour identifier les éléments ** //********************************************* - if(nod.getNomElt().equals("style:style")) { + if(nod.getNameNode().equals("style:style")) { sb.append("

Nom du style : " + nod.getAttributs().get("style:name")+ "


"); } - if(nod.getNomElt().equals("draw:frame")) { + if(nod.getNameNode().equals("draw:frame")) { // sb.append("

Nom du frame : " + evaluation.withoutCodeAndPointPourRechercheContenuExact(nod.getAttributs().get("draw:name"))+ "


"); } - if(nod.getNomElt().equals("style:master-page")) { + if(nod.getNameNode().equals("style:master-page")) { if(nod.getAttributs().get("style:display-name")!=null) { sb.append("

Nom du style de page : " + nod.getAttributs().get("style:display-name")+ "


"); }else { sb.append("

Nom du style de page : " + nod.getAttributs().get("style:name")+ "


"); } } - if(nod.getNomElt().equals("page")) { + if(nod.getNameNode().equals("page")) { // sb.append("

Numero absolue de la page : " + evaluation.withoutCodeAndPointPourRechercheContenuExact(nod.getAttributs().get("numeroabsolue")) // + " - Numerotation de la page : " + evaluation.withoutCodeAndPointPourRechercheContenuExact(nod.getAttributs().get("numero"))+ "


"); } @@ -251,9 +251,9 @@ public class afficheText extends JEditorPane { } - if(!nod.getNomElt().equals("fichier")&&!nod.getNomElt().equals("setting")&&!nod.getNomElt().equals("structurepage")) { - if(!nod.retourneLesContenusEnfants("").isEmpty()) { - sb.append("

Contenu


" + nod.retourneLesContenusEnfants("") ); + if(!nod.getNameNode().equals("fichier")&&!nod.getNameNode().equals("setting")&&!nod.getNameNode().equals("structurepage")) { + if(!nod.getContenuAvecTousLesContenusDesEnfants().isEmpty()) { + sb.append("

Contenu


" + nod.getContenuAvecTousLesContenusDesEnfants() ); } } @@ -272,10 +272,10 @@ public class afficheText extends JEditorPane { * @param nod * @param pointTotalNode */ - public void AfficheTotalPoint(nodeAC nod, int pointTotalNode) { + public void AfficheTotalPoint(node nod, int pointTotalNode) { setContentType("text/html"); - nodeAC nodeParent = nod.getParent(); + node nodeParent = nod.getParent(); StringBuilder sb = new StringBuilder(); @@ -283,9 +283,9 @@ public class afficheText extends JEditorPane { sb.append(baliseStyle.balise()); if(nodeParent!=null) { - sb.append("

Parent = " + nodeParent.getNomElt() + "


"); + sb.append("

Parent = " + nodeParent.getNameNode() + "


"); } - sb.append("

Total des points dans le nodeAC : " + nod.getNomElt() + "



"); + sb.append("

Total des points dans le nodeAC : " + nod.getNameNode() + "



"); sb.append("

Uniquement les nodes évalués

"); sb.append("

TOTAL POINT = " + String.valueOf(pointTotalNode) + "

"); diff --git a/src/fenetres/allContent.java b/src/fenetres/allContent.java index 3f11d19..d6ef07c 100644 --- a/src/fenetres/allContent.java +++ b/src/fenetres/allContent.java @@ -17,7 +17,8 @@ import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.border.EmptyBorder; -import nodeAC.nodeAC; +import xml.node; + public class allContent extends JFrame { @@ -28,7 +29,7 @@ public class allContent extends JFrame { private JPanel contentPane; private JTextField textFieldPoint; private JLabel lblExplication; - nodeAC nod; + node nod; afficheText J; JComboBox comboBoxValeur; String valeur="strict"; @@ -38,7 +39,7 @@ public class allContent extends JFrame { /** * Create the frame. */ - public allContent(nodeAC nod, afficheText J) { + public allContent(node nod, afficheText J) { this.nod=nod; this.J=J; @@ -57,7 +58,7 @@ public class allContent extends JFrame { setBounds(100, 100, 556, 326); setTitle("allContent"); - ImageIcon img = new ImageIcon(getClass().getResource("/evalwriter.png") ); + ImageIcon img = new ImageIcon(getClass().getResource("/resources/evalwriter.png") ); int screenWidth = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth(); int screenHeight = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight(); setLocation(( (screenWidth) - getWidth()) / 2, (screenHeight - getHeight()) / 2); diff --git a/src/fenetres/attributs.java b/src/fenetres/attributs.java index fa14274..e5f0580 100644 --- a/src/fenetres/attributs.java +++ b/src/fenetres/attributs.java @@ -30,7 +30,7 @@ import list.listeAttributCalcValeurPasModifiable; import list.listeAttributWriterPasEvaluableAvecCodeEvaluateur; import list.listeAttributsAnalyseCalc; import net.miginfocom.swing.MigLayout; -import nodeAC.nodeAC; +import xml.node; public class attributs extends JFrame { @@ -40,7 +40,7 @@ public class attributs extends JFrame { */ private static final long serialVersionUID = 1L; private JPanel contentPane; - nodeAC nod; + node nod; afficheText J; int indexSelect=0; @@ -52,7 +52,7 @@ public class attributs extends JFrame { /** * Create the frame. */ - public attributs(nodeAC nod, afficheText J) { + public attributs(node nod, afficheText J) { this.nod=nod; this.J=J; @@ -78,7 +78,7 @@ public class attributs extends JFrame { JPanel panelHaut = new JPanel(); contentPane.add(panelHaut, BorderLayout.NORTH); - JLabel lblNomNode = new JLabel(nod.getNomElt()); + JLabel lblNomNode = new JLabel(nod.getNameNode()); lblNomNode.setFont(new Font("Tahoma", Font.BOLD, 14)); panelHaut.add(lblNomNode); diff --git a/src/fenetres/create.java b/src/fenetres/create.java index 3deb3a6..e74b9f5 100644 --- a/src/fenetres/create.java +++ b/src/fenetres/create.java @@ -74,7 +74,7 @@ import fenetres.create_act.actTutoriels; import fenetres.create_act.actUpNode; import fenetres.create_act.actsautfalse; import fenetres.create_act.actsauttrue; -import nodeAC.nodeAC; +import xml.node; @@ -203,7 +203,7 @@ public final class create extends JFrame { public void mouseClicked(MouseEvent e) { if(tree.getSelectionPath()!=null) { selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); - nodeAC nod = (nodeAC) selectNode.getUserObject(); + node nod = (node) selectNode.getUserObject(); createPopupMenuTree(nod); textNodeSelect.refreshAffichage(nod); } @@ -247,7 +247,7 @@ public final class create extends JFrame { * Création du menu contextuel du tree * @return */ - private void createPopupMenuTree(nodeAC nod) { + private void createPopupMenuTree(node nod) { if(nod!=null) { @@ -255,7 +255,7 @@ public final class create extends JFrame { boolean nodeFormatageDirectePasDeTitrePasAddMenu = false; - nodeAC nodStyleParent = nod.retourneParentAyantLAttribut("style:name"); + node nodStyleParent = nod.retourneParentAyantLAttribut("style:name"); if(nodStyleParent!=null) { String nomDuStle = nodStyleParent.getAttributs().get("style:name"); Pattern p = Pattern.compile("^P[0-9]{1,}$|^T[0-9]{1,}$"); @@ -617,28 +617,7 @@ public final class create extends JFrame { this.dispose(); } -// public static void expandOrCollapsePath (JTree tree,TreePath treePath,int level,int currentLevel,boolean expand) { -// System.out.println("Exp level="+currentLevel+", exp="+expand + ", level=" + level); -// if (expand && level<=currentLevel && level>0) return; -// -// TreeNode treeNode = ( TreeNode ) treePath.getLastPathComponent(); -// TreeModel treeModel=tree.getModel(); -// if ( treeModel.getChildCount(treeNode) >= 0 ) { -// for ( int i = 0; i < treeModel.getChildCount(treeNode); i++ ) { -// TreeNode n = ( TreeNode )treeModel.getChild(treeNode, i); -// TreePath path = treePath.pathByAddingChild( n ); -// expandOrCollapsePath(tree,path,level,currentLevel+1,expand); -// } -// if (!expand && currentLevel0) { - if(nod.getLevel()>1 && !nod.chemin().contains("settings")) { + if(nod.getLevel()>1 && !nod.getAllNameParents().contains("settings")) { new attributs(nod,fenetres.create.getTextNodeSelect()); }else { JOptionPane.showMessageDialog(null, "Vous ne pouvez pas modifier directement les attributs de ce nodeAC." ); diff --git a/src/fenetres/create_act/actCoefficient.java b/src/fenetres/create_act/actCoefficient.java index 6aeebad..8975e75 100644 --- a/src/fenetres/create_act/actCoefficient.java +++ b/src/fenetres/create_act/actCoefficient.java @@ -9,7 +9,7 @@ import javax.swing.JOptionPane; import fenetres.baliseStyle; import fenetres.create; -import nodeAC.nodeAC; +import xml.node; public class actCoefficient extends AbstractAction{ @@ -24,7 +24,7 @@ public class actCoefficient extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); double poids = 1.00; if(nod.getAttributs().get("poids")!=null) { try { diff --git a/src/fenetres/create_act/actEvalInitialCreator.java b/src/fenetres/create_act/actEvalInitialCreator.java index 6481c54..d1474ef 100644 --- a/src/fenetres/create_act/actEvalInitialCreator.java +++ b/src/fenetres/create_act/actEvalInitialCreator.java @@ -9,7 +9,7 @@ import javax.swing.JOptionPane; import fenetres.baliseStyle; import fenetres.create; -import nodeAC.nodeAC; +import xml.node; public class actEvalInitialCreator extends AbstractAction{ @@ -24,7 +24,7 @@ public class actEvalInitialCreator extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); int point = 0; if(nod.getAttributs().get("evalNameInitialCreator")!=null) { point = Integer.valueOf(nod.getAttributs().get("evalNameInitialCreator")); diff --git a/src/fenetres/create_act/actEvalNameNodeNon.java b/src/fenetres/create_act/actEvalNameNodeNon.java index 9e3ef83..a2d891c 100644 --- a/src/fenetres/create_act/actEvalNameNodeNon.java +++ b/src/fenetres/create_act/actEvalNameNodeNon.java @@ -5,7 +5,7 @@ import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.Action; -import nodeAC.nodeAC; +import xml.node; public class actEvalNameNodeNon extends AbstractAction{ @@ -19,7 +19,7 @@ public class actEvalNameNodeNon extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); nod.supprimeAttribut("evalNameNode"); fenetres.create.getTextNodeSelect().refreshAffichage(nod); } diff --git a/src/fenetres/create_act/actEvalNameNodeOui.java b/src/fenetres/create_act/actEvalNameNodeOui.java index cb635f2..7b7b496 100644 --- a/src/fenetres/create_act/actEvalNameNodeOui.java +++ b/src/fenetres/create_act/actEvalNameNodeOui.java @@ -7,7 +7,7 @@ import javax.swing.Action; import javax.swing.JOptionPane; import fenetres.baliseStyle; -import nodeAC.nodeAC; +import xml.node; public class actEvalNameNodeOui extends AbstractAction{ @@ -21,7 +21,7 @@ public class actEvalNameNodeOui extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); int point = 0; if(nod.getAttributs().get("evalNameNode")!=null) { point = Integer.valueOf(nod.getAttributs().get("evalNameNode")); diff --git a/src/fenetres/create_act/actEvalNamePageNon.java b/src/fenetres/create_act/actEvalNamePageNon.java index 4f09b03..e62f072 100644 --- a/src/fenetres/create_act/actEvalNamePageNon.java +++ b/src/fenetres/create_act/actEvalNamePageNon.java @@ -5,7 +5,7 @@ import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.Action; -import nodeAC.nodeAC; +import xml.node; public class actEvalNamePageNon extends AbstractAction{ @@ -19,7 +19,7 @@ public class actEvalNamePageNon extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); nod.supprimeAttribut("evalNamePage"); fenetres.create.getTextNodeSelect().refreshAffichage(nod); } diff --git a/src/fenetres/create_act/actEvalNamePageOui.java b/src/fenetres/create_act/actEvalNamePageOui.java index a41d75c..2a9f94a 100644 --- a/src/fenetres/create_act/actEvalNamePageOui.java +++ b/src/fenetres/create_act/actEvalNamePageOui.java @@ -7,7 +7,7 @@ import javax.swing.Action; import javax.swing.JOptionPane; import fenetres.baliseStyle; -import nodeAC.nodeAC; +import xml.node; public class actEvalNamePageOui extends AbstractAction{ @@ -21,7 +21,7 @@ public class actEvalNamePageOui extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); int point = 0; if(nod.getAttributs().get("evalNamePage")!=null) { point = Integer.valueOf(nod.getAttributs().get("evalNamePage")); diff --git a/src/fenetres/create_act/actEvalueFalse.java b/src/fenetres/create_act/actEvalueFalse.java index 563e440..4dad4cc 100644 --- a/src/fenetres/create_act/actEvalueFalse.java +++ b/src/fenetres/create_act/actEvalueFalse.java @@ -10,7 +10,7 @@ import javax.swing.ImageIcon; import javax.swing.KeyStroke; import fenetres.create; -import nodeAC.nodeAC; +import xml.node; public class actEvalueFalse extends AbstractAction { @@ -27,7 +27,7 @@ public class actEvalueFalse extends AbstractAction { } public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); nod.evaluerFalse(); fenetres.create.getTextNodeSelect().refreshAffichage(nod); } diff --git a/src/fenetres/create_act/actEvalueTrue.java b/src/fenetres/create_act/actEvalueTrue.java index 651a905..04665f5 100644 --- a/src/fenetres/create_act/actEvalueTrue.java +++ b/src/fenetres/create_act/actEvalueTrue.java @@ -10,7 +10,7 @@ import javax.swing.ImageIcon; import javax.swing.KeyStroke; import fenetres.create; -import nodeAC.nodeAC; +import xml.node; public class actEvalueTrue extends AbstractAction{ @@ -26,7 +26,7 @@ public class actEvalueTrue extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); nod.evaluerTrue(); if(nod.getLevel()==1) { nod.addMenu(true); diff --git a/src/fenetres/create_act/actEvaluerTousEnfantsFalse.java b/src/fenetres/create_act/actEvaluerTousEnfantsFalse.java index da0971b..c622ec7 100644 --- a/src/fenetres/create_act/actEvaluerTousEnfantsFalse.java +++ b/src/fenetres/create_act/actEvaluerTousEnfantsFalse.java @@ -7,7 +7,7 @@ import javax.swing.Action; import javax.swing.ImageIcon; import fenetres.create; -import nodeAC.nodeAC; +import xml.node; public class actEvaluerTousEnfantsFalse extends AbstractAction{ @@ -23,8 +23,8 @@ public class actEvaluerTousEnfantsFalse extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); - if(!nod.getNomElt().equals("fichier")) { + node nod = (node) fenetres.create.getSelectNode().getUserObject(); + if(!nod.getNameNode().equals("fichier")) { nod.evaluerAllChildFalse(); fenetres.create.getTextNodeSelect().refreshAffichage(nod); } diff --git a/src/fenetres/create_act/actEvaluerTousEnfantsTrue.java b/src/fenetres/create_act/actEvaluerTousEnfantsTrue.java index 4bee813..0a01eba 100644 --- a/src/fenetres/create_act/actEvaluerTousEnfantsTrue.java +++ b/src/fenetres/create_act/actEvaluerTousEnfantsTrue.java @@ -7,7 +7,7 @@ import javax.swing.Action; import javax.swing.ImageIcon; import fenetres.create; -import nodeAC.nodeAC; +import xml.node; public class actEvaluerTousEnfantsTrue extends AbstractAction{ @@ -23,8 +23,8 @@ public class actEvaluerTousEnfantsTrue extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); - if(!nod.getNomElt().equals("fichier")) { + node nod = (node) fenetres.create.getSelectNode().getUserObject(); + if(!nod.getNameNode().equals("fichier")) { nod.evaluerAllChildTrue(); fenetres.create.getTextNodeSelect().refreshAffichage(nod); } diff --git a/src/fenetres/create_act/actNewFichierAnalyse.java b/src/fenetres/create_act/actNewFichierAnalyse.java index 43bf59c..124ca55 100644 --- a/src/fenetres/create_act/actNewFichierAnalyse.java +++ b/src/fenetres/create_act/actNewFichierAnalyse.java @@ -18,11 +18,11 @@ import org.xml.sax.SAXException; import AnalyseCalc.Classeur2; import fenetres.evaluate; -import nodeAC.Ecriture; -import nodeAC.LecturesDossiers; -import nodeAC.constructionNodeAvecString; -import nodeAC.nodeAC; import outils.verificationFichierAnalyse; +import xml.LecturesDossiers; +import xml.ecritureFileXML; +import xml.node; +import xml.transformeXLMtoNode; public class actNewFichierAnalyse extends AbstractAction{ @@ -64,10 +64,10 @@ public class actNewFichierAnalyse extends AbstractAction{ try { new LecturesDossiers(cheminVersFichier); - constructionNodeAvecString A = new constructionNodeAvecString(); - + //constructionNodeAvecString A = new constructionNodeAvecString(); + new transformeXLMtoNode(LecturesDossiers.getEC().getListeContentTableur().get(0), false, null); - calc.commandes.sujet = A.NewNode(LecturesDossiers.getEC().getListeContentTableur().get(0)); + calc.commandes.sujet = transformeXLMtoNode.getNodeRoot(); calc.commandes.sujet.getAttributs().put("analysis_filename","sujet.xml"); @@ -80,25 +80,30 @@ public class actNewFichierAnalyse extends AbstractAction{ //calc.commandes.sujet = ecritureSujet.nodePourEcritureSujet(calc.commandes.sujet,b,0); - calc.commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:change-start"); - calc.commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:change-end"); - calc.commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:tracked-changes"); - calc.commandes.sujet.supprimeTousLesNodesEnfantWithThisName("text:change"); + calc.commandes.sujet.removeAllEnfantWithThisName("text:change-start"); + calc.commandes.sujet.removeAllEnfantWithThisName("text:change-end"); + calc.commandes.sujet.removeAllEnfantWithThisName("text:tracked-changes"); + calc.commandes.sujet.removeAllEnfantWithThisName("text:change"); - Classeur2 ClasseurAnalyse = new Classeur2(calc.commandes.sujet,0,Ecriture.typeFichier.fichier_analyse); + + + ecritureFileXML.write(calc.commandes.sujet, "sujet.xml"); + Classeur2 ClasseurAnalyse = new Classeur2(calc.commandes.sujet,0,ecritureFileXML.typeFichier.fichier_analyse); - calc.commandes.sujet = ClasseurAnalyse.convertClasseurToNode(Ecriture.typeFichier.fichier_analyse); + calc.commandes.sujet = ClasseurAnalyse.convertClasseurToNode(ecritureFileXML.typeFichier.fichier_analyse); + ecritureFileXML.write(calc.commandes.sujet, "sujet2.xml"); + // Ecriture.ecritureNodeEnXML(calc.commandes.sujet, "sujet2", calc.commandes.path, Ecriture.typeFichier.fichier_etudiant); - new verificationFichierAnalyse(); +// new verificationFichierAnalyse(); if(calc.commandes.fichierAnalyseValide) { calc.commandes.sujetSauvegarde = calc.commandes.sujet.clone(); fenetres.create.constructionTree(); fenetres.create.getTextNodeSelect().afficheChargementFichierAnalyse(); }else { fenetres.create.getTextNodeSelect().setText("

Le fichier n'est pas valide

"); - calc.commandes.sujet = new nodeAC(); + calc.commandes.sujet = new node(); } } catch (ParserConfigurationException | SAXException | IOException | CloneNotSupportedException e1) { diff --git a/src/fenetres/create_act/actOpen.java b/src/fenetres/create_act/actOpen.java index 1335f65..8ff7fac 100644 --- a/src/fenetres/create_act/actOpen.java +++ b/src/fenetres/create_act/actOpen.java @@ -12,7 +12,7 @@ import javax.swing.KeyStroke; import fenetres.create; import fenetres.filechooserXML; -import nodeAC.nodeAC; +import xml.node; public class actOpen extends AbstractAction{ @@ -42,7 +42,7 @@ public class actOpen extends AbstractAction{ }else { fenetres.create.getTextNodeSelect().setContentType("text/html"); fenetres.create.getTextNodeSelect().setText("

Ce fichier n'est pas valide.

"); - calc.commandes.sujet = new nodeAC(); + calc.commandes.sujet = new node(); } } diff --git a/src/fenetres/create_act/actSave.java b/src/fenetres/create_act/actSave.java index e8c4d00..e4512fa 100644 --- a/src/fenetres/create_act/actSave.java +++ b/src/fenetres/create_act/actSave.java @@ -13,7 +13,8 @@ import javax.swing.JOptionPane; import javax.swing.KeyStroke; import fenetres.create; -import nodeAC.Ecriture; +import xml.ecritureFileXML; + public class actSave extends AbstractAction{ @@ -49,10 +50,11 @@ public class actSave extends AbstractAction{ if(input==0) { try { // verificationFichierAnalyse.MiseAJourHashNomFichierAnalyse(calc.commandes.nameSujet); - if(calc.commandes.sujet.retourneFirstEnfantsByName("settings")==null) { - Ecriture.addSetting(calc.commandes.sujet); + if(calc.commandes.sujet.retourneFirstEnfant("settings")==null) { + calc.commandes.sujet = ecritureFileXML.addSetting(calc.commandes.sujet); } - Ecriture.ecritureNodeEnXML(calc.commandes.sujet, calc.commandes.nameSujet , calc.commandes.PathFilenameAnalysis, Ecriture.typeFichier.fichier_analyse); + calc.commandes.sujet.saveNodeEnXML(calc.commandes.nameSujet , calc.commandes.PathFilenameAnalysis); +// ecritureFileXML.ecritureNodeEnXML(calc.commandes.sujet, calc.commandes.nameSujet , calc.commandes.PathFilenameAnalysis, ecritureFileXML.typeFichier.fichier_analyse); // Run.ecritureNodeEnXML(calc.commandes.sujet, calc.commandes.nameSujet ,calc.commandes.PathFilenameAnalysis,"sujet"); if(m.find()) { diff --git a/src/fenetres/create_act/actSaveAs.java b/src/fenetres/create_act/actSaveAs.java index 0def331..468876a 100644 --- a/src/fenetres/create_act/actSaveAs.java +++ b/src/fenetres/create_act/actSaveAs.java @@ -13,7 +13,7 @@ import javax.swing.ImageIcon; import javax.swing.JFileChooser; import fenetres.create; -import nodeAC.Ecriture; +import xml.ecritureFileXML; public class actSaveAs extends AbstractAction{ @@ -50,13 +50,16 @@ public class actSaveAs extends AbstractAction{ // verificationFichierAnalyse.MiseAJourHashNomFichierAnalyse(fileToSave.getName()); - if(calc.commandes.sujet.retourneFirstEnfantsByName("settings")==null) { - Ecriture.addSetting(calc.commandes.sujet); + if(calc.commandes.sujet.retourneFirstEnfant("settings")==null) { + calc.commandes.sujet = ecritureFileXML.addSetting(calc.commandes.sujet); } - Ecriture.ecritureNodeEnXML(calc.commandes.sujet, fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")),Ecriture.typeFichier.fichier_analyse); + calc.commandes.nameSujet = fileToSave.getName(); calc.commandes.PathFilenameAnalysis = fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")); + calc.commandes.sujet.saveNodeEnXML(fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\"))); +// ecritureFileXML.ecritureNodeEnXML(calc.commandes.sujet, fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")),Ecriture.typeFichier.fichier_analyse); + Pattern p = Pattern.compile("[.xml]\\b"); Matcher m = p.matcher(calc.commandes.nameSujet); diff --git a/src/fenetres/create_act/actSupprimeTitre.java b/src/fenetres/create_act/actSupprimeTitre.java index 9223e89..2f54351 100644 --- a/src/fenetres/create_act/actSupprimeTitre.java +++ b/src/fenetres/create_act/actSupprimeTitre.java @@ -5,7 +5,7 @@ import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.Action; -import nodeAC.nodeAC; +import xml.node; public class actSupprimeTitre extends AbstractAction{ @@ -19,7 +19,7 @@ public class actSupprimeTitre extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); if(nod.getAttributs().get("titre")!=null) { nod.supprimeAttribut("titre"); } diff --git a/src/fenetres/create_act/actTitre1.java b/src/fenetres/create_act/actTitre1.java index f4a4c61..a213f11 100644 --- a/src/fenetres/create_act/actTitre1.java +++ b/src/fenetres/create_act/actTitre1.java @@ -6,7 +6,7 @@ import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JOptionPane; -import nodeAC.nodeAC; +import xml.node; public class actTitre1 extends AbstractAction{ @@ -20,7 +20,7 @@ public class actTitre1 extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); String titre = ""; if(nod.getAttributs().get("titre1")!=null) { titre = nod.getAttributs().get("titre1"); diff --git a/src/fenetres/create_act/actTitre2.java b/src/fenetres/create_act/actTitre2.java index a05fd82..49170ca 100644 --- a/src/fenetres/create_act/actTitre2.java +++ b/src/fenetres/create_act/actTitre2.java @@ -6,7 +6,7 @@ import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JOptionPane; -import nodeAC.nodeAC; +import xml.node; public class actTitre2 extends AbstractAction{ @@ -20,7 +20,7 @@ public class actTitre2 extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); String titre = ""; if(nod.getAttributs().get("titre2")!=null) { titre = nod.getAttributs().get("titre2"); diff --git a/src/fenetres/create_act/actTitre3.java b/src/fenetres/create_act/actTitre3.java index fd62fce..34b64a3 100644 --- a/src/fenetres/create_act/actTitre3.java +++ b/src/fenetres/create_act/actTitre3.java @@ -6,7 +6,7 @@ import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JOptionPane; -import nodeAC.nodeAC; +import xml.node; public class actTitre3 extends AbstractAction{ @@ -20,7 +20,7 @@ public class actTitre3 extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); String titre = ""; if(nod.getAttributs().get("titre3")!=null) { titre = nod.getAttributs().get("titre3"); diff --git a/src/fenetres/create_act/actTitrePrincipal.java b/src/fenetres/create_act/actTitrePrincipal.java index ccca363..31f940c 100644 --- a/src/fenetres/create_act/actTitrePrincipal.java +++ b/src/fenetres/create_act/actTitrePrincipal.java @@ -6,7 +6,7 @@ import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JOptionPane; -import nodeAC.nodeAC; +import xml.node; public class actTitrePrincipal extends AbstractAction{ @@ -20,7 +20,7 @@ public class actTitrePrincipal extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); String titre = ""; if(nod.getAttributs().get("titre")!=null) { titre = nod.getAttributs().get("titre"); diff --git a/src/fenetres/create_act/actTotalPointNode.java b/src/fenetres/create_act/actTotalPointNode.java index b4eb7bc..3eea219 100644 --- a/src/fenetres/create_act/actTotalPointNode.java +++ b/src/fenetres/create_act/actTotalPointNode.java @@ -8,7 +8,7 @@ import javax.swing.ImageIcon; import calcul.calculNombrePointEvaluation; import fenetres.create; -import nodeAC.nodeAC; +import xml.node; public class actTotalPointNode extends AbstractAction{ @@ -24,7 +24,7 @@ public class actTotalPointNode extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); fenetres.create.getTextNodeSelect().AfficheTotalPoint(nod,calculNombrePointEvaluation.calculNombreDepoint(nod,0)); } diff --git a/src/fenetres/create_act/actevalNameCreator.java b/src/fenetres/create_act/actevalNameCreator.java index 39ebd24..66ec611 100644 --- a/src/fenetres/create_act/actevalNameCreator.java +++ b/src/fenetres/create_act/actevalNameCreator.java @@ -9,7 +9,7 @@ import javax.swing.JOptionPane; import fenetres.baliseStyle; import fenetres.create; -import nodeAC.nodeAC; +import xml.node; public class actevalNameCreator extends AbstractAction{ @@ -24,7 +24,7 @@ public class actevalNameCreator extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); int point = 0; if(nod.getAttributs().get("evalNameCreator")!=null) { point = Integer.valueOf(nod.getAttributs().get("evalNameCreator")); diff --git a/src/fenetres/create_act/actsautfalse.java b/src/fenetres/create_act/actsautfalse.java index 36743ca..6b652ac 100644 --- a/src/fenetres/create_act/actsautfalse.java +++ b/src/fenetres/create_act/actsautfalse.java @@ -7,7 +7,7 @@ import javax.swing.Action; import javax.swing.JOptionPane; import javax.swing.tree.TreeNode; -import nodeAC.nodeAC; +import xml.node; public class actsautfalse extends AbstractAction{ @@ -21,7 +21,7 @@ public class actsautfalse extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); TreeNode[] chemin = fenetres.create.getSelectNode().getPath(); boolean avertissement=false; for(int i = 0 ; i < chemin.length; i++) { diff --git a/src/fenetres/create_act/actsauttrue.java b/src/fenetres/create_act/actsauttrue.java index 78d310d..01ec561 100644 --- a/src/fenetres/create_act/actsauttrue.java +++ b/src/fenetres/create_act/actsauttrue.java @@ -7,7 +7,7 @@ import javax.swing.Action; import javax.swing.JOptionPane; import javax.swing.tree.TreeNode; -import nodeAC.nodeAC; +import xml.node; public class actsauttrue extends AbstractAction{ @@ -21,7 +21,7 @@ public class actsauttrue extends AbstractAction{ } @Override public void actionPerformed(ActionEvent e) { - nodeAC nod = (nodeAC) fenetres.create.getSelectNode().getUserObject(); + node nod = (node) fenetres.create.getSelectNode().getUserObject(); TreeNode[] chemin = fenetres.create.getSelectNode().getPath(); boolean avertissement=false; for(int i = 0 ; i < chemin.length; i++) { diff --git a/src/fenetres/filechooserXML.java b/src/fenetres/filechooserXML.java index 10304ba..6f8e2a6 100644 --- a/src/fenetres/filechooserXML.java +++ b/src/fenetres/filechooserXML.java @@ -12,8 +12,8 @@ import javax.swing.JFileChooser; import javax.swing.filechooser.FileNameExtensionFilter; import calc.commandes; -import nodeAC.constructionNodeAvecString; import outils.verificationFichierAnalyse; +import xml.transformeXLMtoNode; public class filechooserXML extends JFileChooser { @@ -73,8 +73,8 @@ public class filechooserXML extends JFileChooser { } //node.node2(targetString); - constructionNodeAvecString A = new constructionNodeAvecString(); - commandes.sujet = A.NewNode(targetString.toString().replace("\t","").replace("\r", "").replace("\n", "")); + new transformeXLMtoNode(targetString.toString(), false, null); + commandes.sujet = transformeXLMtoNode.getNodeRoot(); new verificationFichierAnalyse(); @@ -102,7 +102,7 @@ public class filechooserXML extends JFileChooser { */ public static boolean fichierSujetValide () { if(calc.commandes.sujet==null) {System.out.println("Le fichier est null."); return false;} - if(!calc.commandes.sujet.getNomElt().equals("classeur")) {System.out.println("Ce n'est pas un classeur."); calc.commandes.fichierAnalyseValide=true; return false;} + if(!calc.commandes.sujet.getNameNode().equals("classeur")) {System.out.println("Ce n'est pas un classeur."); calc.commandes.fichierAnalyseValide=true; return false;} calc.commandes.fichierAnalyseValide=false; return true; } diff --git a/src/fenetres/mainApp.java b/src/fenetres/mainApp.java index 5362797..edc7374 100644 --- a/src/fenetres/mainApp.java +++ b/src/fenetres/mainApp.java @@ -1,67 +1,89 @@ package fenetres; +import java.awt.Color; import java.awt.Font; +import java.awt.SystemColor; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.nio.file.Paths; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.SwingConstants; +import javax.swing.UIManager; -import java.awt.SystemColor; +import fenetres.create_act.actExit; +import onLine.verificationNewVersion; public class mainApp extends JFrame implements ActionListener{ - /** + /** * */ private static final long serialVersionUID = 1L; - - private JFrame frmEvalwriter; - - JButton btnCreate; - JButton actCharge; + + public static boolean isDispose = true; + private static JButton btnCreate; + private static JButton actCharge; + private static mainApp instance; /** * Launch the application. */ public static void main(String[] args) { - try { - mainApp window = new mainApp(); - window.frmEvalwriter.setVisible(true); - } catch (Exception e) { - e.printStackTrace(); - } + getInstance(); } /** * Create the application. */ - public mainApp() { - initialize(); + public static mainApp getInstance() { + if (isDispose) { + instance = new mainApp(); + } + instance.setVisible(true); + isDispose=false; + return instance; + } + + public static void ferme() { + if(!isDispose) { + isDispose=true; + instance.dispose(); + } } /** * Initialize the contents of the frame. */ - private void initialize() { + public mainApp() { + // Configurer l'arrière-plan et la taille de la police des tooltips globalement + UIManager.put("ToolTip.background", Color.YELLOW); + UIManager.put("ToolTip.font", new Font("SansSerif", Font.BOLD, 14)); + UIManager.put("ToolTip.initialDelay", 500); // Délai avant d'afficher le tooltip (500 ms) + UIManager.put("ToolTip.dismissDelay", 9000); // Durée d'affichage du tooltip (8 500 ms) - frmEvalwriter = new JFrame(); - frmEvalwriter.setResizable(false); - frmEvalwriter.setTitle(calc.commandes.Titre + " - " +calc.commandes.version + " "+ calc.commandes.branch); - frmEvalwriter.setBounds(100, 100, 500, 380); + try { + new verificationNewVersion(); + }catch (Exception e) { + System.out.println("Pas de connexion internet."); + } + + setResizable(false); + setTitle(calc.commandes.Titre + " - " +calc.commandes.version + " "+ calc.commandes.branch); + setBounds(100, 100, 530, 420); int screenWidth = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getWidth(); int screenHeight = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight(); - frmEvalwriter.setLocation(( (screenWidth) - frmEvalwriter.getWidth()) / 2, (screenHeight - frmEvalwriter.getHeight()) / 2); + setLocation(( (screenWidth) - getWidth()) / 2, (screenHeight - getHeight()) / 2); - frmEvalwriter.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - frmEvalwriter.getContentPane().setLayout(null); + setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + getContentPane().setLayout(null); ImageIcon img = new ImageIcon(mainApp.class.getResource("/resources/evalcalc.png")); - frmEvalwriter.setIconImage(img.getImage()); + setIconImage(img.getImage()); btnCreate = new JButton("Créer ou modifier un fichier d'analyse"); btnCreate.setHorizontalAlignment(SwingConstants.LEFT); @@ -69,8 +91,8 @@ public class mainApp extends JFrame implements ActionListener{ btnCreate.setFont(new Font("Arial", Font.BOLD, 16)); btnCreate.addActionListener(this); - btnCreate.setBounds(34, 180, 420, 60); - frmEvalwriter.getContentPane().add(btnCreate); + btnCreate.setBounds(10, 208, 494, 60); + getContentPane().add(btnCreate); actCharge = new JButton("Evaluer les fichiers des étudiants"); actCharge.setHorizontalAlignment(SwingConstants.LEFT); @@ -78,15 +100,18 @@ public class mainApp extends JFrame implements ActionListener{ actCharge.setBackground(SystemColor.inactiveCaption); actCharge.addActionListener(this); actCharge.setFont(new Font("Arial", Font.BOLD, 16)); - actCharge.setBounds(34, 110, 420, 60); - frmEvalwriter.getContentPane().add(actCharge); + actCharge.setBounds(10, 137, 494, 60); + getContentPane().add(actCharge); JLabel lblNewLabel = new JLabel(); lblNewLabel.setIcon(new ImageIcon(mainApp.class.getResource("/resources/accueilanalysecalc.png"))); + if(calc.commandes.newVersion) { + lblNewLabel.setIcon(new ImageIcon(getClass().getResource("/resources/accueil_new_version.png"))); + } lblNewLabel.setHorizontalAlignment(SwingConstants.LEFT); lblNewLabel.setFont(new Font("Pacifico", Font.PLAIN, 26)); - lblNewLabel.setBounds(33, 25, 421, 74); - frmEvalwriter.getContentPane().add(lblNewLabel); + lblNewLabel.setBounds(0, 0, 514, 126); + getContentPane().add(lblNewLabel); JButton btnNewButton = new JButton("Version & Documentation"); btnNewButton.setHorizontalAlignment(SwingConstants.LEFT); @@ -97,8 +122,8 @@ public class mainApp extends JFrame implements ActionListener{ }); btnNewButton.setFont(new Font("Arial", Font.PLAIN, 14)); btnNewButton.setIcon(new ImageIcon(mainApp.class.getResource("/resources/apropos.png"))); - btnNewButton.setBounds(34, 270, 200, 60); - frmEvalwriter.getContentPane().add(btnNewButton); + btnNewButton.setBounds(10, 279, 241, 60); + getContentPane().add(btnNewButton); JButton btnTutoriels = new JButton("Tutoriels"); btnTutoriels.addActionListener(new ActionListener() { @@ -116,8 +141,22 @@ public class mainApp extends JFrame implements ActionListener{ btnTutoriels.setIcon(new ImageIcon(mainApp.class.getResource("/resources/tutoriel.png"))); btnTutoriels.setHorizontalAlignment(SwingConstants.LEFT); btnTutoriels.setFont(new Font("Arial", Font.PLAIN, 14)); - btnTutoriels.setBounds(254, 270, 200, 60); - frmEvalwriter.getContentPane().add(btnTutoriels); + btnTutoriels.setBounds(261, 279, 243, 60); + getContentPane().add(btnTutoriels); + + JLabel lblpath = new JLabel(Paths.get("").toAbsolutePath().toString()); + lblpath.setFont(new Font("Tahoma", Font.PLAIN, 9)); + lblpath.setBounds(10, 340, 494, 30); + getContentPane().add(lblpath); + + addWindowListener(new java.awt.event.WindowAdapter() { + @Override + public void windowClosing(java.awt.event.WindowEvent windowEvent) { + new actExit().actionPerformed(null); + } + }); + + } @@ -125,13 +164,15 @@ public class mainApp extends JFrame implements ActionListener{ public void actionPerformed(ActionEvent e) { if(e.getSource()==btnCreate) { create.getInstance(); - frmEvalwriter.dispose(); + dispose(); } if(e.getSource()==actCharge) { new evaluate(); - frmEvalwriter.dispose(); + dispose(); } } + + } diff --git a/src/fenetres/setting.java b/src/fenetres/setting.java index 3c8a8d9..445dccd 100644 --- a/src/fenetres/setting.java +++ b/src/fenetres/setting.java @@ -28,9 +28,8 @@ import javax.swing.SwingConstants; import javax.swing.border.EmptyBorder; import javax.swing.filechooser.FileNameExtensionFilter; -import nodeAC.Ecriture; -import nodeAC.constructionNodeAvecString; -import nodeAC.nodeAC; +import xml.node; +import xml.transformeXLMtoNode; public final class setting extends JFrame { @@ -112,7 +111,7 @@ public final class setting extends JFrame { tabbedPane.addTab("CSV", img1, panelCSV, null); panelCSV.setLayout(null); - nodeAC nodCSV = calc.commandes.sujet.retourneFirstEnfantsByName("csv"); + node nodCSV = calc.commandes.sujet.retourneFirstEnfant("csv"); if(nodCSV==null) { JOptionPane.showMessageDialog(null, "Problème avec le fichier d'analyse.
Le nodeAC csv n'est pas dans le fichier."); dispose(); @@ -163,7 +162,7 @@ public final class setting extends JFrame { lblNewLabel_3.setBounds(42, 210, 186, 20); panelCSV.add(lblNewLabel_3); - nodeAC nodImportMoodle = nodCSV.retourneFirstEnfantsByName("import_moodle"); + node nodImportMoodle = nodCSV.retourneFirstEnfant("import_moodle"); if(nodImportMoodle==null) { JOptionPane.showMessageDialog(null, "Problème avec le fichier d'analyse.
le nodeAC import_moodle n'est pas dans le fichier d'analyse."); } @@ -221,7 +220,7 @@ public final class setting extends JFrame { panelZip.setLayout(null); tabbedPane.addTab("ZIP", img2, panelZip, null); - nodeAC nodZIP = calc.commandes.sujet.retourneFirstEnfantsByName("zip"); + node nodZIP = calc.commandes.sujet.retourneFirstEnfant("zip"); if(nodZIP==null) { JOptionPane.showMessageDialog(null, "Problème avec le fichier d'analyse.
Le nodeAC zip n'est pas dans le fichier."); dispose(); @@ -287,7 +286,7 @@ public final class setting extends JFrame { panelPlagiarism.setLayout(null); tabbedPane.addTab("Triche", img3, panelPlagiarism, null); - nodeAC nodTriche = calc.commandes.sujet.retourneFirstEnfantsByName("plagiarism"); + node nodTriche = calc.commandes.sujet.retourneFirstEnfant("plagiarism"); if(nodTriche==null) { JOptionPane.showMessageDialog(null, "Problème avec le fichier d'analyse.
Le nodeAC plagiarism n'est pas dans le fichier."); dispose(); @@ -370,7 +369,7 @@ public final class setting extends JFrame { panelTextSimilarity.setLayout(null); tabbedPane.addTab("Textes", img4, panelTextSimilarity, null); - nodeAC nodSimilitude = calc.commandes.sujet.retourneFirstEnfantsByName("text:similarity"); + node nodSimilitude = calc.commandes.sujet.retourneFirstEnfant("text:similarity"); if(nodSimilitude==null) { JOptionPane.showMessageDialog(null, "Problème avec le fichier d'analyse.
Le nodeAC text:similarity n'est pas dans le fichier."); dispose(); @@ -416,7 +415,7 @@ public final class setting extends JFrame { panelColor.setLayout(null); tabbedPane.addTab("Couleur", img5, panelColor, null); - nodeAC nodColor = calc.commandes.sujet.retourneFirstEnfantsByName("color"); + node nodColor = calc.commandes.sujet.retourneFirstEnfant("color"); if(nodColor==null) { JOptionPane.showMessageDialog(null, "Problème avec le fichier d'analyse.
Le nodeAC color n'est pas dans le fichier."); dispose(); @@ -608,14 +607,14 @@ public final class setting extends JFrame { if(!erreurValeursSaisies()&&!erreurToleranceCouleur()) { //*** Validation du fichier CSV - nodeAC nodCSV = calc.commandes.sujet.retourneFirstEnfantsByName("csv"); + node nodCSV = calc.commandes.sujet.retourneFirstEnfant("csv"); nodCSV.getAttributs().put("encoding", comboBoxEncodage.getSelectedItem().toString()); if(comboBoxSeparateur.getSelectedItem().equals("point virgule")) nodCSV.getAttributs().put("separator", ";"); if(comboBoxSeparateur.getSelectedItem().equals("virgule")) nodCSV.getAttributs().put("separator", ","); if(comboBoxSeparateur.getSelectedItem().equals("espace")) nodCSV.getAttributs().put("separator", " "); if(comboBoxSeparateur.getSelectedItem().equals("tabulation")) nodCSV.getAttributs().put("separator", "\t"); - nodeAC nodImport= calc.commandes.sujet.retourneFirstEnfantsByName("import_moodle"); + node nodImport= calc.commandes.sujet.retourneFirstEnfant("import_moodle"); nodImport.getAttributs().put("name", textFieldNomEtudiant.getText()); nodImport.getAttributs().put("firstname", textFieldPrenomEtudiant.getText()); @@ -623,7 +622,7 @@ public final class setting extends JFrame { nodImport.getAttributs().put("id", textFieldIDEtudiant.getText()); //*** Validation du ZIP - nodeAC nodZIP = calc.commandes.sujet.retourneFirstEnfantsByName("zip"); + node nodZIP = calc.commandes.sujet.retourneFirstEnfant("zip"); int valueNumeric = Integer.valueOf(textFieldSize.getText()); valueNumeric = valueNumeric*1000000; valueNumeric = valueNumeric - 2000000; @@ -632,17 +631,17 @@ public final class setting extends JFrame { //** Validation triche - nodeAC nodTriche = calc.commandes.sujet.retourneFirstEnfantsByName("plagiarism"); + node nodTriche = calc.commandes.sujet.retourneFirstEnfant("plagiarism"); nodTriche.getAttributs().put("number_match",textFieldMiniCorrespondance.getText()); nodTriche.getAttributs().put("mini_number_modification",textFieldNbrMiniModification.getText()); nodTriche.getAttributs().put("nombres_modifications_simultané_maxi",textFieldMaxiModificationSimul.getText()); //** Validation similitude - nodeAC nodSimilitude = calc.commandes.sujet.retourneFirstEnfantsByName("text:similarity"); + node nodSimilitude = calc.commandes.sujet.retourneFirstEnfant("text:similarity"); nodSimilitude.getAttributs().put("tolerance_text",textFieldTextSimilitude.getText()); //** Validation des tolérance couleur - nodeAC nodColor = calc.commandes.sujet.retourneFirstEnfantsByName("color"); + node nodColor = calc.commandes.sujet.retourneFirstEnfant("color"); nodColor.getAttributs().put("tolerance_rouge",textFieldRouge.getText()); nodColor.getAttributs().put("tolerance_vert",textFieldVert.getText()); nodColor.getAttributs().put("tolerance_bleu",textFieldBleu.getText()); @@ -665,11 +664,11 @@ public final class setting extends JFrame { }); /** - * Bouton extraire le nodeAC translate + * Bouton extraire le node translate */ btnExtraire.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - nodeAC nodeTransalte = calc.commandes.sujet.retourneFirstEnfantsByName("translation"); + node nodeTransalte = calc.commandes.sujet.retourneFirstEnfant("translation"); JFileChooser fileChooser = new JFileChooser(); fileChooser.setDialogTitle("Enregistrer sous..."); File file = null; @@ -682,9 +681,10 @@ public final class setting extends JFrame { File fileToSave = fileChooser.getSelectedFile(); try { -// Run.ecritureNodeEnXML(nodeTransalte, fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")),"" ); - Ecriture.ecritureNodeEnXML(nodeTransalte, fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")),Ecriture.typeFichier.fichier_analyse ); - +// + nodeTransalte.saveNodeEnXML(fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\"))); + + JOptionPane.showMessageDialog(null, "Le fichier \"" + fileToSave.getName() + ".xml\" a été renregistré.\n\nIl se trouve dans le dossier " + fileToSave.getPath()); } catch (IOException e1) { @@ -723,14 +723,13 @@ public final class setting extends JFrame { while ((line = br.readLine()) != null) { targetString.append(line); } - nodeAC nodeSetting = calc.commandes.sujet.retourneFirstEnfantsByName("setting"); - constructionNodeAvecString A = new constructionNodeAvecString(); - - nodeAC nodeTranslate2 = A.NewNode(targetString.toString()); - if(nodeTranslate2.getNomElt().equals("translation")) { - nodeSetting.getNodes().remove(calc.commandes.sujet.retourneFirstEnfantsByName("translation")); - nodeSetting.getNodes().add(nodeTranslate2); - JOptionPane.showMessageDialog(null, "Chargement du nouveau nodeAC de traduction."); + node nodeSetting = calc.commandes.sujet.retourneFirstEnfant("setting"); + new transformeXLMtoNode(targetString.toString(), false, null); + node nodeTranslate2 = transformeXLMtoNode.getNodeRoot(); + if(nodeTranslate2.getNameNode().equals("translation")) { + nodeSetting.getEnfants().remove(calc.commandes.sujet.retourneFirstEnfant("translation")); + nodeSetting.getEnfants().add(nodeTranslate2); + JOptionPane.showMessageDialog(null, "Chargement du nouveau node de traduction."); } }catch (Exception e1) { @@ -748,24 +747,24 @@ public final class setting extends JFrame { int a = JOptionPane.showConfirmDialog(null,"Voulez-vous remettre toutes les valeurs par défauts?", "Sélectionner un choix", JOptionPane.YES_NO_OPTION); if(a == JOptionPane.YES_NO_OPTION) { - nodeAC nodCSV = calc.commandes.sujet.retourneFirstEnfantsByName("csv"); + node nodCSV = calc.commandes.sujet.retourneFirstEnfant("csv"); nodCSV.getAttributs().put("encoding","UTF-8"); nodCSV.getAttributs().put("separator",";"); - nodeAC nodImportMoodle = nodCSV.retourneFirstEnfantsByName("import_moodle"); + node nodImportMoodle = nodCSV.retourneFirstEnfant("import_moodle"); nodImportMoodle.getAttributs().put("name","nom"); nodImportMoodle.getAttributs().put("email","adresse"); nodImportMoodle.getAttributs().put("firstname","prenom"); nodImportMoodle.getAttributs().put("id","identification"); - nodeAC nodZIP = calc.commandes.sujet.retourneFirstEnfantsByName("zip"); + node nodZIP = calc.commandes.sujet.retourneFirstEnfant("zip"); nodZIP.getAttributs().put("size","48000000"); nodZIP.getAttributs().put("nameZip","feedbackMoodle"); - nodeAC nodplagiarism = calc.commandes.sujet.retourneFirstEnfantsByName("plagiarism"); + node nodplagiarism = calc.commandes.sujet.retourneFirstEnfant("plagiarism"); nodplagiarism.getAttributs().put("number_match","2"); nodplagiarism.getAttributs().put("mini_number_modification","-1"); nodplagiarism.getAttributs().put("nombres_modifications_simultané_maxi","100"); - nodeAC nodSimilitude = calc.commandes.sujet.retourneFirstEnfantsByName("text:similarity"); + node nodSimilitude = calc.commandes.sujet.retourneFirstEnfant("text:similarity"); nodSimilitude.getAttributs().put("tolerance_text","0.79"); - nodeAC nodColor = calc.commandes.sujet.retourneFirstEnfantsByName("color"); + node nodColor = calc.commandes.sujet.retourneFirstEnfant("color"); nodColor.getAttributs().put("tolerance_rouge","30"); nodColor.getAttributs().put("tolerance_vert","30"); nodColor.getAttributs().put("tolerance_bleu","30"); @@ -808,32 +807,32 @@ public final class setting extends JFrame { private boolean actualise() { Boolean Valide = true; - nodeAC nodCSV = calc.commandes.sujet.retourneFirstEnfantsByName("csv"); + node nodCSV = calc.commandes.sujet.retourneFirstEnfant("csv"); if(nodCSV==null) { JOptionPane.showMessageDialog(null, "Problème avec le fichier d'analyse.
Le nodeAC csv n'est pas dans le fichier."); Valide =false; } - nodeAC nodImportMoodle = calc.commandes.sujet.retourneFirstEnfantsByName("import_moodle"); + node nodImportMoodle = calc.commandes.sujet.retourneFirstEnfant("import_moodle"); if(nodImportMoodle==null) { JOptionPane.showMessageDialog(null, "Problème avec le fichier d'analyse.
le nodeAC import_moodle n'est pas dans le fichier d'analyse."); Valide =false; } - nodeAC nodZIP = calc.commandes.sujet.retourneFirstEnfantsByName("zip"); + node nodZIP = calc.commandes.sujet.retourneFirstEnfant("zip"); if(nodZIP==null) { JOptionPane.showMessageDialog(null, "Problème avec le fichier d'analyse.
Le nodeAC zip n'est pas dans le fichier."); Valide =false; } - nodeAC nodTriche = calc.commandes.sujet.retourneFirstEnfantsByName("plagiarism"); + node nodTriche = calc.commandes.sujet.retourneFirstEnfant("plagiarism"); if(nodTriche==null) { JOptionPane.showMessageDialog(null, "Problème avec le fichier d'analyse.
Le nodeAC plagiarism n'est pas dans le fichier."); Valide =false; } - nodeAC nodSimilitude = calc.commandes.sujet.retourneFirstEnfantsByName("text:similarity"); + node nodSimilitude = calc.commandes.sujet.retourneFirstEnfant("text:similarity"); if(nodSimilitude==null) { JOptionPane.showMessageDialog(null, "Problème avec le fichier d'analyse.
Le nodeAC text:similarity n'est pas dans le fichier."); Valide =false; } - nodeAC nodColor = calc.commandes.sujet.retourneFirstEnfantsByName("color"); + node nodColor = calc.commandes.sujet.retourneFirstEnfant("color"); if(nodColor==null) { JOptionPane.showMessageDialog(null, "Problème avec le fichier d'analyse.
Le nodeAC color n'est pas dans le fichier."); Valide =false; diff --git a/src/nodeAC/Ecriture.java b/src/nodeAC/Ecriture.java index c00b0ba..461db54 100644 --- a/src/nodeAC/Ecriture.java +++ b/src/nodeAC/Ecriture.java @@ -8,6 +8,8 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Set; +import xml.node; + @@ -37,7 +39,7 @@ public class Ecriture { * @return Un StringBuilder contenant le format XML du node. * @throws IOException Exception */ - public static StringBuilder ecritureNodeWithIndent(nodeAC nod,Integer indent) { + public static StringBuilder ecritureNodeWithIndent(node nod,Integer indent) { if(nod!=null) { StringBuilder sb = new StringBuilder(); @@ -48,7 +50,7 @@ public class Ecriture { tab = tab + tab1; } - sb.append("\r\r"+tab + "<" + nod.getNomElt() ); + sb.append("\r\r"+tab + "<" + nod.getNameNode() ); Set keys = nod.getAttributs().keySet(); for (String key : keys) { sb.append(" " + key + "=\"" + nod.getAttributs().get(key)+"\""); @@ -62,11 +64,11 @@ public class Ecriture { } - if(nod.getNodes().size()>0) { + if(nod.getEnfants().size()>0) { indent++; - for(int i = 0 ; i < nod.getNodes().size(); i++) { - sb.append(ecritureNodeWithIndent(nod.getNodes().get(i),indent)); + for(int i = 0 ; i < nod.getEnfants().size(); i++) { + sb.append(ecritureNodeWithIndent(nod.getEnfants().get(i),indent)); if(nod.getContenu().size()>indexContenu) { sb.append(nod.getContenu().get(indexContenu)); @@ -74,10 +76,10 @@ public class Ecriture { } } - sb.append("\r\r" + tab +""); + sb.append("\r\r" + tab +""); }else { - sb.append(""); + sb.append(""); } return sb; @@ -184,7 +186,7 @@ public class Ecriture { * @param fourniDestination Le répertoire courant de l'application. * @throws IOException Exception Input Output */ - static public void ecritureNodeEnXML(nodeAC nod, String filename, String pathDestination, Ecriture.typeFichier Type) throws IOException { + static public void ecritureNodeEnXML(node nod, String filename, String pathDestination, Ecriture.typeFichier Type) throws IOException { if(nod==null) { System.out.println("Le node à écrire est null."); @@ -201,8 +203,8 @@ public class Ecriture { fichier.write(ecritureCommentaireFichierAnalyse()); //Suppression de l'historique - nodeAC n1 = nod.retourneFirstEnfantsByName("historique"); - if(n1!=null) nod.getNodes().remove(n1); + node n1 = nod.retourneFirstEnfant("historique"); + if(n1!=null) nod.getEnfants().remove(n1); } if(Type == Ecriture.typeFichier.verification_etudiant) { diff --git a/src/nodeAC/LecturesDossiers.java b/src/nodeAC/LecturesDossiers.java index 095b2cf..39bdcce 100644 --- a/src/nodeAC/LecturesDossiers.java +++ b/src/nodeAC/LecturesDossiers.java @@ -17,6 +17,8 @@ import org.xml.sax.SAXException; import net.lingala.zip4j.core.ZipFile; import net.lingala.zip4j.model.FileHeader; +import xml.node; +import xml.transformeXLMtoNode; public class LecturesDossiers { @@ -74,11 +76,12 @@ public class LecturesDossiers { if(fichierAnalyseods!=null) { - constructionNodeAvecString A = new constructionNodeAvecString(); - nodeAC nod = A.NewNode(fichierAnalyseods); + new transformeXLMtoNode(fichierAnalyseods, false, null); + node nod = transformeXLMtoNode.getNodeRoot(); fichierAnalyseods = Ecriture.ecritureNodeWithIndent(nod,0).toString(); - nod = A.NewNode(ContentObjectGraphicTableur); + new transformeXLMtoNode(ContentObjectGraphicTableur, false, null); + nod = transformeXLMtoNode.getNodeRoot(); ContentObjectGraphicTableur = Ecriture.ecritureNodeWithIndent(nod,0).toString(); } @@ -112,13 +115,15 @@ public class LecturesDossiers { ContentObjectGraphicTableur = ContenuContentObject(fichiers[j]); fichierAnalyseods = fichiers[j].getName(); if(fichierAnalyseods!=null) { - constructionNodeAvecString A = new constructionNodeAvecString(); - nodeAC nod = A.NewNode(fichierAnalyseods); + new transformeXLMtoNode(fichierAnalyseods, false, null); + node nod = transformeXLMtoNode.getNodeRoot(); Ecriture.ecritureNodeEnXML(nod, "fichierAnalyseods", patch, Ecriture.typeFichier.fichier_etudiant); fichierAnalyseods = Ecriture.ecritureNodeWithIndent(nod,0).toString(); if(ContentObjectGraphicTableur!=null) { - nod = A.NewNode(ContentObjectGraphicTableur); +// nod = A.NewNode(ContentObjectGraphicTableur); + new transformeXLMtoNode(ContentObjectGraphicTableur, false, null); + nod = transformeXLMtoNode.getNodeRoot(); ContentObjectGraphicTableur = Ecriture.ecritureNodeWithIndent(nod,0).toString(); } diff --git a/src/nodeAC/hashNodeAC.java b/src/nodeAC/hashNodeAC.java deleted file mode 100644 index 743018f..0000000 --- a/src/nodeAC/hashNodeAC.java +++ /dev/null @@ -1,141 +0,0 @@ -package nodeAC; - -import java.util.Set; - - - -public class hashNodeAC { - - - - public static Integer HashNode(nodeAC nod, Integer hash) throws CloneNotSupportedException { - - if(nod!=null) { - - // supprime le nodeAC historique - nodeAC n1 = nod.retourneFirstEnfantsByName("historique"); - nod.getNodes().remove(n1); - - Set key = nod.getAttributs().keySet(); - for (String k : key) { - String value = nod.getAttributs().get(k); - if(k.equals("notefrom")||k.equals("progression")) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - if(k.equals("baremeABC")&&value.equalsIgnoreCase("true")) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - if(k.equals("controleDateCreation")&&value.equalsIgnoreCase("true")) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - if(k.equals("presenceMetaSujet")&&value.equalsIgnoreCase("true")) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - if(k.equals("historiquePresent")&&value.equalsIgnoreCase("true")) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - if(k.equals("controle_Initial_Creator")&&value.equalsIgnoreCase("true")) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - if(k.equals("metaSujet")) { - if(nod.getAttributs().get("presenceMetaSujet")!=null)if(nod.getAttributs().get("presenceMetaSujet").equalsIgnoreCase("true")) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - } - if(k.equals("creationDate")) { - if(nod.getAttributs().get("controleDateCreation")!=null)if(nod.getAttributs().get("controleDateCreation").equalsIgnoreCase("true")) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - } - if(k.equals("Initial_Creator")) { - if(nod.getAttributs().get("controle_Initial_Creator")!=null)if(nod.getAttributs().get("controle_Initial_Creator").equalsIgnoreCase("true")) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - } - } - - - - for(int i = 0 ; i < nod.getNodes().size(); i++) { - if(!nod.getNodes().get(i).equals("setting")) { - hash = HashNodeInterne(nod.getNodes().get(i), hash); - } - } - - return hash; - } - - return 0 ; - - } - - - -private static Integer HashNodeInterne(nodeAC nod, Integer hash) throws CloneNotSupportedException { - - if(nod!=null) { - if(nod.getAttributs().get("evaleur")!=null) { - if(nod.getAttributs().get("evaleur").equalsIgnoreCase("true")) { - hash = hash + nod.getNomElt().hashCode(); - - Set key = nod.getAttributs().keySet(); - for (String k : key) { - String value = nod.getAttributs().get(k); - if(value.contains("‽")||value.contains("‼")) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - if(k.equals("evalNameNode")&&Integer.valueOf(value)>0) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - if(k.equals("evalNameInitialCreator")&&Integer.valueOf(value)>0) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - if(k.equals("evalNameCreator")&&Integer.valueOf(value)>0) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - if(k.equals("allContent")&&(!value.equals("strict0")&&!value.equals("strictSansEspace0")&&!value.equals("environ0"))) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - if(k.equals("recherche_contenu_exact")&&value.equalsIgnoreCase("true")) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - if(k.equals("recherche_index")&&value.equalsIgnoreCase("true")) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - if(k.equals("index")) { - hash = hash + k.hashCode(); - hash = hash +value.hashCode(); - } - } - - hash = hash + nod.getContenu().toString().hashCode(); - - for(int i = 0 ; i < nod.getNodes().size(); i++) { - hash = HashNodeInterne(nod.getNodes().get(i),hash); - } - } - } - } - - return hash ; - } - - - -} diff --git a/src/onLine/verificationNewVersion.java b/src/onLine/verificationNewVersion.java new file mode 100644 index 0000000..63d9d3b --- /dev/null +++ b/src/onLine/verificationNewVersion.java @@ -0,0 +1,143 @@ +package onLine; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.InetAddress; +import java.net.URL; +import java.net.UnknownHostException; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + + +public class verificationNewVersion { + + + + public verificationNewVersion() { + + + String host = "forge.chapril.org"; + int timeout = 2000; // 5 seconds + + // Vérifier la connectivité avec un ping + try { + InetAddress address = InetAddress.getByName(host); + if (!address.isReachable(timeout)) { + System.err.println("Host is not reachable: " + host); + return; // Sortir de la procédure si le ping échoue + } + } catch (UnknownHostException e) { + System.err.println("Unknown host: " + host); + return; // Sortir de la procédure si l'hôte est inconnu + } catch (IOException e) { + System.err.println("IOException during ping: " + e.getMessage()); + return; // Sortir de la procédure en cas d'IOException + } + + HttpURLConnection conn = null ; + try { + + URL url = new URL("https://forge.chapril.org/pablo/analyseCalc/releases"); + conn = (HttpURLConnection) url.openConnection(); + conn.setRequestMethod("GET"); + conn.setConnectTimeout(5000); // 5 seconds timeout for connection + conn.setReadTimeout(5000); // 5 seconds timeout for reading + + int status = conn.getResponseCode(); + if (status != HttpURLConnection.HTTP_OK) { + throw new IOException("HTTP error code: " + status); + } + + + BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); + + String line; + StringBuilder content = new StringBuilder(); + + while ((line = reader.readLine()) != null) { + content.append(line); + } + reader.close(); + conn.disconnect(); + + // Motif de la sous-chaîne recherchée Vx.x.x + String pattern = "V\\d+\\.\\d+\\.\\d+"; + + // Création du motif de recherche + Pattern regex = Pattern.compile(pattern); + + // Création du matcher pour l'entrée donnée + Matcher matcher = regex.matcher(content); + + //Version max + int versionMax = 0; + + // Parcours des correspondances + while (matcher.find()) { + // Récupération de la sous-chaîne correspondante + String match = matcher.group(); + + // Conversion en nombre entier + String numericString = match.replaceAll("[^\\d.]", ""); + + + versionMax = versionNombre(numericString); + + if(versionMax>0) { + System.out.println("La nouvelle version est disponible !"); + System.out.println(match); + calc.commandes.newVersion = true; + calc.commandes.nameNewVersion = match; + return; + } + } + } catch (IOException e) { + if(conn!=null) conn.disconnect(); + e.printStackTrace(); + } + + } + + + /** + * Retour un entier qui correspond à la version.
+ * La première valeur est multipliée par 1 000 000.
+ * La seconde valeur est multipliée par 1 000.
+ * La troisième valeur n'est pas multipliée. + * + * @param versionForge + * @return + */ + public static Integer versionNombre(String versionForge) { + String[] VersionApplicationSplit = calc.commandes.version.replaceAll("V", "").split("\\."); + String[] VersionForgeSplit = versionForge.split("\\."); + + boolean newVersion = false; + + if( Integer.valueOf(VersionApplicationSplit[0]) < Integer.valueOf(VersionForgeSplit[0]) ) { + newVersion=true; + }else if ((Integer.valueOf(VersionApplicationSplit[0])==Integer.valueOf(VersionForgeSplit[0])) + && (Integer.valueOf(VersionApplicationSplit[1]) < Integer.valueOf(VersionForgeSplit[1]))) { + newVersion=true; + }else if ((Integer.valueOf(VersionApplicationSplit[0])==Integer.valueOf(VersionForgeSplit[0])) + && (Integer.valueOf(VersionApplicationSplit[1]) == Integer.valueOf(VersionForgeSplit[1])) + && (Integer.valueOf(VersionApplicationSplit[2])

Ce fichier d'analyse est null.

", "Erreur", JOptionPane.ERROR_MESSAGE ); } - if(calc.commandes.fichierAnalyseValide) if(!calc.commandes.sujet.getNomElt().equals("classeur")) { + if(calc.commandes.fichierAnalyseValide) if(!calc.commandes.sujet.getNameNode().equals("root")) { calc.commandes.fichierAnalyseValide=false; JOptionPane.showMessageDialog(null, "

Ce fichier n'est pas un fichier
d'analyseCalc

", "Erreur", JOptionPane.ERROR_MESSAGE ); } @@ -41,19 +41,18 @@ public class verificationFichierAnalyse { calc.commandes.fichierAnalyseValide=false; JOptionPane.showMessageDialog(null, "

Le premier node du classeur n'a pas d'attribut.

", "Erreur", JOptionPane.ERROR_MESSAGE ); }else { - if(calc.commandes.fichierAnalyseValide)verificationNodeFichier(calc.commandes.sujet.getAttributs()); + if(calc.commandes.fichierAnalyseValide) verificationNodeFichier(calc.commandes.sujet.getAttributs()); } //** verification du setting if(calc.commandes.fichierAnalyseValide) if(calc.commandes.sujet.containChildByName("settings")) { - verificationNodeSetting(calc.commandes.sujet.retourneFirstEnfantsByName("settings")); + verificationNodeSetting(calc.commandes.sujet.retourneFirstEnfant("settings")); } //** Verification du hash et du nom du fichier d'analyse if(calc.commandes.fichierAnalyseValide) { - new hashNodeAC(); - - calc.commandes.hash = String.valueOf( hashNodeAC.HashNode(calc.commandes.sujet,0)); + + calc.commandes.hash = String.valueOf(calc.commandes.sujet.hashCode()); if(calc.commandes.sujet.getAttributs().get("analysis_filename")!=null) { if(!calc.commandes.sujet.getAttributs().get("analysis_filename").equals(calc.commandes.nameSujet)) { calc.commandes.MAJnameAnalysisFile=true; @@ -82,7 +81,7 @@ public class verificationFichierAnalyse { * Vérification des attributs du node classeur. * @param attributs */ - private static void verificationNodeFichier(Attributs attributs) { + private static void verificationNodeFichier(HashMap attributs) { if(attributs.get("metaSujet")==null) { @@ -178,7 +177,7 @@ public class verificationFichierAnalyse { * @param attribut * @param nameNode */ - private static void verificationNodeSetting(nodeAC setting) { + private static void verificationNodeSetting(node setting) { if(setting.getAttributs().get("culture") != null) { if(!setting.getAttributs().get("culture").equals("FR")) { @@ -188,7 +187,7 @@ public class verificationFichierAnalyse { if(setting.containChildByName("csv")) { - nodeAC csv = setting.retourneFirstEnfantsByName("csv"); + node csv = setting.retourneFirstEnfant("csv"); if(csv.getAttributs().get("encoding") != null) { if(!csv.getAttributs().get("encoding").equals("UTF-8") && !csv.getAttributs().get("encoding").equals("US-ASCII") && !csv.getAttributs().get("encoding").equals("ISO-8859-1") && !csv.getAttributs().get("encoding").equals("UTF-16BE") && !csv.getAttributs().get("encoding").equals("UTF-16LE") && !csv.getAttributs().get("encoding").equals("UTF-16")) { @@ -203,7 +202,7 @@ public class verificationFichierAnalyse { if(setting.containChildByName("zip")) { - nodeAC zip = setting.retourneFirstEnfantsByName("zip"); + node zip = setting.retourneFirstEnfant("zip"); if(zip.getAttributs().get("size") != null) { Long size = (long) 0; try { @@ -239,7 +238,7 @@ public class verificationFichierAnalyse { if(setting.containChildByName("plagiarism")) { - nodeAC plagiarism = setting.retourneFirstEnfantsByName("plagiarism"); + node plagiarism = setting.retourneFirstEnfant("plagiarism"); if(plagiarism.getAttributs().get("number_match") != null) { int number_match = -1; try { @@ -287,7 +286,7 @@ public class verificationFichierAnalyse { } if(setting.containChildByName("text:similarity")) { - nodeAC similarity = setting.retourneFirstEnfantsByName("text:similarity"); + node similarity = setting.retourneFirstEnfant("text:similarity"); if(similarity.getAttributs().get("tolerance_text")!=null) { double tolerance_text = 0.0; try { @@ -323,8 +322,7 @@ public class verificationFichierAnalyse { */ public void MiseAJourFichierAnalyse() throws CloneNotSupportedException, IOException { - new hashNodeAC(); - calc.commandes.hash = String.valueOf( hashNodeAC.HashNode(calc.commandes.sujet, 0)); + calc.commandes.hash = String.valueOf(calc.commandes.sujet.hashCode()); boolean maj =false; if(calc.commandes.sujet.getAttributs().get("hash")==null) { @@ -396,7 +394,7 @@ public class verificationFichierAnalyse { public static void MiseAJourHashNomFichierAnalyse(String nomFichier) throws CloneNotSupportedException, IOException { if(!nomFichier.contains(".xml")) nomFichier= nomFichier+".xml"; - calc.commandes.hash = String.valueOf(hashNodeAC.HashNode(calc.commandes.sujet,0)); + calc.commandes.hash = String.valueOf(calc.commandes.sujet.hashCode()); calc.commandes.sujet.getAttributs().put("hash",String.valueOf(calc.commandes.hash)); calc.commandes.analysis_filename = nomFichier; diff --git a/src/resources/accueil_new_version.png b/src/resources/accueil_new_version.png new file mode 100644 index 0000000..ce4d93f Binary files /dev/null and b/src/resources/accueil_new_version.png differ diff --git a/src/resources/accueilanalysecalc.png b/src/resources/accueilanalysecalc.png index 2d45569..b8634b7 100644 Binary files a/src/resources/accueilanalysecalc.png and b/src/resources/accueilanalysecalc.png differ diff --git a/src/xml/EnsembleFichiers.java b/src/xml/EnsembleFichiers.java new file mode 100644 index 0000000..1ec57d2 --- /dev/null +++ b/src/xml/EnsembleFichiers.java @@ -0,0 +1,98 @@ +package xml; + +import java.util.ArrayList; + +public class EnsembleFichiers { + private static ArrayList ListeContentTableur = new ArrayList(); + private static ArrayList ListeNomDossier = new ArrayList(); + private static ArrayList ListeNomFichierFeedBack = new ArrayList(); + private static ArrayList ListeFichierods = new ArrayList(); + private static ArrayList ListeObjetGraphicTableur = new ArrayList(); + public static int size=0; + + public EnsembleFichiers() { + + } + + /** + * + */ + public void Initialise() { + ListeNomDossier.clear(); + ListeNomFichierFeedBack.clear(); + ListeFichierods.clear(); + ListeObjetGraphicTableur.clear(); + } + + /** + * + * @param NomDossier + * @param ContentWriter + * @param contentT + * @param contentB + * @param fichierodt + * @param fichierods + * @param fichierodb + * @param fichierObjectgraphicTableur + * @param fichierFeedBack + */ + public void AjouteEnsembleAnalyse(String NomDossier, String contentT,String fichierods, + String fichierObjectgraphicTableur, String fichierFeedBack) { + ListeContentTableur.add(contentT); + ListeNomDossier.add(NomDossier); + ListeObjetGraphicTableur.add(fichierObjectgraphicTableur); + ListeFichierods.add(fichierods); + ListeNomFichierFeedBack.add(fichierFeedBack); + size++; + } + + + public ArrayList getListeNomDossier() { + return ListeNomDossier; + } + + public ArrayList getListeFichierods() { + return ListeFichierods; + } + + + public int getSize() { + return EnsembleFichiers.size; + } + + + public void setListeNomDossier(ArrayList listeNomDossier) { + ListeNomDossier = listeNomDossier; + } + + public void setListeFichierods(ArrayList listeFichierods) { + ListeFichierods = listeFichierods; + } + + + public void setSize(int size) { + EnsembleFichiers.size = size; + } + + public ArrayList getListeObjetGraphicTableur() { + return ListeObjetGraphicTableur; + } + + public void setListeObjetGraphicTableur(ArrayList listeObjetGraphicTableur) { + ListeObjetGraphicTableur = listeObjetGraphicTableur; + } + + public ArrayList getListeNomFichierFeedBack() { + return ListeNomFichierFeedBack; + } + + public void setListeNomFichierFeedBack(ArrayList listeNomFichierFeedBack) { + ListeNomFichierFeedBack = listeNomFichierFeedBack; + } + + public ArrayList getListeContentTableur() { + return ListeContentTableur; + } + + +} diff --git a/src/xml/LectureFichierXML.java b/src/xml/LectureFichierXML.java new file mode 100644 index 0000000..5c7b791 --- /dev/null +++ b/src/xml/LectureFichierXML.java @@ -0,0 +1,84 @@ +package xml; + +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.filechooser.FileNameExtensionFilter; + + +/** + * Chargement d'un fichier d'analyse + * @author pabr6 + * + */ +public class LectureFichierXML extends JFileChooser { + + private String codeXML =""; + + private static final long serialVersionUID = 1L; + + /** + * Chargement d'un fichier d'analyse.
+ * Le premier node doit être le node fichier. + */ + public LectureFichierXML() { + setDialogTitle("Sélectionner un fichier d'analyse"); + FileNameExtensionFilter filter = new FileNameExtensionFilter("Fichier .XML", "xml"); + setFileFilter(filter); + setPreferredSize(new Dimension(550, 420)); + int response = showOpenDialog(null); + if(response == JFileChooser.APPROVE_OPTION) { + File file = new File(getSelectedFile().getAbsolutePath()); + String ext = file.getName().substring(file.getName().lastIndexOf(".")); + if(ext.equals(".xml")) openFileXML(file); + } + } + +// @Override +// protected JDialog createDialog( Component parent ) throws HeadlessException { +// JDialog dialog = super.createDialog( parent ); +// Image img = new ImageIcon(getClass().getResource("/resources/evalwriter.png") ).getImage(); +// dialog.setIconImage(img); +// return dialog; +// } + + + /** + * + * @param file + */ + private String openFileXML(File file) { + 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); + } + this.codeXML = targetString.toString(); + } catch (UnsupportedEncodingException e1) { + e1.printStackTrace(); + } catch (FileNotFoundException e1) { + e1.printStackTrace(); + } catch (Exception e) { + } + return ""; + } + + public String getCodeXML() { + return codeXML; + } + + + + +} diff --git a/src/xml/LecturesDossiers.java b/src/xml/LecturesDossiers.java new file mode 100644 index 0000000..305bc93 --- /dev/null +++ b/src/xml/LecturesDossiers.java @@ -0,0 +1,385 @@ +package xml; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.nio.ByteBuffer; +import java.nio.CharBuffer; +import java.nio.charset.Charset; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.xml.parsers.ParserConfigurationException; + +import org.xml.sax.SAXException; + +import net.lingala.zip4j.core.ZipFile; +import net.lingala.zip4j.model.FileHeader; + + + + + +public class LecturesDossiers { + + + private static EnsembleFichiers EC = new EnsembleFichiers(); + + + public LecturesDossiers( ecritureFileXML.LocationFile location, String patch) throws ParserConfigurationException, SAXException, IOException { + String NomDossier = null; + String leNomDuRepertoire = patch; + String ContentT = null; + String ContentObjectGraphicTableur = null; + + String fichierAnalyseods = null; + + + File rep = new File(leNomDuRepertoire); + + if(location==ecritureFileXML.LocationFile.DansDossier) { + System.out.println(); + + if(rep.isDirectory()) { + File[] fichiers = rep.listFiles(); + + for(int i=0; i fileHeaderList = (List) zipFile.getFileHeaders(); + + for (int i = 0; i < fileHeaderList.size(); i++) { + FileHeader fileHeader = (FileHeader) fileHeaderList.get(i); + net.lingala.zip4j.io.ZipInputStream is = zipFile.getInputStream(fileHeader); + + if(fileHeader.getFileName().equals("content.xml")) { + int uncompressedSize = (int) fileHeader.getUncompressedSize(); + + OutputStream os = new ByteArrayOutputStream(uncompressedSize); + + int bytesRead; + + byte[] buffer = new byte[4096]; + while ((bytesRead = is.read(buffer)) != -1) { + os.write(buffer, 0, bytesRead); // os le contenu du fichier + } + content = os.toString(); + + } + if(fileHeader.getFileName().equals("styles.xml")) { + int uncompressedSize = (int) fileHeader.getUncompressedSize(); + + OutputStream os = new ByteArrayOutputStream(uncompressedSize); + + int bytesRead; + + byte[] buffer = new byte[4096]; + + while ((bytesRead = is.read(buffer)) != -1) { + os.write(buffer, 0, bytesRead); // os le contenu du fichier + } + style = os.toString(); + } + if(fileHeader.getFileName().equals("meta.xml")) { + int uncompressedSize = (int) fileHeader.getUncompressedSize(); + + OutputStream os = new ByteArrayOutputStream(uncompressedSize); + + int bytesRead; + + byte[] buffer = new byte[4096]; + + while ((bytesRead = is.read(buffer)) != -1) { + os.write(buffer, 0, bytesRead); // os le contenu du fichier + } + meta = os.toString(); + } + + + + + } + } catch (IOException ex) { + ex.printStackTrace(System.err); + } catch (net.lingala.zip4j.exception.ZipException e) { + e.printStackTrace(); + } + + String tout = content + style + meta ; + + + byte[] defaultBytes = tout.getBytes(); + //Charset def = Charset.defaultCharset(); + Charset utf8 = Charset.forName("utf-8"); + ByteBuffer bb = ByteBuffer.wrap(defaultBytes); + CharBuffer cb = utf8.decode(bb); + tout = cb.toString(); + + + + return tout; + } + + /** + * + * @param zipf + * @return + * @throws ParserConfigurationException + * @throws SAXException + * @throws IOException + */ + private static String ContenuContentObject(File zipf) throws ParserConfigurationException, SAXException, IOException { + String object= null; + + try { + ZipFile zipFile = new ZipFile(zipf.getAbsolutePath()); + + @SuppressWarnings("unchecked") + List fileHeaderList = (List) zipFile.getFileHeaders(); + +// int CompteurObject = 1; + + for (int i = 0; i < fileHeaderList.size(); i++) { + FileHeader fileHeader = (FileHeader) fileHeaderList.get(i); + net.lingala.zip4j.io.ZipInputStream is = zipFile.getInputStream(fileHeader); + + if(fileHeader.getFileName().contains("Object ") && fileHeader.getFileName().contains("/content.xml") ) { + String num = fileHeader.getFileName(); + Pattern p = Pattern.compile("[a-zA-Z]"); + Matcher m = p.matcher(num); + num = m.replaceAll(""); + + p = Pattern.compile("/"); + m = p.matcher(num); + num = m.replaceAll(""); + + p = Pattern.compile(" "); + m = p.matcher(num); + num = m.replaceAll(""); + + p = Pattern.compile("\\."); + m = p.matcher(num); + num = m.replaceAll(""); + + int uncompressedSize = (int) fileHeader.getUncompressedSize(); + + OutputStream os = new ByteArrayOutputStream(uncompressedSize); + + int bytesRead; + + byte[] buffer = new byte[4096]; + + while ((bytesRead = is.read(buffer)) != -1) { + os.write(buffer, 0, bytesRead); // os le contenu du fichier + } + object = "" + os.toString() + "" + object; + + } + + + } + + } catch (IOException ex) { + ex.printStackTrace(System.err); + } catch (net.lingala.zip4j.exception.ZipException e) { + e.printStackTrace(); + } + + + String tout = object ; + if(tout!=null) { + byte[] defaultBytes = tout.getBytes(); + //Charset def = Charset.defaultCharset(); + Charset utf8 = Charset.forName("utf-8"); + ByteBuffer bb = ByteBuffer.wrap(defaultBytes); + CharBuffer cb = utf8.decode(bb); + tout = cb.toString(); + } + + + return tout; +} + + /** + * + * @return + */ + public static EnsembleFichiers getEC() { + return EC; + } + + /** + * + * @param eC + */ + public void setEC(EnsembleFichiers eC) { + EC = eC; + } + + + + + +} diff --git a/src/xml/StringSimilarity.java b/src/xml/StringSimilarity.java new file mode 100644 index 0000000..82bf272 --- /dev/null +++ b/src/xml/StringSimilarity.java @@ -0,0 +1,55 @@ +package xml; + + +public class StringSimilarity { + /** + * Calculates the similarity (a number within 0 and 1) between two strings. + */ + public static double similarity(String s1, String s2) { + String longer = s1, shorter = s2; + if (s1.length() < s2.length()) { // longer should always have greater length + longer = s2; shorter = s1; + } + int longerLength = longer.length(); + if (longerLength == 0) { return 1.0; /* both strings are zero length */ } + /* // If you have StringUtils, you can use it to calculate the edit distance: + return (longerLength - StringUtils.getLevenshteinDistance(longer, shorter)) / + (double) longerLength; */ + return (longerLength - editDistance(longer, shorter)) / (double) longerLength; + + } + + // Example implementation of the Levenshtein Edit Distance + // See http://r...content-available-to-author-only...e.org/wiki/Levenshtein_distance#Java + public static int editDistance(String s1, String s2) { + s1 = s1.toLowerCase(); + s2 = s2.toLowerCase(); + + int[] costs = new int[s2.length() + 1]; + for (int i = 0; i <= s1.length(); i++) { + int lastValue = i; + for (int j = 0; j <= s2.length(); j++) { + if (i == 0) + costs[j] = j; + else { + if (j > 0) { + int newValue = costs[j - 1]; + if (s1.charAt(i - 1) != s2.charAt(j - 1)) + newValue = Math.min(Math.min(newValue, lastValue), + costs[j]) + 1; + costs[j - 1] = lastValue; + lastValue = newValue; + } + } + } + if (i > 0) + costs[s2.length()] = lastValue; + } + return costs[s2.length()]; + } + + public static void printSimilarity(String s, String t) { + System.out.println(String.format( + "%.3f is the similarity between \"%s\" and \"%s\"", similarity(s, t), s, t)); + } +} diff --git a/src/xml/demarreTest.java b/src/xml/demarreTest.java new file mode 100644 index 0000000..39f5fab --- /dev/null +++ b/src/xml/demarreTest.java @@ -0,0 +1,71 @@ + package xml; + +public class demarreTest { + + public static void main(String[] args) { + + + + String codeXML = new LectureFichierXML().getCodeXML(); + + // Mesure du temps avant l'exécution de la méthode + long startTime = System.nanoTime(); + + new transformeXLMtoNode(codeXML,false,null); + node nod = transformeXLMtoNode.getNodeRoot(); + + // Mesure du temps après l'exécution de la méthode + long endTime = System.nanoTime(); + + // Calcul du temps écoulé + long duration = endTime - startTime; + + // Affichage du temps écoulé en nanosecondes + System.out.println("Temps de traitement: " + duration + " nanosecondes"); + + // Affichage du temps écoulé en millisecondes + System.out.println("Temps de traitement: " + (duration / 1000000) + " millisecondes"); + + + +// node cloneRoot = null; +// try { +// cloneRoot = nod.clone(); +// } catch (CloneNotSupportedException e) { +// e.printStackTrace(); +// } +// cloneRoot.setNameNode("clone"); +// cloneRoot.addAttribut("test", "true"); +// cloneRoot.retourneFirstEnfant("NodeTest").addAttribut("testAttribut", "Oui"); +// if(cloneRoot.retourneFirstEnfant("NodeTest").moveUp()) System.out.println("OK Up"); +// +// node A = cloneRoot.retourneFirstEnfant("text:span"); +// A.addAttribut("AA","BB"); +// if(A.moveLeft()) System.out.println("OK Left"); +// if(A.moveUp()) System.out.println("OK Up"); +// A.modifieContenu(0, "Mon nouveau texte"); + +// node tout = new node("tout"); +// tout.addEnfant(nod); +// tout.addEnfant(cloneRoot); +// if(nod.moveDown()) System.out.println("Move Down"); + + startTime = System.nanoTime(); + ecritureFileXML.write(nod, "test.xml"); + + endTime = System.nanoTime(); + + // Calcul du temps écoulé + duration = endTime - startTime; + + // Affichage du temps écoulé en nanosecondes + System.out.println("Temps de traitement: " + duration + " nanosecondes"); + + // Affichage du temps écoulé en millisecondes + System.out.println("Temps de traitement: " + (duration / 1_000_000) + " millisecondes"); + +// nod.isVide(); + + } + +} diff --git a/src/xml/ecritureFileXML.java b/src/xml/ecritureFileXML.java new file mode 100644 index 0000000..b6ee68b --- /dev/null +++ b/src/xml/ecritureFileXML.java @@ -0,0 +1,383 @@ +package xml; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + + + +public class ecritureFileXML { + + + public enum LocationFile { + DansDossier, + UniquementFichier, + } + + public enum typeFichier { + fichier_analyse, + verification_etudiant, + fichier_etudiant, + } + + + + public static boolean write(node nodeWrite, String nameFileWithExt) { + String directoryName = Paths.get("").toAbsolutePath().toString(); + File file = new File(directoryName + "\\" + nameFileWithExt) ; + + try { + Path outputFilePath = file.toPath(); + BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8); + fichier.write(nodeWrite.ecritureXML().toString()); + fichier.close(); + return true; + } catch (IOException e) { + e.printStackTrace(); + return false; + } + } + + + /** + * Ce node permet la configuration personnalisé de l'application.
+ * Ajoute le node setting avec les différentes valeurs par défaut.
+ * + * @param sujet Le node du sujet. + * @return Le node du sujet avec le node setting ajouté. + */ + public static node addSetting(node sujet) { + //nodeAC setting + node setting = new node(); + setting.setNameNode("settings"); + setting.getAttributs().put("culture","FR"); + + + //nodeAC csv + node csv = new node(); + csv.setNameNode("csv"); + csv.getAttributs().put("encoding", "UTF-8"); + csv.getAttributs().put("separator", ";"); + csv.addContenu("choose the encoding from this list : UTF-8 US-ASCII ISO-8859-1 UTF-16BE UTF-16LE UTF-16"); + csv.setNodeClose(true); + + //nodeAC export du csv + node export = new node(); + export.setNameNode("import_moodle"); + export.getAttributs().put("email", "adresse"); + export.getAttributs().put("id", "identification"); + export.getAttributs().put("firstname", "prenom"); + export.getAttributs().put("name", "nom"); + export.setNodeClose(true); + + //nodeAC taille zip + node zip = new node(); + zip.setNameNode("zip"); + zip.getAttributs().put("size", "48000000"); + zip.getAttributs().put("nameZip", "feedbackMoodle"); + zip.setNodeClose(true); + + //nodeAC verif + node plagiarism = new node(); + plagiarism.setNameNode("plagiarism"); + plagiarism.getAttributs().put("number_match", "2"); + plagiarism.getAttributs().put("mini_number_modification", "-1"); + plagiarism.getAttributs().put("nombres_modifications_simultané_maxi", "100"); + plagiarism.setNodeClose(true); + + //construction nodeAC similitude + node similarity = new node(); + similarity.setNameNode("text:similarity"); + similarity.getAttributs().put("tolerance_characters", "5"); + similarity.getAttributs().put("tolerance_text", "0.79"); + similarity.setNodeClose(true); + + //nodeAC color + node color = new node(); + color.setNameNode("color"); + color.getAttributs().put("tolerance_rouge", "30"); + color.getAttributs().put("tolerance_vert", "30"); + color.getAttributs().put("tolerance_bleu", "30"); + color.setNodeClose(true); + + //construction du nodeAC setting + csv.getEnfants().add(export); + setting.getEnfants().add(csv); + setting.getEnfants().add(zip); + setting.getEnfants().add(plagiarism); + setting.getEnfants().add(similarity); + setting.getEnfants().add(color); + + //ajoute la nodeAC translation + setting.getEnfants().add(translation()); + + + // ajoute le nodeAC setting au nodeAC sujet + sujet.getEnfants().add(setting); + + //fermeture du nodeAC + setting.setNodeClose(true); + + return sujet; + } + + + /** + * Retourne le node translation.
+ * @return Le node translation. + */ + public static node translation() { + node translation = new node(); + translation.setNameNode("translation"); + translation.getAttributs().put("class", "tooltip1"); + translation.getAttributs().put("classtext", "tooltiptext1"); + + //les champs + translation.getEnfants().add(nodeTranslation("text:initial-creator..name","La valeur du champ premier auteur","", "#111166","",false)); + translation.getEnfants().add(nodeTranslation("dc:subject..texte","Valeur de la méta donnée -!b!-Sujet-!/b!-","Menu Fichier/Propriétés-!br!-Onglet Description","#111166","",false)); + translation.getEnfants().add(nodeTranslation("dc:title..texte","Valeur de la méta donnée -!b!-Titre-!/b!-","Menu Fichier/Propriétés-!br!-Onglet Description", "#111166","",false)); + translation.getEnfants().add(nodeTranslation("text:title..name","Valeur de la méta donnée -!b!-Titre-!/b!-","Menu Fichier/Propriétés-!br!-Onglet Description", "#111166","",false)); + translation.getEnfants().add(nodeTranslation("text:editing-cycles..name","Valeur du champ révision","", "#111166","",false)); + translation.getEnfants().add(nodeTranslation("text:creator..name","Auteur des modifications","", "#111166","",false)); + translation.getEnfants().add(nodeTranslation("meta:initial-creator..texte","Premier auteur du fichier","", "#111166","",false)); + translation.getEnfants().add(nodeTranslation("meta:user-defined..Auteur2","La méta donnée -!b!-Auteur2-!/b!-","Menu Fichier/Propriétés-!br!-Onglet Propriétés personnalisées-!br!-Cliquez sur le bouton "Ajouter une propriété" pour ajouter une méta données.-!br!--!br!--!b!--!u!-ATTENTION-!/u!--!/b!-: Vous devez tapez comme nom de la méta donnée -!b!-Auteur2-!b!--!br!-Exactement ces caractères, ne tapez pas d'espace après le dernier caractère.-!br!-Sinon vous aurez une valeur -!b!-null-!/b!-.", "#111166","",true)); + translation.getEnfants().add(nodeTranslation("meta:user-defined..Date..du..contrôle","La méta donnée -!b!-Date du contrôle-!/b!-","Menu Fichier/Propriétés-!br!-Onglet Propriétés personnalisées-!br!-Clique sur le bouton "Ajouter une propriété" pour ajouter une méta données.-!br!--!br!--!b!--!u!-ATTENTION-!/u!--!/b!-: Vous devez tapez comme nom de la méta donnée -!b!-Date du contrôle-!b!--!br!-Exactement ces caractères, ne tapez pas d'espace après le dernier caractère.-!br!-Sinon vous aurez une valeur -!b!-null-!/b!-.", "#111166","",true)); + translation.getEnfants().add(nodeTranslation("meta:user-defined..Département","La méta donnée -!b!-Département-!/b!-","Menu Fichier/Propriétés-!br!-Onglet Propriétés personnalisées-!br!-Cliquez sur le bouton "Ajouter une propriété" pour ajouter une méta données.-!br!--!br!--!b!--!u!-ATTENTION-!/u!--!/b!-: Vous devez tapez comme nom de la méta donnée -!b!-Département-!b!--!br!-Exactement ces caractères, ne tapez pas d'espace après le dernier caractère.-!br!-Sinon vous aurez une valeur -!b!-null-!/b!-.", "#111166","",true)); + translation.getEnfants().add(nodeTranslation("meta:user-defined..Groupe","La méta donnée -!b!-Groupe-!/b!-","Menu Fichier/Propriétés-!br!-Onglet Propriétés personnalisées-!br!-Clique sur le bouton "Ajouter une propriété" pour ajouter une méta données.-!br!--!br!--!b!--!u!-ATTENTION-!/u!--!/b!-: Vous devez tapez comme nom de la méta donnée -!b!-Groupe-!b!--!br!-Exactement ces caractères, ne tapez pas d'espace après le dernier caractère.-!br!-Sinon vous aurez une valeur -!b!-null-!/b!-.", "#111166","",true)); + translation.getEnfants().add(nodeTranslation("text:user-defined..text:name","La méta donnée personnalisée","Menu Fichier/Propriétés-!br!-Onglet Propriétés personnalisées-!br!-Clique sur le bouton "Ajouter une propriété" pour ajouter une méta données.", "#111166","",true)); + translation.getEnfants().add(nodeTranslation("text:initial-creator..name","La valeur du champ premier auteur","", "#111166","",false)); + translation.getEnfants().add(nodeTranslation("text:creation-date..Nom..du..nodeAC","Champ date de création","", "#111166","",false)); + translation.getEnfants().add(nodeTranslation("text:creator..Nom..du..nodeAC","Champ auteur","", "#111166","",false)); + translation.getEnfants().add(nodeTranslation("text:date..Nom..du..nodeAC","Champ date de modification","", "#111166","",false)); + translation.getEnfants().add(nodeTranslation("dc:subject..Contenu..textuel","Champ sujet","", "#111166","",false)); + translation.getEnfants().add(nodeTranslation("dc:title..Contenu..textuel","Champ titre","", "#111166","",false)); + translation.getEnfants().add(nodeTranslation("meta:user-defined..meta:name","Propriété personnalisée","", "#111166","",false)); + + + + + //style de paragraphe + translation.getEnfants().add(nodeTranslation("style:style..style:master-page-name","Enchaînement insère saut de page","Le style de paragraphe doit insérer un saut de page.", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:style..style:next-style-name","Style du paragraphe suivant","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:border-bottom","Bordure basse du paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:border-top","Bordure haute du paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:border-left","Bordure gauche du paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:border-right","Bordure droite du paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:keep-with-next","Conserver avec le paragraphe suivant","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:keep-together","Ne pas scinder le paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:margin-top","Espacement au dessus du paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:margin-bottom","Espacement en dessous du paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:orphans","Nombre de ligne d'orpheline","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:widows","Nombre de ligne de veuve","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:text-properties..style:text-underline-color","Couleur de soulignement du paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:text-properties..style:text-underline-style","Style du soulignement du paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:text-properties..style:text-underline-width","Epaisseur du trait de soulignement du paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:text-properties..style:font-name","Police de caractère du paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:text-properties..fo:font-size","Taille de la police de caractère du paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:text-properties..style:font-style-name","Style de la police de caractère du paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:text-properties..fo:text-shadow","Effet de caractère ombré du paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:text-align","Alignement du paragraphe","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:text-properties..fo:font-variant","Effet de caractère petite majuscule","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:line-height","Interligne","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:text-indent","Retrait de première ligne","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:style..style:parent-style-name","Hérite du style","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:text-indent","Retrait de première ligne","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:padding-top","Remplissage (espacement) en haut","Les padding sont des marges intérieures.", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:padding-left","Remplissage (espacement) à gauche","Les padding sont des marges intérieures.", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:padding-right","Remplissage (espacement) à droite","Les padding sont des marges intérieures.", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:padding-bottom","Remplissage (espacement) en bas","Les padding sont des marges intérieures.", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:text-properties..style:text-underline-type","Style du trait de soulignage","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..style:tab-stop-distance","Distance du stop de la tabulation","", "#118811","https://moodle.univ-artois.fr/cours/",false)); + translation.getEnfants().add(nodeTranslation("style:text-properties..fo:font-weight","Style texte GRAS","", "#000000","",false)); + translation.getEnfants().add(nodeTranslation("style:text-properties..fo:font-style","Style texte italic","", "#000000","",false)); + + //style de page + translation.getEnfants().add(nodeTranslation("style:master-page..style:name","Nom du style de page","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:style..style:name","Nom du style de page","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:page-layout..style:page-usage","Mise en page de la page","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:page-layout-properties..fo:page-width","Largeur de la page","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:page-layout-properties..fo:page-height","Hauteur de la page","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:page-layout-properties..fo:margin-right","Marge à droite de la page","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:page-layout-properties..fo:border","Les 4 bordures de la page","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:page-layout-properties..fo:margin-left","Marge à gauche de la page","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:page-layout-properties..fo:margin-bottom","Marge en bas de la page","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:page-layout-properties..fo:margin-top","Marge en haut de la page","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:page-layout-properties..fo:margin-right","Marge à droite de la page","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:page-layout-properties..fo:padding","Remplissage (marges intéreures)","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("text:chapter..text:display","Champ chapitre","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("text:chapter..Contenu..textuel","Valeur du champ chapitre","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:header-footer-properties..fo:border-bottom","-!b!-Entête ou Pied de page-!/b!- : Bordure inférieure","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:header-footer-properties..fo:border-right","-!b!-Entête ou Pied de page-!/b!- : Bordure droite","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:header-footer-properties..fo:border-left","-!b!-Entête ou Pied de page-!/b!- : Bordure gauche","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:header-footer-properties..fo:border-top","-!b!-Entête ou Pied de page-!/b!- : Bordure haute","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:header-footer-properties..fo:margin-bottom","-!b!-Entête ou Pied de page-!/b!- : Marge en dessous","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:header-footer-properties..fo:margin-top","-!b!-Entête ou Pied de page-!/b!- : Marge au dessus","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:header-footer-properties..fo:margin-top","-!b!-Entête ou Pied de page-!/b!- : Marge au dessus","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:header-footer-properties..fo:margin-right","-!b!-Entête ou Pied de page-!/b!- : Marge à droite","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:header-footer-properties..fo:margin-left","-!b!-Entête ou Pied de page-!/b!- : Marge à gauche","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:master-page..style:next-style-name","Style de la page suivante","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("text:bookmark-ref..text:ref-name","Nom du repère de texte","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("text:bookmark-ref..text:reference-format","Réfèrence du repère de texte","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("text:bookmark-ref..Contenu..textuel","Contenu textuel du repère de texte","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:columns..fo:column-count","Nombre de colonne","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:columns..fo:column-gap","Espacement entre les colonnes-!br!--!i!-Gouttière-!/i!-","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:header-footer-properties..fo:border","Les 4 bordures du pied de page-!br!--!i!-droite gauche bas haut-!/i!-","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:header-footer-properties..fo:border","Les 4 bordures de l'entête-!br!--!i!-droite gauche bas haut-!/i!-","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("text:tab..name","Tabulation","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("text:tab..Contenu..textuel","Contenu textuel après tabulation","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("text:initial-creator..Contenu..textuel","Champ auteur (premier auteur)","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("text:creator..Contenu..textuel","Champ auteur (modifié)","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:page-layout-properties..style:num-format","Format de la numérotation","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("text:page-number..text:select-page","Champ numérotation de la page","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:page-layout-properties..style:print-orientation","Orientation de la page","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("style:header-footer-properties..fo:min-height","Hauteur minimal du pied de page","", "#995511","",false)); + translation.getEnfants().add(nodeTranslation("page..style:page_number","Champ - numéro de la page","", "#000000","",false)); + + + //style structure + translation.getEnfants().add(nodeTranslation("page..style:master-page-name","Nom du style de page","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("page..numeroabsolue","Position (numéro) absolue de la page-!br!-par rapport à l'ensemble des pages","C'est l'ordre d'apparition de la page lorsque le mode "-!b!-Livre-!/b!-" est utilisé.-!br!-Dans le mode d'affichage "-!b!-Livre-!/b!-" toutes les pages s'affichent, y compris les pages vides.", "#903BA9","",true)); + translation.getEnfants().add(nodeTranslation("text:title..Contenu..textuel","Valeur de la méta donnée "-!b!-Titre-!/b!-"","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:subject..Contenu..textuel","Valeur de la méta donnée "-!b!-Sujet-!/b!-"","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("draw:frame..draw:name","Nom de l'objet indiqué dans-!br!-l'onglet "-!b!-Options-!/b!-"-!br!-de la boite "-!b!--!u!-Propriétés-!/u!--!/b!-" de l'objet.","Si l'objet ne se nomme pas -!b!--!u!-EXACTEMENT-!/u!--!/b!- comme indiqué dans la consigne.-!br!--!br!-L'algorithme d'analyse ne pourra pas trouver l'objet.Vous aurez que des valeurs -!b!--!u!-NULL-!/u!--!/b!--!br!--!br!-Faites attention à la case (majuscule et minuscule). Ne tapez pas d'espace après le dernier caractère. Ne tapez pas de guillemet, etc.", "#903BA9","",true)); + translation.getEnfants().add(nodeTranslation("text:description..Contenu..textuel","Champ -!b!-Commentaires-!/b!-","Pour insérer le champ "-!b!-Commentaires-!/b!-".-!br!-Sélectionner le menu Insertion/Champ/Autres champs...-!br!--!br!-Dans la boite de dialogue "Champ"-!br!-Onglet "Info document"", "#903BA9","",true)); + translation.getEnfants().add(nodeTranslation("page..style:page-usage","Mise en page de la page","Dans les -!b!-Propriétés-!/b!- du style de page-!br!-Onglet -!b!-Page-!/b!--!br!--!b!-Mise en page-!/b!-", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:illustration-index-source..text:caption-sequence-name","Catégorie de la légende","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:index-title-template..Contenu..textuel","Titre de l'index","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:table-of-content..text:protected","Protection de l'index","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:table-of-content-source..text:outline-level","Niveau de plan de l'index-!br!-Type "Table des matières"", "", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:conditional-text..text:condition","La condition du texte conditionnel","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:conditional-text..text:string-value-if-true","Si la condition est -!b!-Vrai-!/b!- affiche le texte","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:conditional-text..text:string-value-if-false","Si la condition est -!b!-Fausse-!/b!- affiche le texte","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:date..text:fixed","La date est fixe","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:date..style:data-style-name","Style de la date","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:span..Contenu..textuel","Contenu textuel formatage local","-!b!--!u!-Attention formatage local:-!/u!--!/b!--!br!-Si le texte n'a pas été trouvé.-!br!-Vous devez savoir que l'application recherche le texte par son contenu.-!br!-Mais aussi par le type d'élément, ici un formatage local.-!br!-Il est probable que tous les autres attributs (propriétés) de ce formatage local soient "null".-!br!-Vérifier le contenu textuel, ou vérifier que vous avez formaté localement ce text.-!br!-N'oubliez pas d'effacer le format avant de reformater le texte.", "#000000","",true)); + translation.getEnfants().add(nodeTranslation("text:p..Contenu..textuel","Contenu textuel (paragraphe)","-!b!--!u!-Attention paragraphe de texte:-!/u!--!/b!--!br!-Si le texte de ce paragraphe n'a pas été trouvé.-!br!-Vous devez savoir que l'application recherche le paragraphe par son contenu.-!br!-Mais aussi par le type de l'élément, ici un paragraphe.-!br!-Il est probable que tous les autres attributs (propriétés) de ce paragraphe soient "null".-!br!-Vérifier le contenu textuel de votre paragraphe, ou vérifier que c'est bien un paragraphe.-!br!-", "#000000","",true)); + translation.getEnfants().add(nodeTranslation("text:date..text:date-value","La date","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:section..text:name","Nom de la section","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:section..text:condition","Condition de la section","-!b!--!u!-Attention :-!/u!--!/b!--!br!-Ne tapez pas d'espace après le dernier guillemet du texte.-!br!-Ne tapez pas d'espace après le dernier caractère de votre condition.", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:section..Contenu..textuel","Contenu textuel de la section","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:section..text:display","Masqué la section","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:break-before","Type de saut placé avant","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:padding","Remplissage (padding) du paragraphe","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("style:text-properties..fo:color","Couleur de la police","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:h..text:style-name","Nom du style du paragraphe Titre","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("text:change-start..Contenu..textuel","Insertion du texte","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:margin-right","Retrait après le paragraphe","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:margin-left","Retrait avant le paragraphe","", "#903BA9","",false)); + translation.getEnfants().add(nodeTranslation("style:paragraph-properties..fo:border","Style des quatre bordures","", "#903BA9","",false)); + + + //frame + translation.getEnfants().add(nodeTranslation("draw:frame..text:anchor-type","Ancrage de l'objet","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("draw:frame..text:anchor-page-number","Ancrage dans la page numéro","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("draw:frame..svg:y","Position (distance) verticale-!br!-de l'objet","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("draw:frame..svg:x","Position (distance) horizontale-!br!-de l'objet","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("draw:frame..svg:height","Hauteur de l'objet","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("draw:frame..svg:width","Largeur de l'objet","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..fo:padding","Remplissage (marge)-!br!-avec les bords du cadre de l'objet","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..style:vertical-pos","Position verticale de l'objet par rapport à","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..style:horizontal-pos","Position horizontale de l'objet par rapport à","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..fo:border","Les 4 bordures de l'objet","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..fo:margin-bottom","Espacement en dessous de l'objet","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..fo:margin-top","Espacement au dessus de l'objet","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..fo:margin-right","Espacement à droite de l'objet","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..fo:margin-left","Espacement à gauche de l'objet","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..style:horizontal-rel","Position horizontale par rapport à","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..style:vertical-rel","Position verticale par rapport à","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..style:wrap","Adaptation du texte","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..style:number-wrapped-paragraphs","Adaptation du texte-!br!-nombre de paragraphe adapté","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..style:wrap-contour","Adaptation du texte "-!b!-Contour-!/b!-"","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("text:sequence..text:name","Nom de la variable de -!b!-Séquence-!/b!- pour légender","Menu Insertion/Champ/Autres champs...-!br!-Onglet "-!b!-Variables-!/b!-"", "#FF5B00","",true)); + translation.getEnfants().add(nodeTranslation("text:sequence..Contenu..textuel","La légende avec la variable de -!b!-Séquence-!/b!-","Pour légender une image, il faut un clic droite sur l'image et sélectionner -!b!-Insérer une légende...-!/b!--!br!-Cependant, il faut retirer la protection du contenu.", "#FF5B00","",true)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..style:protect","Protection de l'objet","Dans la boite de dialogue -!b!-Propriétés-!/b!--!br!-Onglet Option-!br!-Vou devez cocher les protections (case à cocher)", "#FF5B00","",true)); + translation.getEnfants().add(nodeTranslation("style:graphic-properties..style:wrap-contour-mode","Mode contour du texte","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("draw:text-box..fo:min-height","Hauteur du frame-!br!-(cadre de texte)","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("draw:frame..Contenu..textuel","Paragraphe d'ancrage","", "#FF5B00","",false)); + + //numérotation hiérarchisée + translation.getEnfants().add(nodeTranslation("text:outline-level-style..style:num-suffix","Suffix (après la numérotation)","", "#C1BA00","",false)); + translation.getEnfants().add(nodeTranslation("text:outline-level-style..style:num-prefix","Prefix (devant la numérotation)","-!b!--!u!-Attention :-!/u!--!/b!--!br!-Il peut y avoir devant la numération un espace.-!br!--!br!-Par exemple : -!b!-§[espace]-!/b!-", "#C1BA00","",true)); + translation.getEnfants().add(nodeTranslation("text:outline-level-style..style:num-format","Format de la numérotation","", "#C1BA00","",false)); + translation.getEnfants().add(nodeTranslation("text:outline-level-style..text:level","Niveau de la numérotation","", "#C1BA00","",false)); + translation.getEnfants().add(nodeTranslation("style:list-level-properties..text:list-level-position-and-space-mode","Position, Espacement de la numérotation","", "#C1BA00","",false)); + translation.getEnfants().add(nodeTranslation("style:list-level-label-alignment..text:label-followed-by","Numérotation suivi d'un(e)","Dans la boite de dialogue "Numérotation des chapitres"-!br!-Onglet Position-!br!-Numerotation suivi par.", "#C1BA00","",true)); + translation.getEnfants().add(nodeTranslation("text:outline-level-style..text:display-levels","Nombre de niveau affiché par la numérotation","Dans la boite de dialogue "Numérotation des chapitre"-!br!-Afficher les sous-niveaux.", "#C1BA00","",true)); + + //Table, index, bibliographie + translation.getEnfants().add(nodeTranslation("text:a..Contenu..textuel","Le texte du lien","Le texte du lien qui permet d'atteindre le paragraphe.", "#0000FF","",true)); + translation.getEnfants().add(nodeTranslation("text:bibliography..Contenu..textuel","Tout le contenu textuel de la biliographie","", "#0000FF","",false)); + translation.getEnfants().add(nodeTranslation("text:index-body..Contenu..textuel","Tout le contenu textuel de l'index","", "#0000FF","",false)); + translation.getEnfants().add(nodeTranslation("text:table-of-content..Contenu..textuel","Tout le contenu textuel de la table","", "#0000FF","",false)); + translation.getEnfants().add(nodeTranslation("text:illustration-index..Contenu..textuel","Tout le contenu textuel de la table des figures","", "#0000FF","",false)); + + //Les tableaux + translation.getEnfants().add(nodeTranslation("table:table-row..Contenu..textuel","Tout le contenu textuel d'un ligne de la table","", "#0000FF","",false)); + translation.getEnfants().add(nodeTranslation("table:table-cell..Contenu..textuel","Tout le contenu textuel d'une cellule de la table","", "#0000FF","",false)); + + //database + translation.getEnfants().add(nodeTranslation("text:database-display..name","Base de données","", "#0000FF","",false)); + translation.getEnfants().add(nodeTranslation("text:database-display..text:table-type","Type de la source de données","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("text:database-display..text:column-name","Nom du champ de données","Ne tapez pas d'espace à la fin du nom de la colonne, Sinon Null.", "#FF5B00","",true)); + translation.getEnfants().add(nodeTranslation("text:database-display..text:database-name","Nom de la base de données","", "#FF5B00","",false)); + translation.getEnfants().add(nodeTranslation("text:database-display..text:table-name","Nom de la table de données","", "#FF5B00","",false)); + + + //variable de séquence + translation.getEnfants().add(nodeTranslation("text:sequence-decl..text:name","Variable de séquence","La variable de séquence permet de légender et de créer des index.-!br!-Pour ajouter une variable de séquence, vous devez sélectionner le menu-!br!-Insertion/Champ/Autres champs...-!br!-Onglet "-!b!-Variables-!/b!-".", "#C1BA00","",true)); + + //Retour à la ligne + translation.getEnfants().add(nodeTranslation("text:line-break..name","Retour à la ligne" ,"Retour à la ligne-!br!-Un retour à la ligne est différent d'un paragraphe.-!br!-Pour réaliser un retour à la ligne vous devez taper-!br!--!b!-SHIFT (majuscule) + ENTRÉE-!/b!-","#000000","",true)); + translation.getEnfants().add(nodeTranslation("text:line-break..Contenu..textuel","Contenu textuel dans un retour à la ligne," ,"-!b!--!u!-Attention retour à la ligne:-!/u!--!/b!--!br!-Si le texte n'a pas été trouvé.-!br!-Vous devez savoir que l'application recherche le texte par son contenu.-!br!-Mais aussi par le type de l'élément, ici un retour à la ligne.-!br!-Il est probable que tous les autres attributs (propriétés) de ce paragraphe soient "null".-!br!-Vérifier le contenu textuel de votre paragraphe, ou vérifier que c'est bien un retour à la ligne.-!br!-", "#000000","",true)); + translation.getEnfants().add(nodeTranslation("text:line-break..Nom..du..nodeAC","Retour à la ligne" ,"Retour à la ligne-!br!-Un retour à la ligne est différent d'un paragraphe.-!br!-Pour réaliser un retour à la ligne vous devez taper-!br!--!b!-SHIFT (majuscule) + ENTRÉE-!/b!-","#000000","",true)); + + // tabulation + translation.getEnfants().add(nodeTranslation("text:tab..Nom..du..nodeAC","Tabulation" ,"Insertion d'un caractère tabulation","#000000","",true)); + + // numérotation des pages + translation.getEnfants().add(nodeTranslation("text:page-number..Nom..du..nodeAC","Numéro de page" ,"Insertion du champ numéro de page","#000000","",true)); + translation.getEnfants().add(nodeTranslation("text:page-count..Nom..du..nodeAC","Nombre de page" ,"Insertion du champ nombre de page","#000000","",true)); + + //Paragraphe de texte + translation.getEnfants().add(nodeTranslation("text:p..name","Paragraphe de texte" ,"Paragraphe de texte-!br!-Un paragraphe de texte est créé avec la touche-!br!--!b!-ENTRÉE-!/b!-","#000000","",true)); + translation.getEnfants().add(nodeTranslation("txt:p..Contenu..textuel","Contenu textuel dans un paragraphe de texte" ,"Paragraphe de texte-!br!-Un paragraphe de texte est créé avec la touche-!br!--!b!-ENTRÉE-!/b!-","#000000","",true)); + translation.getEnfants().add(nodeTranslation("text:span..name","Texte formatage direct" ,"Le formatage direct des cacartères-!br!-Lorsque l'on modifie localement les attributs d'un texte (Gras, italic, taille, soulignage, etc.)","#000000","",true)); + translation.getEnfants().add(nodeTranslation("text:span..Nom..du..nodeAC","Texte formatage direct des caractères" ,"Le formatage direct-!br!-Lorsque l'on modifie localement les attributs d'un texte (Gras, italic, taille, soulignage, etc.)","#000000","",true)); + + //Espace + translation.getEnfants().add(nodeTranslation("text:s","Espace LO Writer","Un espace est inséré lorsque vous souhaitez un séparateur de mots à un endroit où un saut de ligne est acceptable.", "#000000","",true)); + translation.getEnfants().add(nodeTranslation("text:s..name","Espace LO Writer","Un espace est inséré lorsque vous souhaitez un séparateur de mots à un endroit où un saut de ligne est acceptable.", "#000000","",true)); + translation.getEnfants().add(nodeTranslation("text:s..Contenu..textuel","Espace suivi du texte","Un espace est inséré lorsque vous souhaitez un séparateur de mots à un endroit où un saut de ligne est acceptable.", "#000000","",true)); + + + return translation; + } + + + /** + * Permet de réaliser les nodes de traduction.
+ * + * @param nameNode Le nom du nodeAC. + * @param traduction La traduction qui s'affiche dans le feedback. + * @param commentaire Le commentaire qui apparaît. + * @return Le nodeAC traduction. + */ + private static node nodeTranslation(String nameNode, String traduction, String commentaire, String color, String link, Boolean T) { + node A = new node(); + A.setNameNode(nameNode); + A.getAttributs().put("translate", traduction); + A.addContenu(commentaire); + A.getAttributs().put("color", color); + if(T.equals(true)) A.getAttributs().put("image", "true"); + if(!link.isEmpty()) A.getAttributs().put("link", link); + A.setNodeClose(true); + return A; + } + + + +} diff --git a/src/xml/node.java b/src/xml/node.java new file mode 100644 index 0000000..73ea567 --- /dev/null +++ b/src/xml/node.java @@ -0,0 +1,888 @@ +package xml; + + +import java.io.BufferedWriter; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map.Entry; +import java.util.Objects; + + + +public class node implements Cloneable{ + +private String nameNode = ""; +private ArrayList enfants = new ArrayList(); +private LinkedHashMap attributs = new LinkedHashMap(); +private ArrayList contenu = new ArrayList(); +private int level = 0; +private node parent = null; +private boolean nodeClose = false; + +/** + * + * @author pablo rodriguez + * + */ + + public node() { + } + + public node(String nameNode) { + setNameNode(nameNode); + } + + public node(String nameNode, node parent) { + setNameNode(nameNode); + parent.addEnfant(this); + } + + + public boolean isNodeClose() { + return nodeClose; + } + + public void setNodeClose(boolean nodeClose) { + this.nodeClose = nodeClose; + } + + public String getNameNode() { + if(this.equals(null)) return ""; + return this.nameNode; + } + + public void setNameNode(String nameNode) { + this.nameNode = nameNode; + } + + public boolean isHasAttributs() { + if(this.attributs.size()>0) return true; + return false; + } + + public boolean isHasEnfant() { + if(this.enfants.size()>0) return true; + return false; + } + + public int getNbrEnfants() { + return this.enfants.size(); + } + + public ArrayList getEnfants() { + return this.enfants; + } + + public node getEnfant(int index) { + if(index<0 || index>=this.enfants.size()) return null; + return this.enfants.get(index); + } + + public node getEnfant(node enfant) { + if(enfant==null) return null; + for(int i = 0 ; i enfants) { + this.enfants.addAll(enfants); + this.recalculLevel(); + } + + public void removeEnfant(node enfant) { + this.enfants.remove(enfant); + } + + public void removeEnfant(int index) { + this.enfants.remove(index); + } + + public void removeEnfant(String nameNode) { + for(int i = 0 ; i < this.enfants.size() ; i++) { + if(this.enfants.get(i).getNameNode().equals(nameNode)) { + this.enfants.remove(this.enfants.get(i)); + break; + } + } + } + + /** + * Supprime tous les nodes ayant le nom nameNode. + * @param nameNode + * @return + */ + public void removeAllEnfantWithThisName(String nameNode){ + List listeDelete = new ArrayList(); + boolean trouve =false; + for(int i =0; i < this.enfants.size();i++) { + if(this.enfants.get(i)!=null)if(this.enfants.get(i).getNameNode().equals(nameNode)) { + trouve=true; + listeDelete.add(this.enfants.get(i)); + } + } + if(trouve) { + this.enfants.removeAll(listeDelete); + } + for(int i =0; i < this.enfants.size();i++) { + if(this.enfants.get(i)!=null) this.enfants.get(i).removeAllEnfantWithThisName(nameNode); + } + } + + + public void removeAllEnfants() { + this.enfants.clear(); + } + + public void removeEnfants(ArrayList enfants) { + this.enfants.removeAll(enfants); + } + + public node retourneFirstEnfant() { + if(this.enfants.size()>0) return this.enfants.get(0); + return null; + } + + public node retourneFirstEnfant(String nameNode) { + if(this.nameNode.equals(nameNode)) return this; + for (node nod : enfants) { + node tempo = nod.retourneFirstEnfant(nameNode); + if(tempo!=null) return tempo; + } + return null; + } + + public node retourneFirstEnfant(String nameNode, String nameAttribut) { + if(this.nameNode.equals(nameNode) && this.attributs.containsKey(nameAttribut)) return this; + for (node nod : enfants) { + node tempo = nod.retourneFirstEnfant(nameNode, nameAttribut); + if(tempo!=null) return tempo; + } + return null; + } + + public node retourneFirstEnfant(String nameNode, String nameAttribut, String valueAttribut) { + if(this.nameNode.equals(nameNode) && this.attributs.containsKey(nameAttribut)) { + if(this.attributs.get(nameAttribut).equals(valueAttribut)) return this; + } + for (node nod : enfants) { + node tempo = nod.retourneFirstEnfant(nameNode, nameAttribut,valueAttribut); + if(tempo!=null) return tempo; + } + return null; + } + + public node retourneFirstEnfant(String nameNode, String nameAttribut1, String valueAttribut1,String nameAttribut2, String valueAttribut2) { + if(this.nameNode.equals(nameNode) && this.attributs.containsKey(nameAttribut1) && this.attributs.containsKey(nameAttribut2)) { + if(this.attributs.get(nameAttribut1).equals(valueAttribut1) && this.attributs.get(nameAttribut2).equals(valueAttribut2)) return this; + } + for (node nod : enfants) { + node tempo = nod.retourneFirstEnfant(nameNode, nameAttribut1,valueAttribut1,nameAttribut2,valueAttribut2); + if(tempo!=null) return tempo; + } + return null; + } + + public node retourneLastEnfant(String nameNode) { + if(this.nameNode.equals(nameNode)) return this; + for (int i = this.enfants.size()-1; i >=0 ; i--) { + node tempo = this.enfants.get(i).retourneLastEnfant(nameNode); + if(tempo!=null) return tempo; + } + return null; + } + + public node retourneNextBrother() { + if(this.parent!=null) { + int indexOfThis = this.parent.enfants.indexOf(this); + indexOfThis++; + if(indexOfThis <= this.parent.enfants.size()-1) { + if(this.parent.enfants.get(indexOfThis)!=null) return this.parent.enfants.get(indexOfThis); + } + } + return null; + } + + public node retournePreviousBrother() { + if(this.parent!=null) { + int indexOfThis = this.parent.enfants.indexOf(this); + indexOfThis--; + if(indexOfThis>=0) { + if(this.parent.enfants.get(indexOfThis)!=null) return this.parent.enfants.get(indexOfThis); + } + } + return null; + } + + public node retourneFirstBrother() { + if(this.parent!=null) { + if(this.parent.enfants.get(0)!=null) return this.parent.enfants.get(0); + } + return null; + } + + public node retourneLastBrother() { + if(this.parent!=null) { + int indexLast = this.parent.enfants.size()-1; + if(this.parent.enfants.get(indexLast)!=null) return this.parent.enfants.get(indexLast); + } + return null; + } + + + public node retourneLastEnfant() { + if(this.enfants.size()>0) return this.enfants.get(this.enfants.size()-1); + return null; + } + + /** + * Retourne la liste des nodes ayant tous les mêmes noms. + * @param nameNode + * @return + */ + public ArrayList retourneAllEnfants(String nameNode){ + ArrayList ListeNodes = new ArrayList(); + + for(int i = 0 ; i< this.enfants.size();i++) { + if(this.enfants.get(i)!=null) { + if(enfants.get(i).getNameNode().equals(nameNode)) { + ListeNodes.add(this.enfants.get(i)); + } + ArrayList B = this.enfants.get(i).retourneAllEnfants(nameNode); + if(B.size()>0) ListeNodes.addAll(B); + + } + } + return ListeNodes; + } + + public int getNbrAttributs() { + return attributs.size(); + } + + public HashMap getAttributs() { + return attributs; + } + + public void addAttributs(LinkedHashMap attributs) { + this.attributs = attributs; + } + + public void addAttribut(String key, String value) { + this.attributs.put(key, value); + } + + public void removeAttribut(String key) { + this.attributs.remove(key); + } + + public Boolean removeAttribut(String key, String value) { + return this.attributs.remove(key,value); + } + + public void removeAllAttributs() { + this.attributs.clear(); + } + + public node getParent() { + return parent; + } + + public node getFirstParentNotClose() { + if(!this.parent.isNodeClose()) return this; + if(this.parent==null) return null; + return this.getFirstParentNotClose(); + } + + public void setParent(node parent) { + this.parent = parent; + } + + public String getAllNameParents() { + if(this.parent!=null) { + return this.parent.getAllNameParents() + "/" + this.parent.getNameNode(); + } + return ""; + } + + public node retourneFirstParent(String nameNode) { + if(this.parent==null) return null; + if(this.parent.getNameNode().equals(nameNode)) return this.parent; + return this.retourneFirstParent(nameNode); + } + + /** + * Retourne Le premier parent ayant l'attribut demandé.
+ * Si ne trouve pas, alors retourne un node null.
+ * @param nameAttribut + * @return + */ + public node retourneParentAyantLAttribut(String nameAttribut) { + if(this.getAttributs().get(nameAttribut)!=null) { + return this; + }else { + if(this.parent!=null) { + node nod = this.parent.retourneParentAyantLAttribut(nameAttribut); + if(nod!=null) return nod; + } + } + return null; + } + + public node retourneRoot() { + if(this.parent!=null) this.parent.retourneRoot(); + return this; + } + + public void recalculParent() { + for(node child : enfants) { + child.setParent(this); + child.recalculParent(); + } + } + + public int getLevel() { + return this.level; + } + + public void setLevel(int level) { + this.level = level; + } + + public void incrementeLevel() { + this.level++; + } + + public void decrementeLevel() { + this.level--; + } + + public void recalculLevel() { + if(this.parent!=null) { + this.level=this.parent.level+1; + }else { + this.level=0; + } + for(node child : this.enfants) { + child.recalculLevel(); + } + } + + public ArrayList retourneAllNodesLevelEquals(int levelNode) { + ArrayList allNodesLevelEquals = new ArrayList(); + if(this.level==levelNode) { + for(int i=0;i getContenu() { + return contenu; + } + + public String getContenu(int index) { + return this.contenu.get(index); + } + + public void addContenu(String texte) { + this.contenu.add(texte); + } + + public void removeAllContenu() { + this.contenu.clear(); + } + + public void removeContenu(int index) { + this.contenu.remove(index); + } + + public void modifieContenu(int index, String newContenu) { + if(this.contenu.get(index)!=null) { + this.contenu.add(index, newContenu); + this.contenu.remove(index+1); + } + } + + public String getContenuAvecTousLesContenusDesEnfants() { + String contenuavectouslescontenudesenfants = ""; + for(int i = 0 ; i < this.contenu.size();i++) { + contenuavectouslescontenudesenfants = contenuavectouslescontenudesenfants + this.contenu.get(i); + for(int j = 0 ; j < this.enfants.size();j++) { + contenuavectouslescontenudesenfants = contenuavectouslescontenudesenfants + this.enfants.get(j).getContenuAvecTousLesContenusDesEnfants(); + } + } + return contenuavectouslescontenudesenfants; + } + + public Boolean contenuContain(String texte) { + if (getContenuAvecTousLesContenusDesEnfants().contains(texte)) return true; + return false; + } + + + public Boolean isVide() { + return this.attributs.size()==0 + && this.contenu.size()==0 + && this.enfants.size()==0 + && this.nameNode.isBlank(); + } + + public boolean moveUp() { + if(this.parent!=null) { + int index = this.parent.enfants.indexOf(this); + if(index > 0 && index < this.parent.enfants.size()) { + this.parent.enfants.add(index-1, this); + this.parent.enfants.remove(index+1); + return true; + } + } + return false; + } + + public boolean moveDown() { + if(this.parent!=null) { + int index = this.parent.enfants.indexOf(this); + if(index >= 0 && index < this.parent.enfants.size()-1) { + this.parent.enfants.remove(index); + this.parent.enfants.add(index+1, this); + return true; + } + } + return false; + } + + public boolean moveLeft() { + if(this.parent!=null) { + if(this.parent.parent!=null) { + int index = this.parent.enfants.indexOf(this); + this.parent.enfants.remove(index); + this.parent.parent.enfants.add(this); + this.setParent(this.parent.parent); + this.level--; + return true; + } + } + return false; + } + + @Override + public int hashCode() { + int a = nameNode.hashCode(); + int b = 0; + int c = 0 ; +// int h = 0; + if(parent!=null) { + c = this.parent.getAllNameParents().hashCode(); +// h = this.parent.enfants.indexOf(this); + } + int d = level; + int e = attributs.hashCode(); + int f = contenu.hashCode(); + int g = 0; + String hashG = ""; + for(node child : enfants) { + hashG = hashG + String.valueOf(child.hashCode()); + } + if(!hashG.isEmpty()) g = hashG.hashCode(); + + + + + String H = (String.valueOf(a)+String.valueOf(b)+String.valueOf(c) + +String.valueOf(d)+String.valueOf(e)+String.valueOf(f)+String.valueOf(g)); + + return H.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + node other = (node) obj; + return Objects.equals(attributs, other.attributs) + && Objects.equals(contenu, other.contenu) + && Objects.equals(enfants, other.enfants) && level == other.level + && Objects.equals(nameNode, other.nameNode) && Objects.equals(parent, other.parent); + } + + + @SuppressWarnings("unchecked") + @Override + public node clone() throws CloneNotSupportedException { + node b = (node) super.clone(); + b.enfants = (ArrayList) this.enfants.clone(); + b.setParent(null); + + if(this.enfants.size()>0) { + b.enfants.clear(); + for(int i = 0 ; i < this.enfants.size();i++) { + b.enfants.add(i, this.enfants.get(i).clone()); + } + } + + b.attributs = (LinkedHashMap) this.attributs.clone(); + b.contenu = (ArrayList) this.contenu.clone(); + + b.recalculParent(); + b.recalculLevel(); + + return b; + } + + public StringBuilder ecritureXML() { + + StringBuilder sb = new StringBuilder(); + sb.append("<" + this.nameNode ); + for (Entry entry : this.attributs.entrySet()) { + sb.append(" " + entry.getKey() + "=\"" + entry.getValue()+"\""); + } + + sb.append(">"); + + int indexContenu = 0; + int indexMaxContenu = this.contenu.size(); + if((indexMaxContenu-indexContenu)>0) { + if(this.contenu.size()>indexContenu) { + sb.append(this.contenu.get(indexContenu)); + indexContenu++; + } + } + + if(this.enfants.size()>0) { + for(int i = 0 ; i < this.enfants.size(); i++) { + sb.append(this.enfants.get(i).ecritureXML()); + if((indexMaxContenu-indexContenu)>0) { + if(this.contenu.size()>indexContenu) { + sb.append(this.contenu.get(indexContenu)); + indexContenu++; + } + } + } + + //s'il reste du contenu suite à la suppression d'un node + if((indexMaxContenu-indexContenu)>0) { + for(int i = indexContenu ; i < indexMaxContenu; i++) { + sb.append(this.contenu.get(i)); + } + } + + sb.append(""); + + }else { + //s'il reste du contenu suite à la suppression d'un node + if((indexMaxContenu-indexContenu)>0) { + for(int i = indexContenu ; i < indexMaxContenu; i++) { + sb.append(this.getContenu().get(i)); + } + } + sb.append(""); + } + return sb; + } + + /** + * overwrite toString pour la JTree + */ + @Override + public String toString() + { + String retourneIdentifiantNode =this.nameNode; + + if(retourneIdentifiantNode.equals("feuille")) { + return retourneIdentifiantNode = retourneIdentifiantNode + " * " + this.attributs.get("nomFeuille"); + } + + if(retourneIdentifiantNode.equals("colonne")) { + return retourneIdentifiantNode = retourneIdentifiantNode + " * " + this.attributs.get("RefColDansClasseur"); + } + + if(retourneIdentifiantNode.equals("ligne")) { + retourneIdentifiantNode = retourneIdentifiantNode + " * " + this.attributs.get("RefLigne"); + } + + if(retourneIdentifiantNode.equals("cellule")) { + retourneIdentifiantNode = retourneIdentifiantNode + " * " + this.attributs.get("RefColDansClasseur") + this.attributs.get("RefLigDansClasseur"); + } + + + if(retourneIdentifiantNode.equals("meta:user-defined")) { + if(this.attributs.get("meta:name").contains("‽")) return retourneIdentifiantNode = retourneIdentifiantNode + " * " + this.attributs.get("meta:name").substring(0,this.attributs.get("meta:name").lastIndexOf("‽")); + retourneIdentifiantNode = retourneIdentifiantNode + " * " + this.attributs.get("meta:name"); + } + + if(retourneIdentifiantNode.equals("graphic")) { + if(this.attributs.get("nom")==null) retourneIdentifiantNode = retourneIdentifiantNode + " * " + this.attributs.get("nomObjet"); + if(this.attributs.get("nom")!=null) retourneIdentifiantNode = retourneIdentifiantNode + " * " + this.attributs.get("nom"); + } + + return retourneIdentifiantNode; + } + + + + /** + * Insère l'attribut evaluer=true à ce node mais aussi aux nodes endfants.
+ * Si ce node est de level== alors insère aussi l'attribut addMenu=true. + */ + public void evaluerAllChildTrue() { + this.attributs.put("evaluer", "true"); + if(this.level==1) attributs.put("addmenu", "true"); + for(int i = 0 ; i < this.enfants.size();i++) { + if(this.enfants.get(i)!=null) this.enfants.get(i).evaluerAllChildTrue(); + } + } + + /** + * Insère l'attribut evaluer=false dans ce node uniquement.
+ * Si ce node est level==1 alors l'attribu addMenu=false. + */ + public void evaluerFalse() { + attributs.put("evaluer", "false"); + if(this.level==1) attributs.put("addmenu", "false"); + } + + + /** + * Insère l'attribut evaluer=true dans ce node uniquement.
+ * Et celui de tous les nodes parents jusqu'à la racine.
+ * Si un node parent est de level==1 alors insère aussi l'attribut addMenu=true. + * + */ + public void evaluerTrue() { + this.attributs.put("evaluer", "true"); + if(this.level==1) this.attributs.put("addmenu", "true"); + if(parent!=null) { + this.parent.evaluerTrue(); + } + } + + /** + * Insère l'attribut saut. + * @param value : valeur logique du saut. + */ + public void saut(Boolean value) { + attributs.put("saut", String.valueOf(value)); + } + + /** + * Insère l'attribut titre avec le texte.
+ * Supprimer tous les attributs titre1, titre2 et titre3. + * @param Text : Le texte à placer. + */ + public void titre(String Text) { + attributs.put("titre", Text); + attributs.remove("titre1"); + attributs.remove("titre2"); + attributs.remove("titre3"); + } + + /** + * Insère l'attribut titre1 avec le texte.
+ * Supprimer tous les attributs titre, titre2 et titre3. + * @param Text : Le texte à placer. + */ + public void titre1(String Text) { + attributs.remove("titre"); + attributs.put("titre1", Text); + attributs.remove("titre2"); + attributs.remove("titre3"); + } + + /** + * Insère l'attribut titre2 avec le texte.
+ * Supprimer tous les attributs titre, titre1 et titre3. + * @param Text : Le texte à placer. + */ + public void titre2(String Text) { + attributs.remove("titre"); + attributs.remove("titre1"); + attributs.put("titre2", Text); + attributs.remove("titre3"); + } + + /** + * Insère l'attribut titre3 avec le texte.
+ * Supprimer tous les attributs titre, titre1 et titre2. + * @param Text : Le texte à placer. + */ + public void titre3(String Text) { + attributs.remove("titre"); + attributs.remove("titre1"); + attributs.remove("titre2"); + attributs.put("titre3", Text); + } + + /** + * Ecriture d'un node dans un fichier au format XML.
+ * + * @param nod Le node à écrire dans un fichier. + * @param filename Le nom du fichier. + * @param pathDestination Le répertoire de destination qui sera inclus dans le répertoire courant de l'application. + * @param fourniDestination Le répertoire courant de l'application. + * @throws IOException Exception Input Output + */ + public void saveNodeEnXML(String filename, String pathDestination) throws IOException { + + + if(filename.contains(".xml")) filename = filename.substring(0,filename.lastIndexOf(".xml")); + + Path outputFilePath = Paths.get(pathDestination +"/"+ filename + ".xml"); + + BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8); + + fichier.write(this.ecritureXML().toString()); + fichier.close(); + + } + + /** + * Insère l'attribut addmenu avec la valeur logique. + * @param value : valeur logique. + */ + public void addMenu(Boolean value) { + attributs.put("addmenu", String.valueOf(value)); + } + + /** + * Insère le poids avec sa valeur. + * @param P : La valeur. + */ + public void poids(Double value ) { + attributs.put("poids", String.valueOf(value)); + } + + /** + * Supprime un attribut du node + * @param key + */ + public void supprimeAttribut(String key) { + try { + if(attributs.get(key)!=null) { + attributs.remove(key); + } + } catch (Exception e) { + System.out.println(e.toString()); + } + } + + /** + * Insère l'attribut evaluer=false dans toute la branche de la racine à la feuille. + */ + public void evaluerAllChildFalse() { + evaluerFalse(); + for(int i = 0 ; i < enfants.size();i++) { + if(enfants.get(i)!=null) enfants.get(i).evaluerAllChildFalse(); + } + } + + + /** + * Retourne la liste des enfants qui porte le nom "nameNode".
+ * Et qui contient un attribut nommé "nameAttribut".
+ * Et dont la valeur de cet attribut est "valueAttribut".
+ * Sinon retourne un node null.
+ * @param nameNode + * @return + */ + public ArrayList retourneAllEnfants(String nameNode, String nameAttribut, String valueAttribut){ + ArrayList ListeNodes = new ArrayList(); + + if(this.nameNode.equals(nameNode)) { + if(this.attributs.get(nameAttribut)!=null) { + if(this.attributs.get(nameAttribut).equals(valueAttribut)) { + ListeNodes.add(this); + } + } + } + for(int i = 0 ; i< this.enfants.size();i++) { + if(this.enfants.get(i)!=null) { +// nodeAC nod = Nodes.get(i).retourneFirstEnfantsByName(nameNode, nameAttribut, valueAttribut); + ArrayList B = this.enfants.get(i).retourneAllEnfants(nameNode, nameAttribut, valueAttribut); + if(B.size()>0) ListeNodes.addAll(B); + } + } + return ListeNodes; + } + + + /** + * Supprime tous les nodes contenant l'attribut evaluer=false
+ * ou ne contenant pas l'attribut evaluer. + */ + public void supprimeTousLesNodesEvaluerFalseOuNull() { + List listeDelete = new ArrayList(); + boolean trouve =false; + for(int i =0; i < this.enfants.size();i++) { + if(!this.enfants.get(i).getNameNode().equals("setting")) { + if(this.enfants.get(i).getAttributs().get("evaluer")!=null) { + if(!this.enfants.get(i).getAttributs().get("evaluer").equalsIgnoreCase("true")) { + listeDelete.add(this.enfants.get(i)); + trouve=true; + } + }else { + listeDelete.add(this.enfants.get(i)); + trouve=true; + } + } + } + if(trouve) this.enfants.removeAll(listeDelete); + for(int i =0; i < this.enfants.size();i++) { + if(!this.enfants.get(i).getAllNameParents().contains("setting")) { + this.enfants.get(i).supprimeTousLesNodesEvaluerFalseOuNull(); + } + } + } + + /** + * + * @param nameNode + * @return + */ + public boolean containChildByName(String nameNode) { + if(this.nameNode.equals(nameNode)) return true; + for(int i = 0 ; i < this.enfants.size();i++) { + if(this.enfants.get(i)!=null)if(this.enfants.get(i).containChildByName(nameNode)) return true; + } + return false; + } + + +} + + + + + + + diff --git a/src/xml/transformeXLMtoNode.java b/src/xml/transformeXLMtoNode.java new file mode 100644 index 0000000..8a41f30 --- /dev/null +++ b/src/xml/transformeXLMtoNode.java @@ -0,0 +1,146 @@ +package xml; + +import java.util.ArrayList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class transformeXLMtoNode { + + public static node nodeRoot = new node("root"); + private static String codeXML = ""; + + public transformeXLMtoNode(String code, boolean test, node nodePrecedent) { + + if(test) { + codeXML = codeXMLPourTest(); + }else { + codeXML=code; + } + + codeXML = nettoyagePreliminaire(codeXML); + + + Pattern p = Pattern.compile("(<[.[^ /<]]{1,}>{1}|<[.[^ /<]]{1,}/>|<[.[^ /<]]{1,}\\p{Space}[.[^<]]{1,}(>|/>){1}|{1}|[.[^>\"<]]{1,})"); + + + Matcher m = p.matcher(codeXML); + ArrayList nom = new ArrayList() ; + + while(m.find()) { + nom.add(codeXML.substring(m.start(), m.end())); + } + + node lastNode = nodeRoot; + for(int i = 0 ; i < nom.size(); i++) { + + //^<(?[^\s<>/]+?\b)(?\s+?)(?.*?)(?>) + p = Pattern.compile("^<(?[^\\s]+?\\b)(?\\s+?)(?.*?)>"); + m = p.matcher(nom.get(i)); + if(m.find()) { + String name = m.group("nom"); + lastNode.addNewEnfant(name); + String lesAttributs = m.group("attribut"); + affecteAttribut(lastNode.retourneLastEnfant(),lesAttributs); + String A = lesAttributs.substring(lesAttributs.length()-1, lesAttributs.length()); + if(A.equals("/")) { + continue; + } + lastNode = lastNode.retourneLastEnfant(); + continue; + } + + // ^<(?[^\s<>/]+?\b)> + p = Pattern.compile("^<(?[^\\s<>/]+?\\b)>"); + m = p.matcher(nom.get(i)); + if(m.find()) { + String name = m.group("nom"); + lastNode.addNewEnfant(name); + lastNode = lastNode.retourneLastEnfant(); + continue; + } + + //^[^<]+ + p = Pattern.compile("^[^<]+"); + m = p.matcher(nom.get(i)); + if(m.find()) { + lastNode.addContenu(m.group()); + continue; + } + + // ^[^>]+?)> + p = Pattern.compile("^[^>]+?)>"); + m = p.matcher(nom.get(i)); + if(m.find()) { + String name = m.group("nom"); + node ClotureNode = lastNode.retourneLastEnfant(name); + ClotureNode.setNodeClose(true); + lastNode = ClotureNode.getParent(); + continue; + } + + } + + + + } + + + private String nettoyagePreliminaire(String codeXML) { + codeXML = codeXML.replace("\t","").replace("\r", "").replace("\n", ""); + // Suppression du node + if(codeXML.contains("", ""); + + // suppression node + if(codeXML.contains("", ""); + + return codeXML; + } + + + private void affecteAttribut(node lastEnfant, String attributs) { + // (?[^= ]+?)="(?.*?)"|(?\b[^= ]+?\b) + Pattern p = Pattern.compile("(?[^=\\s]+?)=\\\"(?.*?)\\\"|(?\\b[^\\s]+?\\b)"); + Matcher m = p.matcher(attributs); + while(m.find()) { + if(m.group().contains("=")) { + String nameAttribut = m.group("nameAttribut"); + String valueAttribut = m.group("valueAttribut"); + lastEnfant.addAttribut(nameAttribut, valueAttribut); + }else { + String attribut = m.group("attribut"); + lastEnfant.addAttribut(attribut, ""); + } + } + } + + + private String codeXMLPourTest() { + return "" + + "" + + "" + + "Mon texte paragraphe 0" + + "Le texte avec tabulation Le texte qui suivant la tabulation" + + "" + + "Mon texte paragraphe 1" + + "le texte en GRAS" + + " Après le texte en GRASDeux de plus" + + "Mon texte paragraphe 2" + + "" + + "" + + "Mon contenu" + + ""; + } + + /** + * Retourne le node après transformationXMLtoNode + * @return + */ + public static node getNodeRoot() { + return nodeRoot; + } + + + + + +} diff --git a/sujet.xml b/sujet.xml new file mode 100644 index 0000000..3bdf144 --- /dev/null +++ b/sujet.xml @@ -0,0 +1 @@ +A1A5B5C5D5A6B6cel D6A7B7C7cel D7A8cel D8A9C9cel D9J9A10cel D10A11B11C11D11A15B15F15F16B19F19B20C20F20Z20C21F21D22E22F22F23D24F24E25F25C28D28E28F28A31B31E31F31E32J1048576test Z1048576CE texet est dans une cellule fusionnée A2:H2Moi – cellule I201je tape un texte cellule C5234Le ori – cellule B85Le ori – cellule B9678Cellule F11Je tape ce texte dans une cellule fisionnée de B12:D219 + cellule E12cellule F1210cellule F13111213141516 – cellule E19cellule F19111Je tape dans cellule C25:C40cellile D39lui AM96Bonjour cellule AT97Le sernier XFD1048576???Page 1Prénom Nom2023-04-05T17:49:12.9440000002023-04-23T17:36:41.532000000Pablo RodriguezPT7H5M48S47LibreOffice/7.4.6.2$Windows_X86_64 LibreOffice_project/5b1f5509c2decdade7fda905e3e1429a67acd63dmon code sujet \ No newline at end of file diff --git a/sujet2.xml b/sujet2.xml new file mode 100644 index 0000000..b0fe2a3 --- /dev/null +++ b/sujet2.xml @@ -0,0 +1 @@ +A1A5B5C5D5A6B6cel D6A7B7C7cel D7A8cel D8A9C9cel D9J9A10cel D10A11B11C11D11A15B15F15F16B19F19B20C20F20Z20C21F21D22E22F22F23D24F24E25F25C28D28E28F28A31B31E31F31E32J1048576test Z1048576CE texet est dans une cellule fusionnée A2:H2Moi – cellule I201je tape un texte cellule C5234Le ori – cellule B85Le ori – cellule B9678Cellule F11Je tape ce texte dans une cellule fisionnée de B12:D219 + cellule E12cellule F1210cellule F13111213141516 – cellule E19cellule F19111Je tape dans cellule C25:C40cellile D39lui AM96Bonjour cellule AT97Le sernier XFD1048576???Page 1Prénom Nom2023-04-05T17:49:12.9440000002023-04-23T17:36:41.532000000Pablo RodriguezPT7H5M48S47LibreOffice/7.4.6.2$Windows_X86_64 LibreOffice_project/5b1f5509c2decdade7fda905e3e1429a67acd63dmon code sujet \ No newline at end of file