From cbec0bd63d9e8028f366ddbba7bd67ebdbd5eb05 Mon Sep 17 00:00:00 2001 From: pablo rodriguez <58742538+1-pablo-rodriguez@users.noreply.github.com> Date: Tue, 25 Jun 2024 21:13:22 +0200 Subject: [PATCH] MAJ V2.0.1 --- base_evaluations_analyseCalc.xml | 1688 +++++++++++++++++ base_listes_etudiants.xml | 1 + bin/.gitignore | 1 + .../Classeur2$feuille$graphic.class | Bin 25851 -> 25852 bytes bin/fenetres/create$1.class | Bin 1288 -> 1288 bytes bin/fenetres/create$2.class | Bin 1261 -> 1261 bytes bin/fenetres/create.class | Bin 20683 -> 21199 bytes bin/fenetres/evaluate$1.class | Bin 1370 -> 1370 bytes bin/fenetres/evaluate$10.class | Bin 1732 -> 1732 bytes bin/fenetres/evaluate$11.class | Bin 1518 -> 1518 bytes bin/fenetres/evaluate$2.class | Bin 1662 -> 1662 bytes bin/fenetres/evaluate$3.class | Bin 2555 -> 2555 bytes bin/fenetres/evaluate$4.class | Bin 1824 -> 1824 bytes bin/fenetres/evaluate$5.class | Bin 2130 -> 2130 bytes bin/fenetres/evaluate$6.class | Bin 1572 -> 1572 bytes bin/fenetres/evaluate$7.class | Bin 1306 -> 1306 bytes bin/fenetres/evaluate$8.class | Bin 1054 -> 1054 bytes bin/fenetres/evaluate$9.class | Bin 1810 -> 1810 bytes bin/fenetres/evaluate.class | Bin 14200 -> 14312 bytes bin/fenetres/setting$3.class | Bin 2180 -> 2054 bytes bin/fenetres/setting$4.class | Bin 3141 -> 3141 bytes bin/fenetres/setting$5.class | Bin 3670 -> 3670 bytes bin/fenetres/setting.class | Bin 27373 -> 27373 bytes images/accueillChargeEvaluation.svg | 671 +++++++ src/actions/actExit.java | 161 +- src/actions/actNewFichierAnalyse.java | 75 +- src/actions/actOpenBaseListesEtudiants.java | 38 + src/actions/actSaveEvaluation.java | 55 + .../CreerBaseParDefautEvaluation.java | 2 +- .../creerNouvelleEvaluation.java | 121 ++ .../ecritureBaseEvaluation.java | 133 ++ src/baseEvaluation/myTableBaseEvaluation.java | 2 +- .../recupeNodeBaseEvaluations.java | 24 +- src/fenetres/baseDonneesEvaluations.java | 97 +- src/fenetres/chargeBaseAuDemarrage.java | 2 +- src/fenetres/create.java | 37 +- src/fenetres/evaluate.java | 9 + src/fenetres/setting.java | 16 +- src/resources/BaseEvaluations.png | Bin 0 -> 4012 bytes src/resources/BaseEvaluationsmini.png | Bin 0 -> 1724 bytes src/resources/accueilChargeEvaluation.png | Bin 0 -> 30589 bytes src/resources/bye-bye.png | Bin 0 -> 86885 bytes .../sauvegardehistoriqueevaluation.png | Bin 0 -> 3856 bytes .../sauvegardehistoriqueevaluationmini.png | Bin 0 -> 1712 bytes src/resources/saveEvaluation.png | Bin 0 -> 3681 bytes src/resources/saveEvaluationmini.png | Bin 0 -> 1614 bytes src/xml/node.java | 35 +- 47 files changed, 3038 insertions(+), 130 deletions(-) create mode 100644 base_evaluations_analyseCalc.xml create mode 100644 base_listes_etudiants.xml create mode 100644 images/accueillChargeEvaluation.svg create mode 100644 src/actions/actOpenBaseListesEtudiants.java create mode 100644 src/actions/actSaveEvaluation.java create mode 100644 src/baseEvaluation/creerNouvelleEvaluation.java create mode 100644 src/baseEvaluation/ecritureBaseEvaluation.java create mode 100644 src/resources/BaseEvaluations.png create mode 100644 src/resources/BaseEvaluationsmini.png create mode 100644 src/resources/accueilChargeEvaluation.png create mode 100644 src/resources/bye-bye.png create mode 100644 src/resources/sauvegardehistoriqueevaluation.png create mode 100644 src/resources/sauvegardehistoriqueevaluationmini.png create mode 100644 src/resources/saveEvaluation.png create mode 100644 src/resources/saveEvaluationmini.png diff --git a/base_evaluations_analyseCalc.xml b/base_evaluations_analyseCalc.xml new file mode 100644 index 0000000..48a5db8 --- /dev/null +++ b/base_evaluations_analyseCalc.xml @@ -0,0 +1,1688 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ??? + + + + + + Page 1 + + + + + + + + + + Prénom Nom + 2023-04-05T17:49:12.944000000 + 2023-04-23T17:36:41.532000000 + Pablo Rodriguez + PT7H5M48S + 47 + LibreOffice/7.4.6.2$Windows_X86_64 LibreOffice_project/5b1f5509c2decdade7fda905e3e1429a67acd63d + + mon code sujet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/base_listes_etudiants.xml b/base_listes_etudiants.xml new file mode 100644 index 0000000..9aec320 --- /dev/null +++ b/base_listes_etudiants.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/bin/.gitignore b/bin/.gitignore index 46b4fa2..266d0d6 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -13,3 +13,4 @@ /actions/ /baseEtudiants/ /baseListesEtudiants/ +/accueillChargeEvaluation.svg diff --git a/bin/AnalyseCalc/Classeur2$feuille$graphic.class b/bin/AnalyseCalc/Classeur2$feuille$graphic.class index ae683e691b207cb3562214e0095353e6c4335437..88c67ddb5e6d7baf61e4f974cbf67ee7d87327cc 100644 GIT binary patch delta 215 zcmex;lJU<;#tk+?j8U6yg#uML4>GVaa4|42|Cn5(zI3yV`3okF97)!FEK3+tC+k>g zGKOyswUT43-_JUc`2y=?<{PZjnP0KaVE)cJhmoCufguf|nURB$6UYM^!^p+R&AtyEZtkaoavd&=s#yW?Qoq>TN4WgBigOL-+0~*4}#mLRT1ZFJ* zvY5fF<%}yBSQr;Dg)^>XT*bi3xRS|_kq0Qt#x#*Jjd3;O8U}Wz=L~Zh*8;^jn9nn) uGp+-QaWHRYaAsT&6yp?O+yFFPjDZQNVIu=O^ZCi_HXe+Hn*(gtXaE3aQZqaN diff --git a/bin/fenetres/create$1.class b/bin/fenetres/create$1.class index 0f7c43f7a2b232ef32d66ad31c2ddb0c811d6008..e24586e9013404663af6fc8f8c735d1af1c09197 100644 GIT binary patch delta 43 ycmeC+>fqWS!NT}svLs8ofqWS!NT}@vLs8oRk0LJ5eXQVj_un9veHuuhVfFgTfsGZUJfO(@b_K6h3u*kUsk#qC%q7+zw> z;-P3{adj0F&t>XS8I8mf!AN3BFx+P6VQTruOdiY%u#%db$?DNKnaLlw!**k0UbG2A zM&=9=u<|NScYUDUX{;b9 zV+%s@s!+T&8V4D8Ig>ABSfCNr;>>Y4429voDUIP!B$SxOq(_Wg0@kPmRlGC;!*dS= z=j^B9RA$jA8pf1A#efwM(-@2VROqF0Al2Q0`)Mqd$-sRq>Pfx4v@cWtoXIoP^V0-p z?EV%Fpny~lv}h6m)jrL30vz6%umeZr^61<&(I?BAQ!N@uyLoAPXVEdl^-%>jIt#2B zvSX!9!-J7vcwHPDoko?iQ3z7s5#~_J!$AmKT>>22JbC02nR=E*yVD>k&9SJI_JqXN zgd+C5ww4AvW|#$Q)P0Sh~V6Im3V1UXUxq} z`)Q#wY_UayX%9cJSZdKBax{K98K{HMdaSja4)fBXOrx^bS{#YDwYElM3A?E#8a=uq z(lpDq!!y@5+N}vF5Q`3%d3v>Cvx&Myu<_{nSg;Y3F&$~qQ4};vBC#YC4`DyxnGwqk z>m*i&z?h7dF*%IR`(~Mh!BTh4x%esP$VX9RY4WYf53Rl>% z7Q51DO6hE|C?dP?Hl@VDpWa~HOUFQM2uaF=YZB#^(Qq{8r&fx~p(nuIBdV*bM=p_h zR$H`&)&j-2otObqG{>TCktQflmoL)r;0hVP-lAjaIIN5DbvOd1JWM8iC(ub=I+1Dj z^t!WS!Pb?b#`w(0>QF2ifu>7XbTXX+r33;P*6C&lQ>n}I2KjDAOqRt?v*>g>18Ngf z)dtswTH0Ech9XVTHBe!ZCLC11>{%8;<%7e+Hek=B-+SpSm+j0N>0XP@rgNY+Fz3=x zQ(~o28&v{wo<-+NR{^@_*rDc?38BUx1mHq5s#@w7%cu*bbg4y`37rZ-C)uemp0rc(iqOEZQ1w)*H#Sh*awINBC#ghjStYarN-V_PH5 ze!7Wn@zTwZ7;~~lQ&fh7ad6YEbQ`t^k}PsTnTB+yP#hftb6>uAQ4NmZTDn76@lI$b zcX+B#u)o_?pxH`kMq4P{WXB3qZ(h`io&{?#Vl3>RA5UjW;rVOsG zR`b&~y4OqFvH#9}7Io17fTzX6+VfX1?VY`e`36lWf zJ!sKG^e`kW*xG7~9F57IDWzY#Am{E5Dt$9OYSCk|6)()J_&YxO3$#wDbp6euC!{OC zAr_1@u9OA;ZqZZp53p<^>dX$kn_~QIoi4ohj786i&i8?TKqt}F*V6MAy+AKIJa5

K?KdWBwPvH&i;Fm(FY0h;7JW?rbi}SQ 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 literal 20683 zcmb_^2Yggj_WwEeCYj0P0STcv3K~%m5+IMnTazKioLJ9 zDwb7IEZEyx5OjiORa|>nd;MA0URPJQ=(@`9d+vL0=1mga{rrD_gv?0XnaNWygA88hs{)) zvXjwBY>AyrMHBJGb+t@9k7>ZHL_C#_#M4V6u`at1q~#AY6@V(x%IoupHKB1DQz&J} z?3VQWL@PkX<$(xVb*58Qry3m@P;G3dDhFd$mDpGz6H2)n{iAX={tNwA)R9 z0Ay)8k%-NVBo`*5@s?<3Bqp%=yf^@W4RqM?F2MEyX>i(Q;O4G$IuW0}64S&wF%8Wp zHq&$iaBzA>tT`QTN_3^_?Ub;cV%i}exGAw>Ma<5k3~g*lCStLLk+|I?^PQRK!ca`% ze5@Q4hACTVC)3fENX%(9%x~8pJbGk?vF2D^ye+{rBp;|g(rm|s?M{pyt4$`NX?J|E z-3wM26xd+YYAdq{oh10#TTSRS3`+fah-j_BBMKX{<%# zXcwlU=?1Nsn5rxaQAvO%fQkM#I7H)VtN>23Xdn#=(C$pb^N8nGD@2nW*k4$*9fhU3 zmqov%y+M10orXmBUdZjo=F8-~>>^K-F{fFyJ?#*neR`{kSE6Z+MR6#onTVugdmi<(KqELOAaCKx=x_VY3 zmPm%EosN`^gheSDTUS>%Ziygbt_kV{11UQ_6BAvLOmxLtVF2B|&f;UI1wLs}iqgKn`c~5F0IgygksWvcWTdk_+LD?bUl~m%;;>d}i`LN5Ff5p!5sZF7m?~U3 zHq7?}F--Tl8z`Dn{2_JG!DhEvxYxLHMnKs+0Oz0`*%d zt+nVJS*H@Llgw1aO4`q}=zRJebjjDg$c~|ZrQHNOH#~3MJ313_teU&_7g}@?tz+5_ zxUQ?26-%V-1)X-%3?Pz-y$H}H7{D*@bsdovc3n#%9-vF%W3sZ;5sAiYIy-}OIYzFA zKTUKcTi{h~_zS3Q%f!z3iV$s}s{(W-^ug?`(f(PnNGfH~)pQM}h$UI%qB4!@&qz3S z11`II@uGTc!Nqi)h~o9II4-!?C*0rY8b!aMnb{SMwc5#Ix|wbX(C;DM!e4buqN5`c zhqJQiR=N$s*c62)7PFJ%)wNV1+DMxMbO+|&yU(J{bSGq5yrjLLjcJU35(}D-fb>jr zY^$FqOymZt2~sx%pkhLW)b6(E9_oRHMLIie(W41|N}kQ^!<;)inCYA8UW@LNsRZCE zC1wfIR@jsZ>H4EZ4@y^2b21WdX_o;Xw&)Rh6e62WIMiWPJ;C?eX_39hEqX%ico6b~ zbrMT_F+F9`pXg~v=8c$O@jL>e{H6^vWqQ`4=jeGR3+N(CF0|iLIKYmjc+sMl=w(qFm#J?o`WyWnssIHdJNiCA|MFYG zETBdIrXL{FkyZ%sI9GrjN8lMGp9FjAVcf$u3$ltZy4>0H>@rF$jMW=kzq%t<9haaO ziq6_KQ)Y%U6Gq*Te@<@$nQ7 z@_4{CB;tuwCnBC!G%^fZgD6=8PqKJ2BV-jJb+(IX$9&CcHoI8u^qNhc0vNIG9nlq0 zgz~W1Zi?0rUEyqHkoRPof6$akovWwD$G1geu|xjPl_398XzmW04l(cFJx$C1)4w6! zgQv<)Az<6vU3>pd`IN%7^nF{zWKHIMEZ$e5fI-Gu*{dWJT@tld1$aMbuZT+4)-`s< zqDHMlJcDP-=(Cu{kFE1>U%po6OCJUV;%tlOh^9C@CjnB?jMpxaKkKD?p2Y`ny<F*$L5o`$wzm`(xB(ftT^~)sy4y*noqalQuY`(M=K)~Iq8ZPc!wi_K(I#x*sKrO{ zk?=cm(17f&#!2mP^ns0ry6=pMyQw5Rew8dT0xxGkq@6>c*A{K2~BQ#c7yjlh*?@XkSqb1@_idt*qoI?7K zw)hz7ALz}v#;_m(0XE5wyHPnqwk)T`3C7{Aq8%$>K=Zc3gd-BFKw*nw#xp~D4Ty0N zIfo5^VhFMwtGC-=Swp65JSBLEq0Qk_b{o9lRARmjSC2CY=x|c90e^oe~Bw@zR6COHX(7Iee;?qRF*D<*{hb!y!nZ=cK<7Uv25vAE zV=Usyf*akPQDAi z9^SGuDn|@IlSlN$#(eJJZi~0@-JsDCN#lGGwqp;!&zjX9NjBO?b=mP21Y?d)_$W0v zNTAfi_XhY6{jlnSSbQJf4`FUY_Kjs4J8pS^A8;4a6H*h(2l+v8V~!&2WQey?O@JT4 zjzo-#r>gOFI-8PR5RHcs0rFNx((-S9BD(+{MaM33zZB?-h$*6^ms- zB^vF{2r}_RGQh}ThWOANH(3*lh4?k0`ev_r8!zh6eM9=+$>$ysS}f9;vJHW^1>ikw zh>yMp;E;G%=Jz2OZ;W)MD_ZS}Sae0)u0U8Jq36dy_2v30z;xim%;fr5@J}uNj6Zkc zOtGD!GkF%u7*q+ik;?d&MhL-YVBx+H4w20GS3r8(oaO%t?9r`3M(VPikCC*b?j9!r zMy?X}&Cn$F*;DZl|3k(={^H*_0|PJqo%A7t>C*=@_;2(nBxQa2VCA++p9WXHaT{?^ zm_#CBXonQ?lAtPrxYtMRcu)o5@qAN&3?Sv`%1%NdQBZ{Oahj9a4K4WPUuLrstcTTHHpZjSz&?G&w`okQ#XCoF_%FBZAaur_(s?$9$zW zCy|6t!DiJ)lQ zhtP;S`s??c5@>ZecUt1sdfnBDf`Nk75qC~YoTG=Lj<^^@B;rnCzS+jf;vVBhwZX7k z%664@#NF9so637N!8(8jF#Q^p*C0Y|8bnNS%V4C^Odw0Nq$6&&+TpZUz?c<+X+iZX zuBLFVgQ5!bwh)X{=>JeITuiBdqFm=9L7FquFa6H+J0#81h08?}j+ zF1P~68imx!qFoTRt~n-}lafr!$bmB@2nl3V*v5uR_i8)Y5|ztJ0iJ8eI^_Tn>-dE_ z+fr*K50`^jq%crLbF21+I@eO?NrzlIEJDbTz!7p#A>uE?nPfDUg7a{0mAh68oeM2> zk(>w1U5@2l6w^#R7eR%`Yd5vUY=E-IoDZX#`n_2h~RSEgzUMn9h1Q zgKx^0qDIHGhSVK024enUK4h$g*j6?4!F-q5FIl{y zSS_SQDsa6qP9aHf4`w|V?FfgQuK?yTOFiz1vB*nMJ(<7xo?~|S{ZqaVY)Ygfv4sg- z^oG<^!s4^Y^5!QxkQhi{(1{dqMZ&8 zFXfA?pT)f5DO4eFAFEgA^cjEBOx;7ka+`S@)XMdMkAzNry5a;w=Eh* z!vpHi2qp6d%{}&Tg(0NgkznC<^}eM(kcF26Lua*v>LZ~0WCDU9jHKL6bhhkuQS(pb z=qi^_)ileMi26k4^hLgaM>>rSbtdy=e#X#*=OoFf9fO7ai=cj;zpH7tTX3=dI2XX{ zllnxY)iJR{@S3HMYh&64&HqW?g&L4CH`fjzBtnC$sZOuEUZOGZc<6N-jIiTKGuHzB zO5633ndZvQo{f;rRW}EB?0*625-kC!7u6wq7j^whJbIzfvbHd}E zsyK%f{u6iHjmW*b9%$)7l7t6Zqbay#%zTKMk`tiD*0@uXJJc#1bm?+S579%x4MJ$= zNfwMgVhK6V+pX7OGLlleT0*mYz-c9VxDE&Oc91Fmlz#%;(%XAyr+IXQn-P{CDXwog zbj>*^NI5WeDx#dK~KLiM>wh z%}o1$@)pt)G@dw((+G}-xw~uj&D}{nmyvDT!_rgqFQ8D7)>aW%_u(AVp}vd4yqxW4 z#_ScG{2Zh#DBe0DhIRzG+`Azp=2_`Bw~7L~ z$kL4hxV}8dh`iJDnq)GvMlJxRh4dPIOh6y)hWFJbr_Xld1YI91 zcBRfeXZD+dphkiv^O8U}C5Gcf(ae*6!VWDFh*OZH=u<`g`p&8M<6EdOm^f1qqA$^x2K0L58-0wHtb`FUOJAlhcNT3CJPACm%T1o&2t=vh>yZ8pr_dCS$GG79e<}j2z9zfvWq!4NmtueM3NBk3ACB96|E|So%ic zsw562o*lC#0}tq%e~Jb1t|CvjSo&6t^iCu|+Qci2JE*U0d2B=8Z_*n@Oz#l?=0N7n z+i@J5Eq$j(N*8jL)+60NVd*tSf_1m0w`inuE}kQ7C%kJqooBp|4l|KHXwxhA1!hT$ z@6G}y>>*1(ENfwT?Pl?z6pvc^F_~<(!2GA2>h43qk$7egS+%P4rX`ZGZ#!9{l9f6YCj_MLL>W zBfCz*6BzxnrC;&Fw^=Y9>4om~bx6OaUk_+xYWYXE&UG*zv0M5Lu{&Z#8*s^jSE_>Y zmZjeodSdsM$fH9*G@7@UPV!RXyhxZRGLBqoCKL?U@ew>$OSdOlVI|+!9|rUXh|`T0 z819{URo5G~0T^jR3YJK&vGhm!W6ZlF*TnRcKPYoC9pZEGoCBHNuJSIrtJ5Ea_kGin zhu8$c@Pq&Noz9RykL&jwF6CK~Sga8~f7+lT{az{UA`#{1mVS|TLBnTgfK1iJ@oK_6 zR<%fn^4v7~qU;GBZ^x=7+`Qp91X~z+k`66pKU%dY}U%cNpUp%(QSINV7Q?H<% z@g0saM$s-9aaYvZ4HraHdT8{rZrW`#Rrb($lqPPb>K>Ym(jJ>>$|jnUp*=U#)E=6? zZ1BF_wBKf$b%&uo8~<*P84yLla|;gEq8RZA+KrB+Jt$6d3>1DggO_#QsOvGRLi_m2 zZrUFM&c!hE?xF)wY(R0rU9_+=LyK;pV0~4F7FQNzX!#wWusta6jK}(#WYkfZ3E`o6 z0ohog7<#+VzY^`MXbhf^SJBaC^kL3ebf}sCD8L^^hl5%K*rlYlp_v1yZmL$*jT13GIZ1y>dMeD89HI@ zbgy{Y+I=c_z*?QrS{NIF@0s{!=I)fqWs^uoZ{}V{Yw3;| zdIMh!`8HtR>!A;q>2CUXYC+|l^l2FD^f{WpmdfCNWawJ~{L$U$sfFRf9#+e`xgf)Z zUSm2E#>Rzz$uyiDvci zc4*$dpw#N-5gFboT!cpH3m1lqzy$AtLZF;?MadQNsl}V9dJ~Vya3u;3fht`($Pk#2 z(*#Uop#hsHCC+fQe0z8g;iH^?QO*y7_p5Dj%{7>+D{cE)T zNRL1vALZfnI9JdUJc*v->3D-)OV999dX5jL7dT2Uaf)8yW9c}n&*?+{o<35VKE|c`C#sY_Rol^LxHSD%?L*(Gdis}Yq94@3 z^rOO0EO6bU)Jd$>8C;;wv%idAM9XM{8UGKT?;b~c*pW_ z(C#T}B_EHHqKK;F6Zk}|+0*<6pTs9a`@hE1n^Rz$3ps$-OsAq$#1;Ho%p^j8Ntm4NpSJ_~J@v1gM=Z^M)<*fYlRT^yhf1Jq#t zP7cuY0O4`ii~yfac)finibeRLB;L}w_O8L$BxCO&E9We$?B??_d;!WAN_ky|FU}eL zftU>O7#hfX()PTcSqKY+fbK4Yf=$I=F>yuRaB~u>eO>j4{tC(TzE$OXS%$BeS`aRH zgeJmF@U^Dp#;vq*YGFCwwuLuNg(V0VW;i37pW%Bhp~8ZFdw45!?T_93kYha_hV^(f z!;e9^d-zFI{v;I#>S=*8=Hyv)Ja3?2TV6orC8v_%m&Mw=hL+d8?l(|*E3f-)wEWrY zeixPZrQ(e7fs7%RNh~dw^GA-U&G08;t-b*8mj)A+uTc5A7iKUV><2UG$3&$U<~K5C zak$vS{9A6!;vW77hWXZviOP4VeD78MjmnQ+W!tiD1p|hKE0$F#?olwr3LD|g%!~p% z)z2s)|0t;BMnNSv3M#o#VA5U&v0kI7LYWIJojZyO&iD42I3zdOc{v1r0 zy?!t)KPD=@Fk#jonmQm1k8bu%mF319(4)#R%uq8XD#K9OE;nXaFb9SQdYC)pFbDRi zkpSMwV4_li%BURXE`m8IJP4AkMlT(?o<@dY_g_Xsu{3xUODaaP)L6kN4VQXj!CZ?I z7s)E^QHaviL^D>YkST@t6Ebck=<+YA;aPJENw0E#acP?rG@WN4nuXfJ1L*T?HSHz>ByJKf^u% zrmh~QZ2^_>LK?;g;s>;gXd*Y#UfhJ=m@cLoKA0N#5L(WM(h81Hiks;~ZlSZemCk3I zHgFr=!YlAgt#%m2C_TwBID!uPjN|kzC%BMP_yI>6KXT~e-FYRRoga&Nh6FsCs- zj@Q62pAM7!J3f&whC#lLPsMY{)A(VuKF`1Aw_#{M=il&mFtb1MnW}`>;_1^lc+PV! z-q4(oD{z}0$+zp#oWU7*H%@1_=tX?DUds3A!?;Jc@*i}J@5PzkeR>T) ztWV}g^y&PlUdxZ`i}(qBDL;ubk!SSp`B}Y@pVM3Td3`Uxpr7DZ^fUabeuZDtZ}9)< zPxwt_HE$aW{h}ld`fJxhqonp#Ghm~U45|J2NVuw?{zTQFq^V55qh_MF0O9lwY8KrF z8$OZBRjrzhD0eTop*d=Qgsu(xS~XYIp*N+ESMyLRqF40x>Hw4iT&CVp^(Y1T0Cl}; zK&hDTQ2VL*D21@5|DzV5RD#vKQY}Qu!aBC815p})6&$Y?p)?Rt`q!!vr9pZ!ZB7%r;C{IoKep zjRM|L36M*NOBV1_CIl}Y4EKW7&98t+RN3T2Q9MPS1j^P5aFfd3mwBsp_ z&oMhT40tr7_I#(crJ?aEN zo@C~Y%E_plnni<=jG5(?#7&tzGD8!vryo-Ze+Efff>&?stJ4-Uh>_qCL47=*pWw9orm#l>NKbZgTIC9bd(gWQh8?*)Z0-B_Li&7BS_&uW|`-K-ly-Q&_u7~U+ zs8MI$MV~^VKGhj@mV6;t=g7BQou5$`NXgR!wXVL(b7AXU7p5+&0>TCXgPdP2I|6t| zSJb+O@gDp&S@`iDJfz=&DhG)FMhy3OkPP3n3N^~Nl!KxKh%2Jg3I)Vldd>Kx~P zYZh>VHwLuHwa#dii*b7vBV6F2h-P^>cVLXo7{dgpF3z1<9AQUvBYzg`=md~N zLtG@}=f>l!%fdz3fuJMqK(6WlCl`Mz6-_%SE2*-W*Oaivv~h zaP9}r1A>!_In^Kg!$ByMomP*!e3=_AbgPFX;YEs^QIBQ=O7%pRgjo~BEWMDQ!njWh zGUCH>^-M-Rhp$5<8!x_?PXw`!$Mws=epR^k#fYzEp~F^orii(G1HW#L6x5rW)mxj? zTRrL>ka;(w-jj;EFCThTJ{HE&;Ugd|J?ax6eI{f3qRh`dtjod!vSSbMP|Su)zl0;7N~6_uRF~RYtyDE?6`cHPb(lI@wW(v#a-2FI|DCQ* zQ0vu+>RNTOx>KE^9#f~Pr(ykGg|&Md_Um(Xrut5ur3b3Bby%IFE7W;H^)Q*6CJtv0kk%LC~^ZpP??(=cp_62DL$7r>-*A^=ilBxz=@xPO5JZJ~6fGnd)yS zDXhv{>hCCNtjDeDA1D=ICDy2aqEv`As8!#hRD{`=s_#$=;8!YdsDGgpL|A#F`W~fX zwKsRDf1?yqE8z`(K&eFCiGb%vlq@}oRwDcvN&|E&%|y;Ulm_Yz6wtWd!nr4oC_EcY z3t*!q0UyHUT9@lWU9?39)>EJ|qX%TeaQr`IKt$a{gVfECh+E7|oy2{JJ5vd#G;ukI z>JJ-Fa* zJxmeG1sT1A^V!iHK%pk*PVo+^owC)xEdseX{;W&v4a8*LW^S*LqEJvQ2ef(*bD8opHV?2e5j+Y16ulPBirc zt2XJTj9!Y*@{B$NpTje{1q@eZbQ?Z~3*g0bE4~~r>qzyGQuiX1y^n^f`)P!FfOb)T zq)PQL?X4c6+3Hbhz#GM1sVAvfJxyKe8TjUB=~DGP-Hzvj_p2A_5%m)NNxe)js@I^4 zZ{jrT9kb?g!ma2-J=WY9G}CE1sZ&^W*~cK^*DN0e^aKjYI~r#%=mkUpa$LQ%@)5)} z4SL@jXeRbGJu;(LZ{-bU(T~HTucxuH=w4U1KB2)Y18h7tU}@F(j6V5P%_F5FqffhP z+uc>UQ}Ho`fElm)3e=}mq&|aSe@>&+7qmNq>6z+Fn4r&Ke!el&sB~B|83}l!rTPp^ z2)PL@(7!=Ru16a5Z*ice&C~``!4LQ!Dd`D34ayawVtuAQ%bnn^_{yIG>_{%ulZzID zN_v+P#rkZ$whx9rr#HqnAI5q5{5}{|-3vn(`Y?W{FX)4z-s+7};={O5U(^@l`ra6W zd>HFIHNz2Vfl;&lF!PK);%)Wo28VB9kzY$(YFQm`F7yGKFTr5Qz>t zlc~*4W*;Lz{ZB^v`kRdWR@|M;1bpRB@jdzpqAmJq;mGHv^i-T~>}y7bBPtEaHL#01 z-RKNlC+=!=M!&R)rs8i#znal+=BOCgsi$FH)2UqV<58jl{f>;J|E%A|7xJz@A+0~v rU+BN+FVTWaM_!IE{_r{O_d@53)9|nL-zcpAj(U(Z{_g_k@P+>iO%U{- diff --git a/bin/fenetres/evaluate$1.class b/bin/fenetres/evaluate$1.class index ba7b04ee7c25c693cc3d2b1adf06e3427acbf543..59341c3c9e5190f873cf16ce4d4ff0837c820806 100644 GIT binary patch delta 47 zcmV+~0MP&13fc;=yaXNS00{x@038AD03`wM0678h07L=t089b$09pa)li36~0r`^> F1xSK%56l1n delta 47 zcmV+~0MP&13fc;=yaXNJ00{x)038A403`wD0678Y07L=k089bt09paxli36~0q~O& F1xR~54|@Or diff --git a/bin/fenetres/evaluate$10.class b/bin/fenetres/evaluate$10.class index ec1ed8a6ee1b23a6353efd66c8054408f135d586..d63e66741b3b177fc676e4d08225058cd7c6fedc 100644 GIT binary patch delta 59 zcmX@YdxUqxHCEAU44h2283dW`FsL%!Ww2zr$Kc3xZSrf@Xwk&GcY$G+QPBDt{5c diff --git a/bin/fenetres/evaluate$11.class b/bin/fenetres/evaluate$11.class index 4df4a7628f3e363663d862b87637bf455dd93290..4af77cc9fb7f62676922c7a1b5955b2f1120b56b 100644 GIT binary patch delta 56 zcmaFI{f>KsEvxKj22Q3Q41!EQ8C02mF<3JFW^iHp!{Ed8mm!Mj^W-R2CoX121{P)} M25x5N$;((h0PqYC82|tP delta 56 zcmV-80LTCC3+@ZBJp~==00{!`01*Q403`zP067Bk07L@w089e(09pd-lUfBr3Ig~5 O1OoX03j+F+rUgg PsstGXnS>^rv3URhH!%pJ delta 60 zcmeyz^N(l4AyzrY?+l!be;8yL|1zjD{$sFY{LkRR#K7Rg#K;iE_hA1ZK$=f(K8)`9dFzGOe zG3heMFzGQUGU+p@F&Q%GF&QzqGZ`}^Gnp{tGMO?IFqtt_Fj+EGGg(cZ#hC~I1Befy delta 95 zcmew@{9Aa#Ob%Hg22Lh%23aNv2300W21_O>1{Wr21|KFFhA1YX$=f(K8!9qzFex*L zF{v=fFsU*qGO01BF=;U9F=;ZmGifm-GifvAGU+fBFzGT>Fc~mZGZ{{v#hC~I;jj+m diff --git a/bin/fenetres/evaluate$4.class b/bin/fenetres/evaluate$4.class index 8957f1888e939932851be76e3afc29d90eae5038..3850d7a3323ebed2f8e8b3f3e78dea72de94a9e0 100644 GIT binary patch delta 67 zcmZ3$w}5Yh2b-)D11FOkgDjIfgDR5;gC&zEgA0=vgAbE8Lll$KgBw%q(it3_<_^ delta 62 zcmca4a7kc82D@Yk11D1?gCJ8BgDO)rg8@?vg9TG8gBw%G(4r3(Wuk diff --git a/bin/fenetres/evaluate$6.class b/bin/fenetres/evaluate$6.class index df121fa058dc93c21eb75a3cff3b077e0fb9c581..d154768169e493e8a3e609f45a345ec1171e3e94 100644 GIT binary patch delta 55 zcmZ3&vxH|uBCBi#11D20gCJ8KgDO)!gC$b~g9}q5gAY>^LljfRKrgjDq Krq0QiSpxxG=?v2V delta 55 zcmZ3&vxH|uBCBjZ11D1ngCJ8WgDO)QgC$crg9}pygAY?BLljf~22Q3`41!Fn8C03pFz7NZojjM>f^qZYYs?-1ueS;> delta 35 rcmbQoF^^+I53}GL22Q4h41!FH7*v@SGw3qSnLL--f^pU4Ys?-1tTPGu diff --git a/bin/fenetres/evaluate$9.class b/bin/fenetres/evaluate$9.class index a6613d2fb890e487a933c991516d4a78250d78ff..d1fc52d58ef8401c7466ce13f7f096da9bd932ef 100644 GIT binary patch delta 59 zcmV-B0L1^24w4SAO9maf00{!W01*Pf03`y!067A}07L@A089eJ09pdNlV}D^4afin R0?Pml0?hyv0?w1c22s~j5Gw!x delta 59 zcmV-B0L1^24w4SAO9maW00{!N01*PW03`yr067A=07L@1089eA09pdElV}D^4Zi>e R0>S_c0>l6m0>zWT22smj55E8a diff --git a/bin/fenetres/evaluate.class b/bin/fenetres/evaluate.class index 621ab5660fda5fc2ffdc3577a3c9d17f75e71af6..5d094de20049a8fcaf0e19431a7c33363ad4e958 100644 GIT binary patch delta 451 zcmXv~OKTHh6g~GOP3-4Lr=qB&2%WU3S#=?GGg7f2)Y{_0g&V<0Mj6^n+Dr;A1oaoV z_!gpjw?Yz#kcAsT@cpjOB#qUYR&6bAT#4UEd$`;K=UndL-akR7pdS9M-vuzj^|D&- zKi+lTE9N}~;S-Bb;R=#DKb$Fqo?y##Hh(Uc9T-w_hc7I?!~=mHdZp29(JP%Sgnr2{ z1d6XYpX3|e@1%CW#iBr6@JbVY;OFP^k@?=@2Yt#JNwnBbazWp4_QgJPQQvbGGEEz9 z6#mWPGq^noE*U{!jRk>M9G%XFp%*6kLold&(!2E8bV9GBReV*jcT=eD9GDVO)vJSj zT?aa_3G^|A{XB|;JcA>=h!ebq)4YWo>zLs@F7bEue&)*7%jo7KxDXsRFF9s7LT?4* zH?b{V#dt-QYJ6NaVhj_eZ$})E1`^VQk``=fW76m*Q`Y}aiEXRsl#QKkWEt$JNIh2L z^9sgH)%dE$cV+0=VJG#`*yJZR3|r(eA=mv*#h6fH$JM)v4N57>qfEd4WvNP)HU5lrd6Y;>L6o;(nJXIsc zfL7(Xoi!CTyn`2L3dq%!^@U_Qnc7H6R(YlKT4jxx_P{4QAJu^|ZhNMwOr!3;cOoJo z*wlH9NWaF0s`)*lty=z&=oVao9U&Zr{V`up(1cTb!$&tJID;uJVwM@qa~n(CLxMSE zS-~c|g+^$rFX)v2j}VAj{t?h>z>^mxTahPu%vmY&tjJ4cP6xa<79?+ZXRU7e)M4Wb WU-`zC8V>I|-r3;?hWM$<;m{v;i&qu^ diff --git a/bin/fenetres/setting$3.class b/bin/fenetres/setting$3.class index ff7792a8a4b671a7da9cac25371a2e2ea8f5eb60..2fe7811743e7067c3e030471ab9e483e50a7254e 100644 GIT binary patch delta 272 zcmXAiy-EX75QV?lP41ADfSYKcSV%&!5Gt`sLEM-9w>*Lk&LlB^{MHKcy8}@#|VEX6A;(_K(rypR{`W%wq6D z8f28ro&D!1(`U*O*kKo;K$AU&2#npLVJc*hHTF3m#|R4?(jw0|GaQ-cI5v6!`60zA lqMRthN==y*8|5q-i>sc|{*xUpxUw#?Yu$zJyS57G`~o{oE>Hjf delta 398 zcmZvW%PvDv6o&u3+n%K-nzpJDA|aK=K%yZbq6slD5LyWhM)urlE9>5-X z0walPLSi6Hjm^D)CosS&Q#;w0f3JUi>%Ryzg8J*%;}d{coHzA1mso4PyQaj14hvaA zMj(_iDn`sI#uk?6t7+4AtYV=PIRpg!cF8I@tB#S*rb9jda0ntVVPS6BXc2%(!5laWV(8D8w5h<-?B%pV;v4VJUnZWXO%fumDMhvggxd&Aiudl1VPv*49*auggC2s`^);|7B>#r ZDpBLHU{%Kn&iJKs0Ks>AHF!(Ze*o6+Q0M>v diff --git a/bin/fenetres/setting$4.class b/bin/fenetres/setting$4.class index e8b863439c0c4cb1ec4c469bb072539940133a9d..e7f2fb4d49a24479ae6e5e13afc4d409e644cfa5 100644 GIT binary patch delta 147 zcmWN^y$V5b0EY4Bypxki7|vj^D3giB@fC7>rnndX z<@xn^j^~Vewl#74cEV~-31~)GbCOz+(vq}RWV9xy4S9JKw4&06izWNab+JsDh#E65N4Mwa#pAjl0 delta 147 zcmWN^JqrN=0EhAC{*y~23^!OT%4A|O`2+@oPoOMTWs)+Q6|2RlE~5x{iM-2sIT?Hr zw>-Zd$8xO6z%*v|&`cTaIUy~GYDrovGFp?BOHLaK+EUbxlJ=B!prRvHou~!YgKy|U sQ&(EL(FyG7PG24)Js9iBR4-h;Im^e>7hgZ(K$l3+4+)ZB=fg4M57mPz(*OVf diff --git a/bin/fenetres/setting$5.class b/bin/fenetres/setting$5.class index 2d4ff4daee9b3c9edd6575760ee3c539f3fd3dee..cf02ae1f645358a8404a1f88d890f737011c52c9 100644 GIT binary patch delta 185 zcmV~$y)J_R7>42Jy&tq+=~uBBbZc0R2F9L%7$pv%=1zu2PoRT^*sVlQz(hEJT1g{R ztNyjL!F9EYt>Q^HiFUJ>{8GD9j(ep%Xr7KrJZhP)R_LkBlh)~Li)U@~qAIVd^QH#x zI^aV`e5%Qp&KT&5p|1JXEkEir(ui?n`HKZBRvocvV#kg{PsFJweoF#R_ cqI0ZynhnoTah_eL?7P6RXF2!WUL$|;4`{+Q0{{R3 delta 185 zcmV~$J5B-t6a~=x?hVL*jH38Spd;8)Qeepjh^2`Oz?#a!=mw^+f!NzZWCK(XSpc+H z8e~8Ohd-XvOZU=^p<`doZ)eBHA)*|?rH>1ak>Lb6{vgjOiu^^1Gu&~Gd;X!q0MA^& z;}SKl@WwTo+@QrRy4<19Jw65aGOR_5C}b&xt)K(DRm2|T*sG%Uu9$u3&<2WIa3z2@y4iXf8Ub0g@RHXLQz1pfV9xl0V@rc6G>D=G>#yGLR1nZp$p|WHwTuM ziZ4u=;tQH<3gh^etEOTvwuEJAwW2R9TTRO7Q*&j%&(DYZx~^yNrVZY-u7cvo^LW}D zKpw}m1dB^!;}Ag~Mll|v`3Mr2fMh0ydyCT;O2#mzAc_+a!&LY<3FG)ECi5|*GYy$c zM}UuGHm6`Nr(yx0Kp``+g43{y)A0)ZsAT{R%)%ySqlq)Hjn7~opG6yI;wWd~ea^-i zK93umgS(t-(ag0cInNd|&+6uIzHMf{HFKdI;37N80z1pac9Dg4nMJiU%n85W;^(|zu0n@kv zel{YTAw0)T&Z!CcY(^2cqJ(cdr){X>cGU1)=d=TL-08e_VI%jTnR~I5`_Rf(?B{+Q zEnJ!)NTkbsk3_PobZuF~Cmz&Mw?xH-;F-KRknbJcs){ zZxOs;!+F_8@`@#}$5MFJ()g)m@N>)N7nZ|omdh_Kk6+m`Ubiy#S{3`OnqONzZ&)M0 zu`T@8nt00+ck?@IAz4fjIt&MBYUz z|8fuiJAAt$U?JXf_kUf)`-lM9Da*6nvmmbZQdLX)<_0=`HQ6 zKZ^E4ddeXL+K$h=h*TvK`*#tzT;TnI2NK*i%_WoyskoQ z(GqM|5!$uX?JUDt72}$MxTWRzO(hsoDgINL#b~9)tK2eFVScT$993G8s;ojUS-q+) yq?hd-y=sTF#!jflE+*+U>rt)s=?&}GTDz?}8&bVzTIY?>dha1^2!C8X)&2)tW7A9k delta 911 zcmWNOdrZ}J7{;IX_dJ4Hp;B0of#78-oHSHIA}?4@M}ikZIwuf8Ig&|KCzc@`W0Gun zDRIh_6m^7VTg@X*nK)BdSreK?w?(Zi8!fkXy3Ms!-@o5Kp3mp=-W;%-1NQC;|A=1X zdPB%(Qft6pmXM4XreHM3<4&ex9Mdp?lOlcobcUy57^fkQ>4;|r66r%Sr(+6dAcGHJ zCNq)ESy;%~Sj;RG@<9}F4puV zf>X@LH9m&lSYTsVXqjAQE4kc4i@4I7SY$0MwgX&c$5~?Ce8PI@xAz#ZODwg1uC^%G zcnPfVvRUZ`xXx>2&^yfa-ep#MKXXImeA!Q4I0TQI5X*Y!vKdKiKq?!Z>K6F;GG?&} zS=@>oHe&%_aZWo>z?~@OE|l^$=d>F^wxWi6oYP)}xX*dDp@9d`!gjpQH_*m|*v}3e zYbxh4*;^SNS&j8Nnb=;X1qV3s2)$oj!#>Mnzb)Y>md|Te!cVQ7pIMLtR?RQ0j$c|M zzp`e2ZQJ;brR?FLwewp$%I~a`-`h$4;6h$^A%Aoshawj$?y$tDi}X82@DJR>Kas+} zFqwb5hu@0asLZyo44#Ns4MV(Qkf>OU*Knk1Br(4Yxu(M0UhB<$5>v}p>CXey3t8crw!@5qPKx*t5F z%+`)|=f>nhde|Y%b@THuUAe6rtIBP0q_3*L3l}0z%N*Nsq-upb7CDZ`9Y-lElW>Xo}RX1ZL~_& zSe>46O=|5`J!gmXymcvLJ!yKuE~(D?^`Z@Glikou7S(3Y)ZmR&qc>Jfk>2VV_CJ|Q B)oTC% diff --git a/images/accueillChargeEvaluation.svg b/images/accueillChargeEvaluation.svg new file mode 100644 index 0000000..9d657f9 --- /dev/null +++ b/images/accueillChargeEvaluation.svg @@ -0,0 +1,671 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Base de données des évaluations + + + + + + + + + + + + + + + Double cliquer sur une évaluation pour la charger en mémoire et l'utiliser. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/actions/actExit.java b/src/actions/actExit.java index 829dd52..ce00f7f 100644 --- a/src/actions/actExit.java +++ b/src/actions/actExit.java @@ -1,15 +1,26 @@ package actions; +import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.ImageIcon; -import javax.swing.JOptionPane; +import javax.swing.JButton; +import javax.swing.JDialog; +import javax.swing.JLabel; +import javax.swing.JPanel; import javax.swing.KeyStroke; +import javax.swing.SwingUtilities; +import calc.commandes; +import fenetres.baseDonneesEvaluations; import fenetres.create; +import fenetres.evaluate; +import fenetres.mainApp; + + public class actExit extends AbstractAction { @@ -21,18 +32,156 @@ public class actExit extends AbstractAction { putValue( Action.SHORT_DESCRIPTION, "Quitter (CRTL+Q)" ); putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_Q, KeyEvent.CTRL_DOWN_MASK ) ); } - /** - * + * Fermeture de l'application analyseWriter. */ private static final long serialVersionUID = 1L; @Override public void actionPerformed(ActionEvent e) { - if(JOptionPane.showConfirmDialog(null,"Voulez-vous quitter analyseWriter ?", "Quitter", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION) { - create.getInstance().dispose(); - } + int H = 0; + if(commandes.evaluationChargeEnMemoire!=null) H=commandes.evaluationChargeEnMemoire.hashCode(); + + if(H==commandes.hashCodeEvaluationSave){ + + // Définir les dimensions de la boîte de dialogue + int dialogWidth = 420; + int dialogHeight = 260; + + // Chargement de l'icône personnalisée + ImageIcon customIcon = new ImageIcon(create.class.getResource("/resources/bye-bye.png")); + + // Création du panneau pour contenir l'image + JPanel panel = new JPanel(new BorderLayout()); + JLabel labelImage = new JLabel(customIcon, JLabel.CENTER); + + // Ajouter l'image au panneau + panel.add(labelImage, BorderLayout.CENTER); + + // Définir les boutons personnalisés + JButton buttonYes = new JButton("Quitter"); + JButton buttonNo = new JButton("Annuler"); + + // Ajout des boutons à un panneau + JPanel buttonPanel = new JPanel(); + buttonPanel.add(buttonYes); + buttonPanel.add(buttonNo); + + // Ajouter le panneau de boutons au panneau principal + panel.add(buttonPanel, BorderLayout.SOUTH); + + // Affichage de la boîte de dialogue + JDialog dialog = new JDialog(); + dialog.setTitle("Quitter"); + dialog.setModal(true); + dialog.setContentPane(panel); + dialog.setSize(dialogWidth, dialogHeight); + dialog.setResizable(false); + dialog.setLocationRelativeTo(null); // Pour centrer la boîte de dialogue à l'écran + + // Définir le bouton par défaut + dialog.getRootPane().setDefaultButton(buttonYes); + + // Actions des boutons + buttonYes.addActionListener((ActionEvent evt) -> { + baseDonneesListesEtudiants.ferme(false); + baseDonneesEvaluations.ferme(); + create.fermeCreate(); + evaluate.ferme(); + mainApp.ferme(); + dialog.dispose(); + System.exit(0); // Fermer l'application + }); + + buttonNo.addActionListener((ActionEvent evt) -> { + System.out.println("L'utilisateur a choisi de ne pas quitter."); + dialog.dispose(); + }); + + // Afficher la boîte de dialogue + dialog.setVisible(true); + + // Placer le focus sur le bouton "Oui" + SwingUtilities.invokeLater(() -> buttonYes.requestFocusInWindow()); + + + }else{ + + // Définir les dimensions de la boîte de dialogue + int dialogWidth = 420; + int dialogHeight = 260; + + // Chargement de l'icône personnalisée + ImageIcon customIcon = new ImageIcon(create.class.getResource("/resources/enregistrer_modifications.png")); + + // Création du panneau pour contenir l'image + JPanel panel = new JPanel(new BorderLayout()); + JLabel labelImage = new JLabel(customIcon, JLabel.CENTER); + + // Ajouter l'image au panneau + panel.add(labelImage, BorderLayout.CENTER); + + // Définir les boutons personnalisés + JButton buttonYes = new JButton("Quitter"); + JButton buttonNo = new JButton("Annuler"); + JButton buttonSave = new JButton("Enregistrer puis quitter"); + + // Ajout des boutons à un panneau + JPanel buttonPanel = new JPanel(); + buttonPanel.add(buttonSave); + buttonPanel.add(buttonYes); + buttonPanel.add(buttonNo); + + + // Ajouter le panneau de boutons au panneau principal + panel.add(buttonPanel, BorderLayout.SOUTH); + + // Affichage de la boîte de dialogue + JDialog dialog = new JDialog(); + dialog.setTitle("Quitter"); + dialog.setModal(true); + dialog.setContentPane(panel); + dialog.setSize(dialogWidth, dialogHeight); + dialog.setResizable(false); + dialog.setLocationRelativeTo(null); // Pour centrer la boîte de dialogue à l'écran + + // Définir le bouton par défaut + dialog.getRootPane().setDefaultButton(buttonSave); + + // Actions des boutons + buttonYes.addActionListener((ActionEvent evt) -> { + baseDonneesListesEtudiants.ferme(false); + baseDonneesEvaluations.ferme(); + create.fermeCreate(); + evaluate.ferme(); + mainApp.ferme(); + dialog.dispose(); + System.exit(0); // Fermer l'application + }); + + buttonNo.addActionListener((ActionEvent evt) -> { + System.out.println("L'utilisateur a choisi de ne pas quitter."); + dialog.dispose(); + }); + + buttonSave.addActionListener((ActionEvent evt) -> { + System.out.println("L'utilisateur a choisi d'enregistrer."); + // Appeler l'action d'enregistrement + new actSaveEvaluation().actionPerformed(null); + baseDonneesEvaluations.ferme(); + create.fermeCreate(); + evaluate.ferme(); + dialog.dispose(); + System.exit(0); + }); + + // Afficher la boîte de dialogue + dialog.setVisible(true); + + // Placer le focus sur le bouton "Save" + SwingUtilities.invokeLater(() -> buttonSave.requestFocusInWindow()); + } } } diff --git a/src/actions/actNewFichierAnalyse.java b/src/actions/actNewFichierAnalyse.java index d2348a2..f74c76c 100644 --- a/src/actions/actNewFichierAnalyse.java +++ b/src/actions/actNewFichierAnalyse.java @@ -17,6 +17,7 @@ import javax.xml.parsers.ParserConfigurationException; import org.xml.sax.SAXException; import AnalyseCalc.Classeur2; +import calc.commandes; import fenetres.evaluate; import xml.LecturesDossiers; import xml.ecritureFileXML; @@ -42,7 +43,7 @@ public class actNewFichierAnalyse extends AbstractAction{ JFileChooser chooser = new JFileChooser(); chooser.setDialogTitle("Choisir un fichier ODF"); - chooser.setCurrentDirectory(new java.io.File(calc.commandes.path)); + chooser.setCurrentDirectory(new java.io.File(commandes.path)); chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); FileNameExtensionFilter filter = new FileNameExtensionFilter("Format ODF", "ods"); chooser.setFileFilter(filter); @@ -53,12 +54,12 @@ public class actNewFichierAnalyse extends AbstractAction{ System.out.println("getSelectedFile() : " + chooser.getSelectedFile().getAbsolutePath()); // réinitialise les commandes - calc.commandes.initialiseParametresSettingsProprietes();; - calc.commandes.fichierAnalyseValide=true; - calc.commandes.path = chooser.getCurrentDirectory().getAbsolutePath(); - calc.commandes.PathFilenameAnalysis = chooser.getCurrentDirectory().getAbsolutePath(); + commandes.initialiseParametresSettingsProprietes();; + commandes.fichierAnalyseValide=true; + commandes.path = chooser.getCurrentDirectory().getAbsolutePath(); + commandes.PathFilenameAnalysis = chooser.getCurrentDirectory().getAbsolutePath(); String cheminVersFichier = chooser.getSelectedFile().getAbsolutePath(); - calc.commandes.nameSujet = chooser.getSelectedFile().getName(); + commandes.nameSujet = chooser.getSelectedFile().getName(); try { @@ -66,44 +67,54 @@ public class actNewFichierAnalyse extends AbstractAction{ //constructionNodeAvecString A = new constructionNodeAvecString(); new transformeXLMtoNode(LecturesDossiers.getEC().getListeContentTableur().get(0), false, null); - calc.commandes.sujet = transformeXLMtoNode.getNodeRoot(); + commandes.sujet = transformeXLMtoNode.getNodeRoot(); - calc.commandes.sujet.getAttributs().put("analysis_filename","sujet.xml"); - -// Ecriture.ecritureNodeEnXML(calc.commandes.sujet, "sujet", calc.commandes.path, Ecriture.typeFichier.fichier_etudiant); + commandes.sujet.getAttributs().put("analysis_filename","sujet.xml"); + commandes.sujet.removeAllEnfantWithThisName("text:change-start"); + commandes.sujet.removeAllEnfantWithThisName("text:change-end"); + commandes.sujet.removeAllEnfantWithThisName("text:tracked-changes"); + commandes.sujet.removeAllEnfantWithThisName("text:change"); + commandes.sujet.removeAllEnfantWithThisName("office:document-content"); -// Ecriture.ecritureNodeEnXML(ClasseurAnalyse, "ClasseurAnalyse", calc.commandes.path, Ecriture.typeFichier.fichier_etudiant); - - - //calc.commandes.sujet = ecritureSujet.nodePourEcritureSujet(calc.commandes.sujet,b,0); - - 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"); - - - - ecritureFileXML.write(calc.commandes.sujet, "sujet.xml"); - Classeur2 ClasseurAnalyse = new Classeur2(calc.commandes.sujet,0,ecritureFileXML.typeFichier.fichier_analyse); + ecritureFileXML.write(commandes.sujet, "sujet.xml"); + Classeur2 ClasseurAnalyse = new Classeur2(commandes.sujet,0,ecritureFileXML.typeFichier.fichier_analyse); - calc.commandes.sujet = ClasseurAnalyse.convertClasseurToNode(ecritureFileXML.typeFichier.fichier_analyse); - ecritureFileXML.write(calc.commandes.sujet, "sujet2.xml"); + commandes.sujet = ClasseurAnalyse.convertClasseurToNode(ecritureFileXML.typeFichier.fichier_analyse); + ecritureFileXML.write(commandes.sujet, "sujet2.xml"); -// Ecriture.ecritureNodeEnXML(calc.commandes.sujet, "sujet2", calc.commandes.path, Ecriture.typeFichier.fichier_etudiant); +// Ecriture.ecritureNodeEnXML(commandes.sujet, "sujet2", commandes.path, Ecriture.typeFichier.fichier_etudiant); // new verificationFichierAnalyse(); - if(calc.commandes.fichierAnalyseValide) { - calc.commandes.sujetSauvegarde = calc.commandes.sujet.clone(); + if(commandes.fichierAnalyseValide) { +// commandes.sujetSauvegarde = commandes.sujet.clone(); +// fenetres.create.getTree().setVisible(true); +// fenetres.create.constructionTree(); +// fenetres.create.getTextNodeSelect().afficheChargementFichierAnalyse(); + + + commandes.sujetSauvegarde = commandes.sujet.clone(); + + commandes.evaluationChargeEnMemoire = null; + commandes.evaluationsBase=null; + commandes.IndexEvaluationCharger=-1; //Car ce n'est pas une évaluation + commandes.NameEvaluationCharger = ""; + commandes.analysis_filename = commandes.sujet.getAttributs().get("analysis_filename"); + + commandes.initialiseParametresEvaluation(); + commandes.initialiseParametresSettingsProprietes(); + fenetres.create.getTree().setVisible(true); fenetres.create.constructionTree(); - fenetres.create.getTextNodeSelect().afficheChargementFichierAnalyse(); + fenetres.create.getTextNodeSelect().afficheChargementFichierAnalyse(); + + + }else { fenetres.create.getTextNodeSelect().setText("

Le fichier n'est pas valide

"); - calc.commandes.sujet = new node(); + commandes.sujet = new node(); } } catch (ParserConfigurationException | SAXException | IOException | CloneNotSupportedException e1) { @@ -118,7 +129,7 @@ public class actNewFichierAnalyse extends AbstractAction{ } - calc.commandes.ecritCode = true; + commandes.ecritCode = true; } diff --git a/src/actions/actOpenBaseListesEtudiants.java b/src/actions/actOpenBaseListesEtudiants.java new file mode 100644 index 0000000..94157f3 --- /dev/null +++ b/src/actions/actOpenBaseListesEtudiants.java @@ -0,0 +1,38 @@ +package actions; + +import java.awt.event.ActionEvent; + +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.ImageIcon; + +import baseListesEtudiants.recupeNodeBaseListesEtudiants; +import fenetres.create; +import calc.*; + +public class actOpenBaseListesEtudiants extends AbstractAction{ + + private static final long serialVersionUID = 1L; + { + putValue( Action.NAME, "Ouvrir la base de données des listes des étudiants" ); + putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/baselisteetudiantmini.png")) ); + putValue( Action.LARGE_ICON_KEY, new ImageIcon(create.class.getResource("/resources/baselisteetudiant.png")) ); + putValue( Action.SHORT_DESCRIPTION, "Ouvrir la base de données des listes des étudiants" ); + } + @Override + public void actionPerformed(ActionEvent e) { + new recupeNodeBaseListesEtudiants(); + if(commandes.listesEtudiants!=null) { + int index = -1; + if(commandes.nodeCSV!=null) if(!commandes.nodeCSV.isVide()) if(commandes.nodeCSV.getAttributs().get("nameListStudent")!=null) { + String nameList = commandes.nodeCSV.getAttributs().get("nameListStudent"); + for(int i = 0 ; i < commandes.listesEtudiants.getEnfants().size(); i++) { + if(commandes.listesEtudiants.getEnfants().get(i).getAttributs().get("nameListStudent").equals(nameList)) { + index = i; + } + } + } + baseDonneesListesEtudiants.getInstance(index); + } + } +} diff --git a/src/actions/actSaveEvaluation.java b/src/actions/actSaveEvaluation.java new file mode 100644 index 0000000..e976db4 --- /dev/null +++ b/src/actions/actSaveEvaluation.java @@ -0,0 +1,55 @@ +package actions; + +import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; + +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.ImageIcon; +import javax.swing.JOptionPane; +import javax.swing.KeyStroke; + +import baseEvaluation.creerNouvelleEvaluation; +import baseEvaluation.recupeNodeBaseEvaluations; +import calc.commandes; +import xml.node; + + + + +public class actSaveEvaluation extends AbstractAction{ + + /** + * + */ + private static final long serialVersionUID = 1L; + { + putValue( Action.NAME, "Enregister l'évaluation" ); + putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/resources/saveEvaluationmini.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_S ); + putValue( Action.SHORT_DESCRIPTION, "Enregistrer l'évaluation dans la base des évaluations. (CTRL+S)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_S, KeyEvent.CTRL_DOWN_MASK ) ); + } + @Override + public void actionPerformed(ActionEvent e) { + + if(!commandes.sujet.isVide()) { + if(commandes.IndexEvaluationCharger!=-1) { + new creerNouvelleEvaluation(commandes.evaluationChargeEnMemoire); + new recupeNodeBaseEvaluations(); + }else { + // n'a pas été chargé depuis la base de données. + String name = "Nouvelle évaluation"; + name = JOptionPane.showInputDialog(null,"Donner un nom à cette évaluation ?",name); + if(!name.isBlank()) { + new creerNouvelleEvaluation(new node(), name, false,false); + commandes.IndexEvaluationCharger=0; + commandes.NameEvaluationCharger=name; + new recupeNodeBaseEvaluations(); + }else { + JOptionPane.showMessageDialog(null,"L'évaluation encours n'a pas été enregistrée\ndans la base des évaluations."); + } + } + } + } +} diff --git a/src/baseEvaluation/CreerBaseParDefautEvaluation.java b/src/baseEvaluation/CreerBaseParDefautEvaluation.java index 739f200..53af91d 100644 --- a/src/baseEvaluation/CreerBaseParDefautEvaluation.java +++ b/src/baseEvaluation/CreerBaseParDefautEvaluation.java @@ -40,7 +40,7 @@ public class CreerBaseParDefautEvaluation { Path outputFilePath = file.toPath(); BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8); try { - fichier.write(""); + fichier.write(""); fichier.close(); return false; } catch (IOException e) { diff --git a/src/baseEvaluation/creerNouvelleEvaluation.java b/src/baseEvaluation/creerNouvelleEvaluation.java new file mode 100644 index 0000000..42c9c34 --- /dev/null +++ b/src/baseEvaluation/creerNouvelleEvaluation.java @@ -0,0 +1,121 @@ +package baseEvaluation; + +import java.text.ParseException; +import java.util.Date; + +import javax.swing.JOptionPane; +import calc.*; +import xml.node; + +public class creerNouvelleEvaluation { + + boolean majBase = false; + boolean importation = false; + + + /** + * Mise à jour d'une évaluation. + * @param evaluation + */ + public creerNouvelleEvaluation(node evaluation) { + this.majBase=true; + this.importation = false; + nouvelleEvaluation(evaluation, evaluation.getAttributs().get("name")); + } + + /** + * Pour réaliser une mise à jour, ou une création, ou encore une importation.
+ * majBase = true pour une mise à jour.
+ * majBase = false pour une création.
+ * importation = true = importation d'une évaluation.
+ * @param evaluation + * @param name + * @param majBase + * @param importation + */ + public creerNouvelleEvaluation(node evaluation, String nameEvaluation, boolean majBase, boolean importation) { + this.majBase = majBase; + this.importation = importation; + nouvelleEvaluation(evaluation, nameEvaluation); + } + + + private node nouvelleEvaluation(node evaluation, String nameEvaluation) { + + if(nameEvaluation==null) { + JOptionPane.showMessageDialog(null, "L'évaluation ne possède pas de nom"); + return evaluation; + } + + // création du nouveau node evaluation + evaluation.setNameNode("evaluation"); + + // La date est modifiée à la création de l'évaluation. + Date aujourdhui = new Date(); + try { + if(!majBase && !importation) { + //nouvelle évaluation + evaluation.getAttributs().put("date", calcul.formatDateWriter.DateLibreOffice(aujourdhui)); + evaluation.getAttributs().put("dateModification", calcul.formatDateWriter.DateLibreOffice(aujourdhui)); + evaluation.getEnfants().add(commandes.sujet); + commandes.evaluationChargeEnMemoire = evaluation; + }else { + //Mise à jour + if(!importation) evaluation.getAttributs().put("dateModification", calcul.formatDateWriter.DateLibreOffice(aujourdhui)); + } + } catch (ParseException e) { + e.printStackTrace(); + } + + // informations de l'évaluation en création ou MAJ + evaluation.getAttributs().put("version", commandes.version); + evaluation.getAttributs().put("name", nameEvaluation); + evaluation.getAttributs().put("PathFilenameAnalysis", commandes.PathFilenameAnalysis); + evaluation.getAttributs().put("path", commandes.path); + evaluation.getAttributs().put("fichierStudentMoodle", String.valueOf(commandes.fichierStudentMoodle)); + evaluation.getAttributs().put("sansFeeback", String.valueOf(commandes.sansFeeback) ); + evaluation.getAttributs().put("noDetail", String.valueOf(commandes.noDetail) ); + evaluation.getAttributs().put("noNote", String.valueOf(commandes.noNote) ); + evaluation.getAttributs().put("noAfficheProgression", String.valueOf(commandes.noAfficheProgression) ); + evaluation.getAttributs().put("zipfeedback", String.valueOf(commandes.zipfeedback) ); + evaluation.getAttributs().put("verifHisto2", String.valueOf(commandes.verifHisto2) ); + evaluation.getAttributs().put("ecritNoteCSV", String.valueOf(commandes.ecritNoteCSV) ); + evaluation.getAttributs().put("newLogo", String.valueOf(commandes.newLogo) ); + evaluation.getAttributs().put("noLogo", String.valueOf(commandes.noLogo) ); + evaluation.getAttributs().put("analyse_nombres_modifications_simultané_maxi", String.valueOf(commandes.analyse_nombres_modifications_simultané_maxi) ); + + evaluation.getAttributs().put("fourniCSV", String.valueOf(commandes.fourniCSV) ); + if(commandes.nameCSV!=null) { + evaluation.getAttributs().put("nameCSV", commandes.nameCSV ); + }else { + evaluation.getAttributs().put("nameCSV", ""); + } + + //Supprime le node CSV s'il existe, pour le remplacer par le node commandes.nodeCSV + node nodremove = evaluation.retourneFirstEnfant("fileCSV"); + if(nodremove!=null)if(!nodremove.isVide()) evaluation.getEnfants().remove(nodremove); + + // Ajoute les informations sur la liste d'étudiant + // Dans le nodeCSV, il y a toutes les informations sur chaque étudiants + // Mais dans le node évaluation, on ne garde que les attribut du node fileCSV. + if(commandes.nodeCSV!=null) { + evaluation.getEnfants().add(commandes.nodeCSV); + evaluation.retourneFirstEnfant("fileCSV").getEnfants().clear(); + } + + // Création d'une évaluation + // Insère au début de la liste + if(!majBase) { + if(commandes.evaluationsBase!=null) { + commandes.evaluationsBase.getEnfants().add(0, evaluation); + commandes.IndexEvaluationCharger=0; + } + } + + new ecritureBaseEvaluation(evaluation); + commandes.hashCodeEvaluationSave = evaluation.hashCode(); + + return evaluation; + } + +} diff --git a/src/baseEvaluation/ecritureBaseEvaluation.java b/src/baseEvaluation/ecritureBaseEvaluation.java new file mode 100644 index 0000000..a5686fc --- /dev/null +++ b/src/baseEvaluation/ecritureBaseEvaluation.java @@ -0,0 +1,133 @@ +package baseEvaluation; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import calc.*; +import xml.node; + + + +/** + * Ecriture d'une évaluation. + * @author pabr6 + * + */ +public class ecritureBaseEvaluation { + + /** + * Ecriture d'une évaluation + * @param evaluation + */ + public ecritureBaseEvaluation(node evaluation) { + String directoryName = ""; + + + File file = null; + if(commandes.PathBaseEvaluationDefaut) { + directoryName = Paths.get("").toAbsolutePath().toString(); + }else { + directoryName = commandes.PathBaseEvaluations; + } + + if(commandes.os.contains("Win")) { + file = new File(directoryName + "\\" + commandes.NameBaseEvaluations); + }else { + file = new File(directoryName + "/" + commandes.NameBaseEvaluations); + } + + + String debut=""; + String fin=""; + String XMLBase=""; + + if(file!=null) { + //Lecture de la base de données + 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); + } + String baseToString = targetString.toString().replace("\t","").replace("\r", "").replace("\n", "").replaceAll(">/{1,}<","><"); + + Pattern p = Pattern.compile("<\\bevaluation\\b.{1,800}\\bdate\\b=\\\""+ evaluation.getAttributs().get("date") +"\\\".*?<\\/\\bevaluation\\b>"); + Matcher m = p.matcher(baseToString); + + if(m.find()) { + //Supprime le node évluation pour le remplacer par le nouveau. + debut = baseToString.substring(0,m.start()); + fin = baseToString.substring(m.end()); +// String codeXMLEvaluation = Run.ecritureNode(evaluation, 0).toString().replace("\t","").replace("\r", "").replace("\n", "").replaceAll(">/{1,}<","><"); + XMLBase = debut + evaluation.ecritureXML().toString() + fin; + }else { + //Ajoute une nouvelle évaluation au début de la base + p = Pattern.compile(""); + m = p.matcher(baseToString); + if(m.find()) { + debut = baseToString.substring(0,m.end()); + fin = baseToString.substring(m.end()); +// String codeXMLEvaluation = Run.ecritureNode(evaluation, 0).toString().replace("\t","").replace("\r", "").replace("\n", "").replaceAll(">/{1,}<","><"); + XMLBase = debut + evaluation.ecritureXML().toString() + fin; + }else { + JFrame frame = new JFrame(); + JLabel texte = new JLabel("

Problème avec la base de données des évaluations

Il semble que ce n'est pas la base de données des évaluations.

" + + "

"+ file.getAbsolutePath() +"

"); + JOptionPane.showMessageDialog(frame, texte); + } + } + + try { + + // écriture du node + Path outputFilePath = file.toPath(); + + if (Files.isWritable(outputFilePath)) { + BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8); + fichier.write(XMLBase); + fichier.close(); + + JFrame frame = new JFrame(); + JLabel texte = new JLabel("

Enregistrement réussi

L'évaluation "+evaluation.getAttributs().get("name")+ " a été enregistrée dans la base de données.

" + + "

"+ file.getAbsolutePath() +"

"); + JOptionPane.showMessageDialog(frame, texte); + } else { + JFrame frame = new JFrame(); + JLabel texte = new JLabel("

L'enregistrement n'a pas réussi

L'évaluation "+evaluation.getAttributs().get("name")+ " n'a pas été enregistrée dans la base de données.

" + + "

"+ file.getAbsolutePath() +"

Vous devez avoir des droits pour écrire dans ce dossier.

"); + JOptionPane.showMessageDialog(frame, texte); + } + + } catch (IOException e) { + JFrame frame = new JFrame(); + JLabel texte = new JLabel("

L'enregistrement n'a pas réussi

L'évaluation "+evaluation.getAttributs().get("name")+ " n'a pas été enregistrée dans la base de données.

" + + "

"+ file.getAbsolutePath() +"

"+e.getMessage()+"

"); + JOptionPane.showMessageDialog(frame, texte); + e.printStackTrace(); + } + + }catch (Exception e) { + + } + } + + } + +} diff --git a/src/baseEvaluation/myTableBaseEvaluation.java b/src/baseEvaluation/myTableBaseEvaluation.java index e571d8e..f1b7a30 100644 --- a/src/baseEvaluation/myTableBaseEvaluation.java +++ b/src/baseEvaluation/myTableBaseEvaluation.java @@ -65,7 +65,7 @@ public class myTableBaseEvaluation extends AbstractTableModel{ }else { evaluation[i][2] = dateCreation; } - node fichier = calc.commandes.evaluationsBase.getEnfants().get(i).retourneFirstEnfant("fichier"); + node fichier = calc.commandes.evaluationsBase.getEnfants().get(i).retourneFirstEnfant("classeur"); evaluation[i][3] = fichier.getAttributs().get("titre"); evaluation[i][4] = fichier.getAttributs().get("metaSujet"); evaluation[i][5] = fichier.getAttributs().get("analysis_filename"); diff --git a/src/baseEvaluation/recupeNodeBaseEvaluations.java b/src/baseEvaluation/recupeNodeBaseEvaluations.java index 1fd25d3..4f58136 100644 --- a/src/baseEvaluation/recupeNodeBaseEvaluations.java +++ b/src/baseEvaluation/recupeNodeBaseEvaluations.java @@ -8,7 +8,7 @@ import java.nio.file.Paths; import javax.swing.JLabel; import javax.swing.JOptionPane; - +import calc.*; import xml.node; /** * Récupère la base des évaluations qui se trouve indiqué par commandes.
@@ -25,16 +25,16 @@ public class recupeNodeBaseEvaluations { public recupeNodeBaseEvaluations() { String directoryName = ""; File file = null; - if(calc.commandes.PathBaseEvaluationDefaut) { + if(commandes.PathBaseEvaluationDefaut) { directoryName = Paths.get("").toAbsolutePath().toString(); }else { - directoryName = calc.commandes.PathBaseEvaluations; + directoryName = commandes.PathBaseEvaluations; } - if(calc.commandes.os.contains("Win")) { - file = new File(directoryName + "\\" + calc.commandes.NameBaseEvaluations); + if(commandes.os.contains("Win")) { + file = new File(directoryName + "\\" + commandes.NameBaseEvaluations); }else { - file = new File(directoryName + "/" + calc.commandes.NameBaseEvaluations); + file = new File(directoryName + "/" + commandes.NameBaseEvaluations); } System.out.println("Début de la récupération de la base."); @@ -55,7 +55,7 @@ public class recupeNodeBaseEvaluations { evaluations = evaluations.allFirstNodesEvaluationFichierOnly(targetString.toString().replace("\t","").replace("\r", "").replace("\n", "")); if(evaluations!=null) { - calc.commandes.evaluationsBase = evaluations; + commandes.evaluationsBase = evaluations; System.out.println("Fin de la récupération de la base."); } if(evaluations.getEnfants().size()>0) HasEvaluation=true; @@ -78,7 +78,7 @@ public class recupeNodeBaseEvaluations { File file = null; - if(calc.commandes.os.contains("Win")) { + if(commandes.os.contains("Win")) { file = new File(directoryName + "\\" + NameNewBase); }else { file = new File(directoryName + "/" + NameNewBase); @@ -104,10 +104,10 @@ public class recupeNodeBaseEvaluations { if(evaluations!=null) { if(evaluations.getEnfants().size()>0) { if(evaluations.getNameNode().equals("evaluations")) { - calc.commandes.evaluationsBase = evaluations; - calc.commandes.PathBaseEvaluations = (directoryName); - calc.commandes.NameBaseEvaluations = NameNewBase; - calc.commandes.PathBaseEvaluationDefaut = false; + commandes.evaluationsBase = evaluations; + commandes.PathBaseEvaluations = (directoryName); + commandes.NameBaseEvaluations = NameNewBase; + commandes.PathBaseEvaluationDefaut = false; } } } diff --git a/src/fenetres/baseDonneesEvaluations.java b/src/fenetres/baseDonneesEvaluations.java index d94cf76..1048698 100644 --- a/src/fenetres/baseDonneesEvaluations.java +++ b/src/fenetres/baseDonneesEvaluations.java @@ -10,7 +10,6 @@ import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.io.File; -import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.regex.Matcher; @@ -33,12 +32,14 @@ import javax.swing.event.ListSelectionListener; import javax.swing.table.TableColumnModel; import baseEvaluation.chargeEvaluation; +import baseEvaluation.creerNouvelleEvaluation; import baseEvaluation.myTableBaseEvaluation; import baseEvaluation.recupeNodeBaseEvaluations; import net.lingala.zip4j.exception.ZipException; import net.miginfocom.swing.MigLayout; import xml.Zip; import xml.node; +import calc.*; /** @@ -74,7 +75,7 @@ public class baseDonneesEvaluations extends JFrame { /** private final JButton btnExtraireFileAnalysis = new JButton("Extraire le fichier d'analyse
de l'évaluation sélectionnée"); private final JButton btnFusionnerBase = new JButton("Importer des évaluations
depuis une autre base"); private final JButton btnChargerFichierAnalyse = new JButton("Créer une évaluation à
partir d'un fichier d'analyse"); - private final static JLabel lblCheminVersBase = new JLabel(calc.commandes.PathBaseEvaluations); + private final static JLabel lblCheminVersBase = new JLabel(commandes.PathBaseEvaluations); private final JButton btnArchiveBase = new JButton("Copie de sauvegarde"); @@ -89,7 +90,7 @@ public baseDonneesEvaluations() { ImageIcon img = new ImageIcon(getClass().getResource("/resources/evalwriter.png") ); setIconImage(img.getImage()); - setTitle(calc.commandes.Titre + " - La base de données des évaluations"); + setTitle(commandes.Titre + " - La base de données des évaluations"); getContentPane().setLayout(new BorderLayout(2, 2)); @@ -131,8 +132,8 @@ public baseDonneesEvaluations() { lblCheminVersBase.setIcon(new ImageIcon(baseDonneesEvaluations.class.getResource("/resources/BaseEvaluationsmini.png"))); panelBas.add(lblCheminVersBase); - if(calc.commandes.evaluationChargeEnMemoire!=null) { - textPane.setText("Evaluation chargée en mémoire : " + calc.commandes.evaluationChargeEnMemoire.getAttributs().get("name")); + if(commandes.evaluationChargeEnMemoire!=null) { + textPane.setText("Evaluation chargée en mémoire : " + commandes.evaluationChargeEnMemoire.getAttributs().get("name")); } @@ -262,14 +263,14 @@ public static baseDonneesEvaluations getInstance() { } // afficheLesBoutonGestionBase(); instance.setVisible(true); - if(calc.commandes.IndexEvaluationCharger!=-1) { - selectRow(calc.commandes.IndexEvaluationCharger); + if(commandes.IndexEvaluationCharger!=-1) { + selectRow(commandes.IndexEvaluationCharger); } isDispose=false; - if(calc.commandes.PathBaseEvaluationDefaut) { - lblCheminVersBase.setText(calc.commandes.PathBaseEvaluations); + if(commandes.PathBaseEvaluationDefaut) { + lblCheminVersBase.setText(commandes.PathBaseEvaluations); }else { - lblCheminVersBase.setText(calc.commandes.PathBaseEvaluations+"/"+calc.commandes.NameBaseEvaluations); + lblCheminVersBase.setText(commandes.PathBaseEvaluations+"/"+commandes.NameBaseEvaluations); } return instance; } @@ -311,9 +312,9 @@ private void ListenerAction() { @Override public void actionPerformed(ActionEvent e) { if(Files.isReadable(Paths.get(""))) { - if(calc.commandes.evaluationsBase!=null) { + if(commandes.evaluationsBase!=null) { try { - String nameFile = Zip.AddBaseToZip(calc.commandes.evaluationsBase.ecritureXML()); + String nameFile = Zip.AddBaseToZip(commandes.evaluationsBase.ecritureXML()); JOptionPane.showMessageDialog(null, "La base des évaluations a été sauvegardée dans \"Archive des bases.zip\"\nSous le nom " + nameFile ); } catch (ZipException e1) { e1.printStackTrace(); @@ -355,11 +356,11 @@ private void ListenerAction() { String analysis_filename =""; if(evaluation.getAttributs().get("analysis_filename")!=null) { if(!evaluation.getAttributs().get("analysis_filename").isEmpty()) { - file = new File(calc.commandes.PathBaseEvaluations); + file = new File(commandes.PathBaseEvaluations); analysis_filename = evaluation.getAttributs().get("analysis_filename"); } }else { - file = new File(calc.commandes.PathBaseEvaluations); + file = new File(commandes.PathBaseEvaluations); } @@ -370,25 +371,21 @@ private void ListenerAction() { boolean notError = false; if (userSelection == JFileChooser.APPROVE_OPTION) { File fileToSave = fileChooser.getSelectedFile(); - try { - if(calc.commandes.os.contains("Win")) { - notError = Run.ecritureNodeEnXML(evaluation.retourneFirstEnfant("fichier"), fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")),Run.TypeFile.Sujet ); - }else { - notError = Run.ecritureNodeEnXML(evaluation.retourneFirstEnfant("fichier"), fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("/")),Run.TypeFile.Sujet ); - } - if(notError) { - JFrame frame = new JFrame("Extration"); - JLabel texte = new JLabel("

Extration réussie

Le fichier d'analyse "+ analysis_filename +" a été extrait de la base.

" - + "

"+fileToSave.getAbsolutePath()+"

"); - JOptionPane.showMessageDialog(frame, texte); - }else { - JFrame frame = new JFrame("Erreur"); - JLabel texte = new JLabel("

Erreur

Le fichier d'analyse n'a pas été extrait de la base.

" - + "

"); - JOptionPane.showMessageDialog(frame, texte); - } - } catch (IOException e1) { - e1.printStackTrace(); + if(commandes.os.contains("Win")) { + notError = evaluation.retourneFirstEnfant("fichier").saveNodeEnXML(fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\"))); + }else { + notError = evaluation.retourneFirstEnfant("fichier").saveNodeEnXML(fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("/"))); + } + if(notError) { + JFrame frame = new JFrame("Extration"); + JLabel texte = new JLabel("

Extration réussie

Le fichier d'analyse "+ analysis_filename +" a été extrait de la base.

" + + "

"+fileToSave.getAbsolutePath()+"

"); + JOptionPane.showMessageDialog(frame, texte); + }else { + JFrame frame = new JFrame("Erreur"); + JLabel texte = new JLabel("

Erreur

Le fichier d'analyse n'a pas été extrait de la base.

" + + "

"); + JOptionPane.showMessageDialog(frame, texte); } System.out.println("Save as file: " + fileToSave.getAbsolutePath()); new recupeNodeBaseEvaluations(); @@ -411,13 +408,13 @@ private void ListenerAction() { node evaluation = new node(); evaluation.setNameNode("evaluation"); String name = "Nouvelle évaluation"; - evaluation.getEnfants().add(calc.commandes.sujet); + evaluation.getEnfants().add(commandes.sujet); name = JOptionPane.showInputDialog(null,"Donner un nom à cette évaluation ?",name); if(name!=null) { if(!name.isBlank()) { - evaluation.getEnfants().add(calc.commandes.sujet); + evaluation.getEnfants().add(commandes.sujet); new creerNouvelleEvaluation(evaluation,name,false,false); new recupeNodeBaseEvaluations(); model.addOrUpdate(); @@ -442,7 +439,7 @@ private void ListenerAction() { new trierParDateDecroissanteLaBase(); model.addOrUpdate(); table.setModel(model); - selectRow(calc.commandes.IndexEvaluationCharger); + selectRow(commandes.IndexEvaluationCharger); } } }); @@ -465,13 +462,13 @@ private void ListenerAction() { public void actionPerformed(ActionEvent e) { new ChargePathBaseEvaluation(false); if(!ChargePathBaseEvaluation.isErreurLecture()) { - if(calc.commandes.evaluationsBase!=null) { + if(commandes.evaluationsBase!=null) { baseDonneesEvaluations.getInstance(); } - if(calc.commandes.PathBaseEvaluationDefaut) { - lblCheminVersBase.setText(calc.commandes.PathBaseEvaluations); + if(commandes.PathBaseEvaluationDefaut) { + lblCheminVersBase.setText(commandes.PathBaseEvaluations); }else { - lblCheminVersBase.setText(calc.commandes.PathBaseEvaluations+"/"+calc.commandes.NameBaseEvaluations); + lblCheminVersBase.setText(commandes.PathBaseEvaluations+"/"+commandes.NameBaseEvaluations); } model.addOrUpdate(); table = new JTable(model); @@ -485,14 +482,14 @@ private void ListenerAction() { btndefautBaseEvaluation.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(Files.isReadable(Paths.get(""))) { - calc.commandes.PathBaseEvaluations = Paths.get("").toAbsolutePath().toString(); - calc.commandes.NameBaseEvaluations = "base_evaluations_analyseWriter.xml"; - calc.commandes.PathBaseEvaluationDefaut = true; + commandes.PathBaseEvaluations = Paths.get("").toAbsolutePath().toString(); + commandes.NameBaseEvaluations = "base_evaluations_analyseWriter.xml"; + commandes.PathBaseEvaluationDefaut = true; new recupeNodeBaseEvaluations(); - if(calc.commandes.PathBaseEvaluationDefaut) { - lblCheminVersBase.setText(calc.commandes.PathBaseEvaluations); + if(commandes.PathBaseEvaluationDefaut) { + lblCheminVersBase.setText(commandes.PathBaseEvaluations); }else { - lblCheminVersBase.setText(calc.commandes.PathBaseEvaluations+"/"+calc.commandes.NameBaseEvaluations); + lblCheminVersBase.setText(commandes.PathBaseEvaluations+"/"+commandes.NameBaseEvaluations); } model.addOrUpdate(); table = new JTable(model); @@ -519,7 +516,7 @@ private void ListenerAction() { if (!lsm.isSelectionEmpty()) { indexSelect = lsm.getMinSelectionIndex(); chargeEvaluation.chargeEnMémoireEvaluationSelected(indexSelect); - calc.commandes.IndexEvaluationCharger = indexSelect; + commandes.IndexEvaluationCharger = indexSelect; if(!create.isDispose) { create.getInstance(); }else { @@ -558,8 +555,8 @@ private void ListenerAction() { */ btnSaveEvaluation.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - if(calc.commandes.evaluationChargeEnMemoire!=null) { - String name = calc.commandes.evaluationChargeEnMemoire.getAttributs().get("name"); + if(commandes.evaluationChargeEnMemoire!=null) { + String name = commandes.evaluationChargeEnMemoire.getAttributs().get("name"); name = JOptionPane.showInputDialog(null,"Voulez-vous renommer l'évaluation ?",name); if(name!=null) { if(!name.isBlank()) { @@ -578,7 +575,7 @@ private void ListenerAction() { new recupeNodeBaseEvaluations(); model.addOrUpdate(); table.setModel(model); - selectRow(calc.commandes.IndexEvaluationCharger); + selectRow(commandes.IndexEvaluationCharger); } }); diff --git a/src/fenetres/chargeBaseAuDemarrage.java b/src/fenetres/chargeBaseAuDemarrage.java index 8437206..d7afa35 100644 --- a/src/fenetres/chargeBaseAuDemarrage.java +++ b/src/fenetres/chargeBaseAuDemarrage.java @@ -50,7 +50,7 @@ public class chargeBaseAuDemarrage extends JFrame { int screenHeight = (int) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().getHeight(); setLocation(( (screenWidth) - getWidth()) / 2, (screenHeight - getHeight()) / 2); - ImageIcon img = new ImageIcon(getClass().getResource("/resources/evalwriter.png") ); + ImageIcon img = new ImageIcon(getClass().getResource("/resources/evalcalc.png") ); setIconImage(img.getImage()); setTitle(calc.commandes.Titre + " - La base de données des évaluations"); diff --git a/src/fenetres/create.java b/src/fenetres/create.java index 8ea51a9..f6d790a 100644 --- a/src/fenetres/create.java +++ b/src/fenetres/create.java @@ -64,8 +64,10 @@ import actions.actExpandNode; import actions.actNewFichierAnalyse; import actions.actNodeFichier; import actions.actOpen; +import actions.actOpenBaseEvaluation; import actions.actSave; import actions.actSaveAs; +import actions.actSaveEvaluation; import actions.actSetting; import actions.actSupprimeTitre; import actions.actTitre1; @@ -101,11 +103,11 @@ public final class create extends JFrame { private JMenuBar menuBar = new JMenuBar(); private static JButton buttonEvaluate; private static JToggleButton tglbtnTousLesNodes; -// private JPanel panelPrincipal; private static JScrollPane ScrollPaneTableBouton = new JScrollPane( ); private static JScrollBar verticalScrollBar = ScrollPaneTableBouton.getVerticalScrollBar(); private static JLabel lblInfo = new JLabel("Fichier d'analyse"); private JPanel panelDroiteBoutons= new JPanel(); + public static boolean isDispose = true; private static create instance; @@ -122,13 +124,24 @@ public final class create extends JFrame { } public static create getInstance() { - if (instance == null) { + if (isDispose) { instance = new create(); } instance.setVisible(true); + isDispose = false; return instance; } + /** + * Ferme la fenêtre et quitte. + */ + public static void fermeCreate() { + if(!isDispose) { + isDispose=true; + instance.dispose(); + } + } + /** * Initialize the contents of the frame. @@ -310,9 +323,7 @@ public final class create extends JFrame { addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent windowEvent) { - if(JOptionPane.showConfirmDialog(null,"Voulez-vous quitter analyseWriter?", "Quitter", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION) { - dispose(); - }; + new actExit().actionPerformed(null); } }); @@ -569,6 +580,18 @@ public final class create extends JFrame { toolBarPrincipal.setName("outils principaux"); + JButton btnChargeEvaluation = toolBarPrincipal.add( new actOpenBaseEvaluation() ); + btnChargeEvaluation.setIcon(new ImageIcon(create.class.getResource("/resources/BaseEvaluations.png"))); + btnChargeEvaluation.setHideActionText(true); + toolBarPrincipal.add(btnChargeEvaluation); + + JButton btnSaveEvaluation = toolBarPrincipal.add( new actSaveEvaluation() ); + btnSaveEvaluation.setIcon(new ImageIcon(create.class.getResource("/resources/saveEvaluation.png"))); + btnSaveEvaluation.setHideActionText(true); + toolBarPrincipal.add(btnSaveEvaluation); + + toolBarPrincipal.addSeparator(); + JButton buttonLoadFile = toolBarPrincipal.add( new actOpen() ); buttonLoadFile.setIcon(new ImageIcon(create.class.getResource("/resources/fichierAnalyse.png"))); buttonLoadFile.setHideActionText(true); @@ -679,11 +702,13 @@ public final class create extends JFrame { public void closeWindows() { if(JOptionPane.showConfirmDialog(null,"Voulez-vous quitter analyseWriter?", "Quitter", JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION) { - dispose(); + isDispose=true; + dispose(); } } public void closeDirectlyWindows() { + isDispose=true; this.dispose(); } diff --git a/src/fenetres/evaluate.java b/src/fenetres/evaluate.java index 8ba6902..3a35354 100644 --- a/src/fenetres/evaluate.java +++ b/src/fenetres/evaluate.java @@ -472,6 +472,15 @@ public class evaluate extends JFrame { + + public static void ferme() { + if(!isDispose) { + isDispose=true; + instance.dispose(); + } + } + + /** * * evaluer l'ensemble des fichiers des étudiants diff --git a/src/fenetres/setting.java b/src/fenetres/setting.java index 445dccd..d56f0eb 100644 --- a/src/fenetres/setting.java +++ b/src/fenetres/setting.java @@ -679,17 +679,11 @@ public final class setting extends JFrame { if (userSelection == JFileChooser.APPROVE_OPTION) { File fileToSave = fileChooser.getSelectedFile(); - try { - -// - 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) { - e1.printStackTrace(); - } + // + 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()); } } diff --git a/src/resources/BaseEvaluations.png b/src/resources/BaseEvaluations.png new file mode 100644 index 0000000000000000000000000000000000000000..175f74b0105ac852391141cb77af06c724b9eae6 GIT binary patch literal 4012 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 S6!so$#Q|HgeMi)3E zqO>$N8f<_3lkubB+c|**nJFcof0{`H16k?s>({dB5AW(IrarP688ZbwI%fQE+cv%9 zai3`hJ9bE`w*T00e8oz!6pTF)#OGZR@sepr>bEn4jnGc|6kgtZYaCP`+FQV;T?uatYlQnJCVB70i*&TO7>&)%Qquwetp>{0E!wueuhlQEUgaNjcgI>cZ^4@kWHE{uOPc^70J?PU0YDV>SYrPU zL@@)2#4K)H|7+~R1*L1x-v8?&L11hD(xtxX^{Rv65JyA?q7fh>KkAZ*jAXY&07)uC zJf=sfb2p4xKgXoM9yP1pQ%{^w-*7r>8UW~k$7a!+J9U>-m6R)2=YNr#E0x#^)YVy; zn&p{BzAW1$EHY*=2tqRQ>Y87ns`_orD*=^=C3f!orQzhslL!Wbn3)-xvsx=mI-PC+ zKz({M>5{IUC#d2|LPtTbTrlzK7>C&at z($YeQ4jm%1*-QYawY8NxIy%T~HdAM3ClS$CX$CKQG#^)2h_5CyO#m_Yr}>O5V^~q) zS5yje6`|)!-R8D^pKg2c#U^cUZ!eyA6uGT81@a! zt#rL&ayT4_$K&vLJZNled{ku5Mse7Zhmy&A?9zYl(Z_QkK4B{m$};pQ*J|h)CJ5O- z_)(i9C@-??+O;d4j;^jQ#G(&QpX}T}`L{E}KPfC+48PwG0C2nAj~<+LZr0cGl0e_{ zFlzBIYN%!YS{FO#suDU@mJ7eGEE9fq?ri6A&N;tx=MFVAG!Ou)tE;16aE`*^Svq?3 zC;=czlIZf~%M_2tDb2uH#9n*05bx`>%$U4TELHC0jsV6Ov^qTwbX-K|iBHhh)&>B` z%gcksVu8=+0|1nilwfFRh>N25?es;vIZA&Xxs6vR{B$Lr04WMVQ2-iLBHBnq!$kB35#fKF2U=my Sbi&{O0000; literal 0 HcmV?d00001 diff --git a/src/resources/accueilChargeEvaluation.png b/src/resources/accueilChargeEvaluation.png new file mode 100644 index 0000000000000000000000000000000000000000..c27e585a80e824c8d6c8ea6860381f18db1a1754 GIT binary patch literal 30589 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 literal 0 HcmV?d00001 diff --git a/src/resources/bye-bye.png b/src/resources/bye-bye.png new file mode 100644 index 0000000000000000000000000000000000000000..dd168e68813ca9fd042b85e20a856faf44c68eb7 GIT binary patch literal 86885 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 literal 0 HcmV?d00001 diff --git a/src/resources/saveEvaluationmini.png b/src/resources/saveEvaluationmini.png new file mode 100644 index 0000000000000000000000000000000000000000..3d0a8d1596ff35ab1953996d78c2d52b3a52f466 GIT binary patch literal 1614 zcmV-U2C?~xP)|0_xc05@en_*((4HU>i(;!Evj;%lvXw_DUN=lLV5k;bE zr3$sGDoBNd)FO}|g{mn@D_T`blN1YDnuQ2wvjZflTi_SiFTmbcumKVCex z>moks>MlC>ock^B-Al}juQDQXZ`q>NNGVG!03KD`J%8RvGIQZ8_x?YD_IB^OZ7s^4 z>T2J?h`rmo_X;0Nc&Y}m;KC3;v z{|DZq4?d*CLA2-)|9CG8w{F1nt56icl`%1^xX`*U;E=$D1_Db!jsb-52mMO;r$NdovzDP zWQjmqo9pYt!}h6HUNPG?Zp8lbaR-`}xA+fh}8csQ)YJZ`x{ z1~uiz4JmDwtm|?-ox;e-2oLx48Qt5qxp!}G!7m#c)TW*uIkH4R&v3>lFq#^amIrD@ z%jQiYnVQC>R7&qO5*olXzn1PH%I01^I~xxhzA^ zaBhjf>9fZBnkCJx(M}J=7!)-XEt1A*e{o_qd4&m9g#kJaq(9X0ZSvZPP)L$Cm6a5F47N1kyj* zgC7+I4m|Jfv~9L7c9}0kquPD33VTy9pf(2la(yT)O8q{95Db6SHN1Wyjwja7pMLE6 z>wq+{vhj!TdH_WNr+a|9b&y5>^EqkVSEGC_9Cm&5pHchd;2=6WFBN_a0A4T3V&&@E zV2Deee4+BK%+fk_LZC~#+zZ&p??+$x1@s>I%! zwY0asjwW>-{g#ah%jQ{WBMr`b06+Tsd-2D&51=$~7fq}G1y!+e_@#PG%q+w1eZK~< zVR4eLU6VeK#-Fc=DUD9t86iJPLVhZlPbxt`2e2IRcmnadZ79hdLL^`T0BS3f2(H|P zrsfU6MTfVTsk#I;3?^~5^NRhep%FQvr=7~sb%|Wo8E16~mh++c&i7u#P-eunnxml=M2wzMBuCfIJ8J$xBA0ZNwo1-CYPR-JtT!FjvEDcyD^_a}F zMnTSQQbMm@P_g{MH*TZM=!NKOhDpj3Oi(0q3dQuy-M$lN=^#b5HO_+KL;4ZyNc z2y0?xD~BdUH;#82^B1fp>qcpOLn3np^P1n(87HUIzs M07*qoM6N<$f`g?4O#lD@ literal 0 HcmV?d00001 diff --git a/src/xml/node.java b/src/xml/node.java index 88d069f..b9afd91 100644 --- a/src/xml/node.java +++ b/src/xml/node.java @@ -166,6 +166,12 @@ private boolean nodeClose = false; return null; } + /** + * Retourne le premier enfant ayant le nom nameNode.
+ * Sinon retourne un null. + * @param nameNode : le nom de l'enfant. + * @return + */ public node retourneFirstEnfant(String nameNode) { if(this.nameNode.equals(nameNode)) return this; for (node nod : enfants) { @@ -753,19 +759,28 @@ private boolean nodeClose = false; * @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 + * @return Erreur True ou False */ - public void saveNodeEnXML(String filename, String pathDestination) throws IOException { - - - if(filename.contains(".xml")) filename = filename.substring(0,filename.lastIndexOf(".xml")); + public boolean saveNodeEnXML(String filenameWithExtension, String pathDestination) { + if(!filenameWithExtension.contains(".xml")) { + filenameWithExtension = filenameWithExtension.substring(0,filenameWithExtension.lastIndexOf(".xml")); + } - Path outputFilePath = Paths.get(pathDestination +"/"+ filename + ".xml"); + Path outputFilePath = Paths.get(pathDestination +"/"+ filenameWithExtension + ".xml"); - BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8); - - fichier.write(this.ecritureXML().toString()); - fichier.close(); - + if(Files.isWritable(outputFilePath)){ + try { + BufferedWriter fichier = Files.newBufferedWriter(outputFilePath, StandardCharsets.UTF_8); + fichier.write(this.ecritureXML().toString()); + fichier.close(); + } catch (IOException e) { + e.printStackTrace(); + return false; + } + }else { + return false; + } + return true; } /**