From b430cefe35db576958a4a08003295776bc546d9b Mon Sep 17 00:00:00 2001 From: pablo rodriguez <58742538+1-pablo-rodriguez@users.noreply.github.com> Date: Sat, 28 May 2022 19:13:25 +0200 Subject: [PATCH] MAJ inteface graphique modification fichier analyse --- .classpath | 2 +- bin/.gitignore | 1 - bin/MEPTL/commandes.class | Bin 34707 -> 34796 bytes bin/app/about.class | Bin 3862 -> 3847 bytes bin/app/evaluate$1.class | Bin 1845 -> 2467 bytes bin/app/evaluate$2.class | Bin 716 -> 1584 bytes bin/app/evaluate.class | Bin 12774 -> 13879 bytes bin/app/filechooserXML.class | Bin 3913 -> 3850 bytes bin/app/mainApp.class | Bin 3225 -> 3427 bytes bin/fichierAnalyseInfo2.png | Bin 0 -> 2810 bytes bin/fichier_analyseXML info1.svg | 371 +++++++++ bin/resources/exit.png | Bin 0 -> 1124 bytes bin/resources/fichierAnalyseInfo.png | Bin 0 -> 2802 bytes bin/resources/fichierAnalyseInfo2.png | Bin 0 -> 2810 bytes bin/resources/fichierAnalyseModif.png | Bin 0 -> 2664 bytes bin/resources/fichierCSVInfo.png | Bin 0 -> 2760 bytes bin/resources/treeOpen.png | Bin 0 -> 483 bytes icons/fichierAnalyseModif.png | Bin 0 -> 2664 bytes icons/fichier_analyseXML info1.svg | 31 +- icons/treeOpen.png | Bin 0 -> 483 bytes icons/treeOpen.svg | 249 ++++++ src/MEPTL/commandes.java | 8 + src/app/about.java | 2 +- src/app/create.java | 1081 +++++++++++++++++++++++++ src/app/evaluate.java | 764 +++++++++++------ src/app/filechooserXML.java | 38 +- src/app/mainApp.java | 14 +- src/app/msgBox.java | 38 +- src/resources/fichierAnalyseModif.png | Bin 0 -> 2664 bytes src/resources/treeOpen.png | Bin 0 -> 483 bytes 30 files changed, 2297 insertions(+), 302 deletions(-) create mode 100644 bin/fichierAnalyseInfo2.png create mode 100644 bin/fichier_analyseXML info1.svg create mode 100644 bin/resources/exit.png create mode 100644 bin/resources/fichierAnalyseInfo.png create mode 100644 bin/resources/fichierAnalyseInfo2.png create mode 100644 bin/resources/fichierAnalyseModif.png create mode 100644 bin/resources/fichierCSVInfo.png create mode 100644 bin/resources/treeOpen.png create mode 100644 icons/fichierAnalyseModif.png create mode 100644 icons/treeOpen.png create mode 100644 icons/treeOpen.svg create mode 100644 src/app/create.java create mode 100644 src/resources/fichierAnalyseModif.png create mode 100644 src/resources/treeOpen.png diff --git a/.classpath b/.classpath index 2af9cb4..2d33683 100644 --- a/.classpath +++ b/.classpath @@ -5,6 +5,6 @@ - + diff --git a/bin/.gitignore b/bin/.gitignore index 75cdbd6..f13ae4e 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1,2 +1 @@ /app/ -/resources/ diff --git a/bin/MEPTL/commandes.class b/bin/MEPTL/commandes.class index 0115844cb1c708aaca7937d919094626979e4606..93ca4504e52b9b466384707570ddc5f04ea79492 100644 GIT binary patch delta 14212 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 diff --git a/bin/app/about.class b/bin/app/about.class index 9d34a2260ad6f847755f4c09102f5b04215b8294..2db717d83a749892a007aaac7e110eb6a6bda9de 100644 GIT binary patch delta 25 gcmbOx*Dkk#gPlj!HLo}|Gd(XcucUahGW%zC0BO7kpa1{> delta 40 vcmZpdnvI!T6#v~m*feZy8(yVQSg_bMg|1ZuF^GmXKuXfqrbHg1Za25-md$S5y(s}- zh!37VkcZ-^qo4SUgQX)g{sI0`j^}QYHZUDCvpM(PbM8H_-#O=>fB*U$zyaJ-(8TbZ zQ7Y+t!LZAQ;C;giS{QofjRm8k`{ymEpeJU0;Tfh#n8I=$hEAV*mSN|(=hOZ~YLtPE zF|?1kjxP*H^4GZG&PlVjI4%Lccgg z@qy}*!-algDjg4FBc7Ko^aUOV;&t9YE=;bzprRj9hES9=Ds#-nR6DUON)+7Po)Qw10f7Cv}KEiZOgcYK-pQFad^>n zER&)b#!J|%;AOIN#i^7dc!7H=Uco*FC3t^gmSJNwRdX~5QB5o!!mE_K?40X~QSO_b zRg&-t;WYw6!Zf+fJwv!&pzRwZj&PO)~Q-`1K9T2MFBh9eBmWPC6*cW_Gbzv*;HNyOj_o$=)%pQQa*VmThw_U-tM=7*m*5kbNpGhh5j^h9lE*LMG#M zV=`(?O2*rSs)P`n?70|52B#ztPcvlxA7Awc8X&jIQ62BOdfDg0co*+0c#mScf}rU+ zj~jUv24)yqeVg+VVKzD@!QTyHa9Q13f@Z|MH206xfSVNMyhW|WmzEb)%t^Uc({_Cx z#yo5V=NQ(lC`wjL9>7gSQHpkys2)XD80NWYYGriEm6u5Swv|f~xSm%o37%iR-$r&3 z;(Z8eaH1kgPLcaQH58v3M-Y=b_{OGrMNAqFr&upA?1{x`-%=HD04w_#y7@N?8R;;0&66`{qopQ_tYfx#n z6X!YF{Z2AXM9;(q|3pXZF}h-r^-r+zRHQr7vxu#av2zi-Vv&K!U_ke*!qYpGOBfE= z`)gtcI+I>oIKAMq#1oQg~|FX1iuMRJdEGP53MmT)%q2px+scQ0c0 z0fsX~tp^y8)Omm%lKTiBM9PaePj5s%ZmB=`fjIm$w4*M-|b}wlo zhicBs)iqovcYDx<8@Nf?(b0mh@eQr^2di&s^&Q<&(c&nWKdQi0dWmz3&YJK&ZWC>x U&H~(_PY!+=PWih_UlY3j10?l@H2?qr literal 1845 zcmZ`)ZC4XV6n+L$Hi-j4v|=gNv{IX3B+^=2ja4upLK8p(Y0}+=@f}h&o z(Ld1R$J%x|r<~I-e(P`2p5ECFHc*;#HkqA!XYTVn_a%S*{l}jGu0t85`~D|VoSD}06l)v|+$ zD|BV0_s$YoZrZM`ZZVw99X93b42iOAiWC?IISeGz=tqVlg<*#NoOZ}mY*#FI+702a znGHuUj8vp$I(5^x^?P?Sp~DmQLlGvXDSXC^kgf`UQ~GVuWH_Iz97|?i6D#HG2F@~^ z)h@fmV8A&As9YKZL3AQL6-1lUp!Nt zrcI_`N(U}*T-MNrDDa$ZI&y2xR*ul7BF7a>Gn^)q7NI7(!K##1qMTcdv46yI6(2K< zk>9Lk2~W*Bjy^z-68?Ii(~`(NjJ-eM_!QT5z?R%u@q`;kWf<*ATv@g~=|%}#OreC& z4BR|ayS1lOnr)6-xJ|VrJBq}OwWo}&lJJV;7iPO;V3w{vnw2{p+i40vi82|t{wsMd zeP9_8j3M*@}0zYeTPQ^IGk#PK;Q)E(3+Bkymc((B_=2t>9&s*3QzOph zvzqNFHaH$?qM0KOx`e;t_*%o!w%JA?osJT#RP&ncx0>yDM@V+d|NluQ(V)SwEVHlc zia<26X@H80_l_BkEj=>0FE)JE7@P35o&yxR23|J-k&d>|<=>ImY+!UWoS#Bl!@Q z3W*R?h5is97FdXDKVkkkZtP=bW8}^r<_aO^Lo9}84a{r)S) zf5r)N95Ly@fY#kn} zW0!5<2lgo9nT@%0c@itMU=!0McCn4eq?JPvQs{dL&%h}C)1gfpeQ+V^H$ipf!KalL NSWBiq0X=YPIv(NeapFjTsu!y>a9)UsGYUOE925qTn zX2C*AVB(?Nli%j!M}D}QU#i7gNl!0%+K)nk;h2;!gDR<*_uIvr0^*Lqz;YDET86sH zuIK_sFh3#CryG7e^BPAgoeouC%MCyD^#=kYnX{&BRUow-?NC2Bo`W6$V$>%o7DG+Dq#V41cLgk?A}ZGf#xlij+6iIZV+9-UaXl-INa>ptd&+Ma zN!hp|aQy^o7`69Ew*L=#Dzm(`S(+(vHYD?Av5^zhA$J&?N0le>iOc{l9VrN7= zvtS%>-*AQ-r0S7s(vHB@ZYAX-&0R;K&UgB1#k_L`EtEKlsYBfl$ZJFqx7*#dQW~pp z(-=qD!G>u9M^T-X+bGEz1^w8>mW2v~I4MqLKi1TAunlgf-l(manvQ7vD8Iql)XWUY zCYR+dtESwdFpc~8+`Pjcn`FXO`DoM}X z;v{)?9M7M56P0OO3B4eSxqH?~HzKCZDTX1br16NUw$~}vx1(5d6LM}mXnHV#3+UsW zmF(={VKX+8cW}22uw{^U-}9LsULWMuHLxmkBE zSzk?T`7^fHhs#HJBQYV9^Bdnb`x zr1;_i`otjy#1Rk2KN8Plo!ec{><3@rYxbRjWUoD_!Q(Z>x&n6iG4sb@F+bv`2jl+& D))tE{ delta 407 zcmYk2OHKko5QhJn85kIwVSMmVL`6{n6G@C4UFyz|n7CkT8f;VoBLT#v@d##4;0-iB zNHp;P#xohK5u=?{*WcY$Uscz=_zdlSe7(K{*g?UDL2zZKQ&t1nx|DsD-?Cv5yrvw; za!dNB<-=N2)%!NWgluqQCL)#dUSIjDd+YBdV*)lJ4ot)aqVNc2p;!%y<`t!bJ2SPJ zLfk5Raw)9WbZ@u8r%3TveAkWiP z`3nYH6b=XzthV{AZ=BM`Gel_!_hA$>$$OY%K*yM3EwtvWY0R)EB#;~v4%lmg`-apI zv!y497tH-p+$#SRBzYJ$#Hc>PC4W-JI8MeQmKbCq$0!5KSYdDR6!KVOrQ6jF=(Wyf GAoC4({yR(n diff --git a/bin/app/evaluate.class b/bin/app/evaluate.class index 84193589c1dd849ed3362fb8fdb6df32d5564ea8..2418ede070cba94fd747626b375c823109936de0 100644 GIT binary patch literal 13879 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 literal 12774 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 H=d%9?_4^vc diff --git a/bin/app/filechooserXML.class b/bin/app/filechooserXML.class index ac01fd16869bc7ff9bd7f921300d45a4ef5f82f9..845877a7f43f18dcaea9a9bf29e023b7e9707485 100644 GIT binary patch delta 1394 zcmX|=dvH@l6vltsB)!S)A)^L={{<*v`w z51;Sf2VBLuZoSauSRDylMXp(v6T_aZh930=i?QF1WD_NRyp}q*%_wO#U#6>*9=}~pH#EbZby+-@;^wCj^a&&{Z^UV zr{1<2-36KNa8To2YpeSr$9o*I`rUJKj_`rT`*Jfdx2&qfA2FL_VS}SqwkKbGXwC5C zU4D$=cB+pJKH*cvsGCD|%R^?%>}W8&W~Esj42SAXDQc0M-WNU>vZ zk}Eea6>lt;kWT^QnJTsjKP60}g2_~K1twE?Kz7=g#&&s)ySSP=1z{$cVmn#KU1_`x z+|4~w$5g4{UhX495EgQOTrOt_$hGO9LtsYmprmuMUan=6F(4T;G?c~#@GlW1$M2Aw zgB_h2>S%94f=Y*NybmRaCfLx+Mtj-ISeb$etX>{Z(OR2gi;S(c65W>MnYj14B-@j8 z1X7gOCh45+>_GQ9g_NZ=6B4{wTY7NdT#Bw*pEE(d_a$#nf|tF0gVW;ll%&6xR3C4& z;ZfeV`Z&*Ew>|IS^pFtC z$PotSFp6s!E&Swhz3?)hi4-$k<{7e{Em9N{kbfyvVwVc3>!@J^i`Xcu&Dlei@iDwH}j&`1aMyrNTqkKRfgDWj!p~M8S90ugUxU{&ftQ{OYXop7(>0M}V zoxD!tl#J8hVZSt=)}4B(%>EVjkUGe)9&YgdoS?z6Thy! oxiR?4y;3c#VdQ1p#yD`({{$1aJswk4_)aWmX99Ddk3np-e!m%(mI6-G6gi8(9R#G2a@W@)6^)Y-`%1D&ZF zk1Kc<)sz-b*V)b!wsWs_mKxMj?6(gcR-KwZBgNAO&rqhINtK53NYqs6l5XplhRTD{ zSc9qYtjy}wNGr&10eTFc=YZ9%R*!i>A|rGFzgm&S_<2H+?<4lESO_U+>{i5AXDH zEW?NGjH!@ZAGKrH`m=W26`g`vA=~5u_d9x*P{=;-}v%V%6Sf9VZcg4)Keq6jwS)7S(XrED{)D9jjU!JySP@K^?FHv9sAheU|WSI z1@>n*ZCmy#70J1jFZfa*4hgVdNlh2al3b8A%Vg(Yb4vD@lJ6V7mGExI`c5o+`<18z zgj7HI(zfaTT>X37qAN{|iS(_U2|K|AJ9n#g%a~UZb8FaLaI#F0`Q{LvE-M27v Mbe`1s!}0z3A6BbbO#lD@ diff --git a/bin/app/mainApp.class b/bin/app/mainApp.class index 93d395494f3fa8855434f21aac2881e7285bcc6f..2419c34b0cbc0ef3b09d861896084370ec65c9e7 100644 GIT binary patch delta 1138 zcmZXT`EwIx7{@ZmP&;EWEVI5LPbSV^TELOsAGY}?f|Nt3jt zfJ71Tz$3a|ty0CKcwXSGucHN8 zlwAh*v)hRV+LS#85Au++E^wW)*WghebM^(U6i+y30xOn2X%OUG4M%X{zZ_Y^W^%~P zTb_-2p5Zx_X9aWq7GIW5rsXuxGv+K&T9g+IUSyw>P%ewVBnWwBTVuHqJJlEKTxo8$ zk~$NFHC_=IF*A`Evg~Aa!U;yaTvlUJpsg|!wmgiq2knxJ6IORCQyfw$IS15M|1^i4 z8MW<3m9juLGnrT-Ye}0rE@2%%M+_>o3e+ujE|bn#^?b}Rm7{{-toNiTEv*^N<*fmO zF?#auRs7`KW=+$L6VyNGj#Sj|SUnN1?ionkvCmrDMQ>RqsanA~-XdA!M62-$Z7 zZ}Sd5*?k4?79{9L@E!-{dY&vDmj-<@E}7@@zIW!61S_~@KBx}zVGS=%(o*95aT-c| z6guhhX@!|GU)8F-N&T~vM$qJUFAen3NIy;7O&durXMjcBq_~#BS<4qxb!(QT1HR@P j>FTs>58!WVG9=@-a^vGWzL!y#$z~b7=Lh-LdHX*BXUZ%W delta 977 zcmZXT-ES0C6u^IXzh*lf%hEQAD=kf{Ld(h;115$iK@C=@izSp*F%IimhHQ72c3Z5X z>qm9{LX-<4D5zBM0~A_dR$0MMP>B!vApd}gKKP`G@k!&kTS8)-$vtPzx##@uIdkv* zIlkvg`}{wr&Hy)Ye#-tS)NL`WxNMU<<|f@OrQ~ged?`vv5n1DIEDX6en;COxXNxX} z+au!+5A%qg40lByb$E=j{yw}c@}$F4Oz76g67`JkjjUMltV4`h4Lr|_7B488F7cNa za)n`sZM>uirEc%LLlIl~-`S-$9xpq*!VdjcWP#eLJFF|_Y1*RfRyavFlNrr=xkbhN zpp9ma!(Lw3i^H8!WA1aB)3n(H`NH8#=1J%S-bk@9l2s@f zbM+6_+~YSkbSYc?L4**fWjbSbtND7Hy}VpwbGmsX7;CCB>hn;~2?{+vTaAu&&SrA9 zx)8g;=W%gd?{kas`#dqwQ^QL)KV4<$Bo%R1rg_e1yZO49Uim+{66=iJZ-Ccb0&XzG ziXqm}=_vKRjroe<@ zP05K2aIMHZSLxpxyUSbYWrCILVioUjr|eCN8msw=ySP95x|#LN7hccI4`dNZu~zdtlfqMycPj@uL_o3^^RD=U;(d?zMYcd$4tGFa zNG$aEV895|_#xV-Y28cXG{>5KpO0&tuJYMTFQ1z>g7r4yvU9M3FoSXxHp&I^xSCBY vWT;-&OXMS{u-R-3l8w6xE(wdE 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 M07*qoM6N<$g65QR=l}o! literal 0 HcmV?d00001 diff --git a/bin/fichier_analyseXML info1.svg b/bin/fichier_analyseXML info1.svg new file mode 100644 index 0000000..ce6dc4b --- /dev/null +++ b/bin/fichier_analyseXML info1.svg @@ -0,0 +1,371 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + XML + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/resources/exit.png b/bin/resources/exit.png new file mode 100644 index 0000000000000000000000000000000000000000..9eb7a87e8b093b956671b38dc34bbc501fb09d60 GIT binary patch literal 1124 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 Eg8aTu!vFvP literal 0 HcmV?d00001 diff --git a/bin/resources/fichierAnalyseInfo2.png b/bin/resources/fichierAnalyseInfo2.png new file mode 100644 index 0000000000000000000000000000000000000000..5931716fb4fa550f68346cd560d2ee5f75a5a7c9 GIT binary patch literal 2810 zcmVOXMS{u-R-3l8w6xE(wdE zh(eL7Sr-*!48kAE8WE_wDk6r4R*H)tLYFVusvsiJmKLT!Tl+Qd-LrpmW;(B(X$O-1 z&y#fK^xbpc{oQlVz4zQZ@T>ePVMU9?Xvl`2Mj4hK>%|+!!b|8PFPcb8?U3(JGk2~P zT$1$K(F{#lY5wZi6~s~(J(pTG=r}~FZm=#ozfC~* z6$Ie_d%2w>7h6Z`sEU+Vj^tljcKa#IFdc}lcXt-V2TfNeLBtSE@__4yM#K?gXgnO_ z=A(}+zWo;J>Kt@*Xe1?Bq^Dct=bKEQZjh1^gQjUg-i8iS@!01V_~LBy5P>gJUpbuL zu6JP#jwx;n3B2itC1Oxk=ph6<){V}^wIN~p@Nu{tbiqoeJrcO0@_F03qYYiTK z)JaZGG#fU=k&_e0V~@3P=1fxnSVV9+G&W4jU{Zz~P?<{DGx+60!yA`R*oDaNMZ_EM zumpMAKXM@?Y)ofoUrA_hckOO&H}bM)U)B%3m5R${_o7mYj*bqZqoX->3RbKTDk>bT zU3-Z~9*IZS^?-ewS21tL&+I?{3y7REP07FZ{GC4~mVEt?Xlg4WM(;3D3$CroUmuaD z6BApr8XMgw4MPnW{QTLUy%Sq|0e}3lm#i$Ep+nug_L_&`!!5RLgLmGscQx6TR}QA3p#>3P#tfmN!essWWHxSWw$*bxbvDhoi93hH zfXGdnCA*VK_GdJ%xVuyoe?*kBg^AUhE+lkHO56Kxx8;2J;qM=K{q;$0DAl!W^#Ip{ zYHAudo!xVK%oxR{O4NagV1Yu)Y;!R^#}cjho|8yo{jjwP}uxp?1@tE=w*2gqY0 zq5`W*7-}2zfB_x39#8blY14ju=B1bJs`s@-Pfr7E+-Q-RX_As+vTj{7iHR{bn`zS& zvu1Vj!VA&1FcA?3I5j?aaCjHEs1aUGmB+qVKKSa&d*2bI7Kv{&5Yes?LTu1Zr@S(H zbmNJlqVKi_xyLq}{a!CBg43rh&Y!oKKR+tuXslihd-o2cs;aeDrw2GSHqRc;*wh#h z8SU^I6$6%knbP#aeQ#-4b46rnljHI~LqP|v(-PI(EcxTcU4C(H(3Y#DdrJ7hnwvZ6 z>@ph4}|Vq-fm^@J7?zWGK-PBxf3x9hP| zuy0=+ix)@X^?G~3`1O$^p|-Zmrf28;dXn2<%bXF6NQwrL+caI34=mo5*e|rxsWRi@ zyltjw{$gYHeLVP}#;R2YD_3fyr<;NDnwqGvFaYW4;PDuAcAB>5J-wb3W3YA3E!;dP z3MDd5b;_sADRuM--Px(Pc)hv~xa}sE4d&uSsH^Lq3VC^Lwz%#I)7mOHor2Tp2s;{n zNp>52FlQt;B}5^@WcTm^g?&ORMQwAlD@ND#LBR&1f>KNocJ1<~rd=|9dic-)sHssT zCwnmrqfg+#$i%sLVnSNiT+-yGKB0l*SFS`So*^C= z*De=DMSYJ(NWG6N&$hWJ#k+gHS^yZ~IcI)t@+&C2$!0Q!Ot%~CD$D2q_ zcJw(Ky>%66vtMY?nk`EfefZ%mMO9UUpAiuqRKVL8F4(OP9uzFgqQ2gusj1Tjuz0b; zG&L44)^02`M6j&TCzlY%E#rL=Yuu}^j(bAa51NJxP5J81nx$B`&gA_0u4=1RrLkp8 zD={&!dv}+OQi?TeOg{ZIfr^S|Vq@)jcqF>?cpd>Xn5Mq0tqobTX8h9M{^_JNjci6l zNK1pmhdbD^rIVva!Rb^?o~)QL19V-dwzi!mOI#d1I*{$#Te$gVJMi^@BZ_bbt1t&! zO_?T3!94uMd!sg|WVEn3s*x#EbmHTqnLpo&uInhJFin&1zUyGyHiJ!@5}7=?gS~rO zNlv~_NSp3I2t*tnw&HEEfBm|o?QnX|x^+WXyjUkUw~gfF4x*z4kH_G`1vhnd3EX#I z2OoXZ${lxvpPZ5CA`;lpRG8CvzgGylVTt=UHGH!*k#pyCjvv>lsfnenO-M-*va&43 zk8i={>K`WZPWU_>=GYy{Wetdq*XyOK>N7-y+}y!ToH!AHBS((#`R8W=m@;Jw$BrGN zp`ihQp+kpq`|Y}{k+A z`0|I0m;WtIO--_3!2$uq<#Ne^0|(^HnKP1Zq)&L_~1A-L$s0 zhFs3tx4I6z5B2`5gRASx<~*w|QVYHE1;>8Aq?`z0wU ziLqnHQdU;R)vH%2C@AO!*{3cNb{<9$9t5ta%FD}n^UXH_SiXEYB_$;QY~H+?($dmi zRSOCVP`(@>7`mqyckI|fVPPSKg@xRI|NZRyY+IL2nB1fP@bD!s_4V~ESg-)46cZ*) zVBx}r%$qllsZ*x{uw=;+PMtc{3mPCHAt7W4`NiY$aQyi3z~42`W%|nU`u!y!?z!DR z#5(m6)r<1FI}zNW2=(i+-EyRsWuH|e!UFa7BfV}-BV6*rH+hGiQtz2g~$!$ z#1ZP(0~;~4h%~o$n%uqdXpq;%H^KZ32R?d_jQD?&fWVXvdJiF>TROVd4Go%Z2wGG8 zU7`MV_DWkEHi#gY9smjjO1f8`9`$U`!?+5x<5sk}vp>FH<^L)F0~l*&eN~?=761SM M07*qoM6N<$g65QR=l}o! literal 0 HcmV?d00001 diff --git a/bin/resources/fichierAnalyseModif.png b/bin/resources/fichierAnalyseModif.png new file mode 100644 index 0000000000000000000000000000000000000000..5168fd5a923fbdecb498106e356e5c1ee971765d GIT binary patch literal 2664 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 W(S11)@){ig0000 + + + + + + diff --git a/icons/treeOpen.png b/icons/treeOpen.png new file mode 100644 index 0000000000000000000000000000000000000000..26a67afc6d44b7dde2151eb2a00f2ee3c53c8668 GIT binary patch literal 483 zcmV<90UZ8`P)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10dPq~ zK~y-6jnc78)ln1&@Xvca%-)MkkhG$qG9d(A5*=)o60)HPYzwL-gr?`zAK+*ZD$*=2 zLgXMpi$S16jzLl`g&9QX(DqKl@4k4Mzo%cg+{-=RbME(h&*5Mk!xVaR;)D2ruAKOP zXu%@hqSAy{#b;bPtl)7h;WbViLBJDip(l?}!5b{_>n?GVI7?KC6(S|ZIx$3yro2b^ zhW>h?Qrg?Gj7>bCt%esE!1H8rkl4nlePZUYn*@#FeF>dd!8=T#Mgg&b^Avs(UvVxy zvUY&W1?=G!#*4Cstfv2|H4slH2XzFx@hRu~mNAR@B4%(KR~zzAq60g`#dP^w*2p}J z<00JZ2k~WiC&_Um?EAL!^C7d4-u=xB5@gyWzFi_|I#gNW0)v6sICyLM3HDo z=MvGLt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + XML + + + + diff --git a/src/MEPTL/commandes.java b/src/MEPTL/commandes.java index 9953cff..ab7eb3b 100644 --- a/src/MEPTL/commandes.java +++ b/src/MEPTL/commandes.java @@ -8,6 +8,8 @@ import java.io.InputStreamReader; import java.io.Reader; import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.swing.JTree; + import cXML.*; import cXML.Run.UserStatus; @@ -26,6 +28,7 @@ public class commandes { //** Le node du fichier d'analyse public static node sujet = new node(); + public static JTree tree = new JTree(); public static node nodeCSV = null; //*************************************************** @@ -736,5 +739,10 @@ public class commandes { public static void CLS() throws InterruptedException, IOException { new ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor(); } + + + + + } diff --git a/src/app/about.java b/src/app/about.java index 76e5018..db3430e 100644 --- a/src/app/about.java +++ b/src/app/about.java @@ -92,7 +92,7 @@ public class about extends JFrame { lblNewLabelAuteur.setBounds(20, 271, 240, 20); contentPane.add(lblNewLabelAuteur); - JLabel lblInformationEnseignant = new JLabel("Enseignants d'informatique à l'université d'Artois"); + JLabel lblInformationEnseignant = new JLabel("Enseignants à l'université d'Artois"); lblInformationEnseignant.setFont(new Font("Tahoma", Font.PLAIN, 12)); lblInformationEnseignant.setBounds(20, 285, 296, 20); getContentPane().add(lblInformationEnseignant); diff --git a/src/app/create.java b/src/app/create.java new file mode 100644 index 0000000..9a7d55e --- /dev/null +++ b/src/app/create.java @@ -0,0 +1,1081 @@ +package app; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.SystemColor; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.File; +import java.io.IOException; +import java.util.Enumeration; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JDialog; +import javax.swing.JEditorPane; +import javax.swing.JFileChooser; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JSeparator; +import javax.swing.JSplitPane; +import javax.swing.JTabbedPane; +import javax.swing.JTextField; +import javax.swing.JToolBar; +import javax.swing.JTree; +import javax.swing.KeyStroke; +import javax.swing.SwingConstants; +import javax.swing.UnsupportedLookAndFeelException; +import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.DefaultTreeCellRenderer; +import javax.swing.tree.DefaultTreeModel; +import javax.swing.tree.TreeSelectionModel; + + +import MEPTL.commandes; +import cXML.Run; +import java.awt.event.InputEvent; + + +public class create extends JFrame { + + private static final long serialVersionUID = 1L; + // les élément de create + private JTree tree = new JTree(); + private JEditorPane textNodeSelect = new JEditorPane(); + private JToolBar toolBar = new JToolBar(); + private JMenuBar menuBar = new JMenuBar(); + + private JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); + + // les éléments de l'évaluation + private JTextField textFieldTitreAvantLeSaut = new JTextField(); + private JComboBox comboBoxAttribut = new JComboBox(); + private JEditorPane editorPaneInformationNode = new JEditorPane(); + private JEditorPane editorPaneInfosAttribut = new JEditorPane(); + private JEditorPane editorPaneInfosNode = new JEditorPane(); + private JCheckBox chckbxEvaluerNode = new JCheckBox("Evaluer un ou des éléments de ce node."); + private JCheckBox chckbxSautApresTitre = new JCheckBox("Insérer un titre puis un saut avant l'évaluation de ce node."); + private JCheckBox chckbxEvaluerPresenceDeCeNode = new JCheckBox("Evaluer la présence de ce node."); + private JTextField textField_NombrePointEvalThisNode = new JTextField(); + private JCheckBox chckbxEvaluerAttribut = new JCheckBox("Evaluer l'attribut"); + private JTextField textField_NombrePointAttribut = new JTextField(); + private JEditorPane editorPaneAttribut = new JEditorPane(); + private JEditorPane editorPaneContenuNode = new JEditorPane(); + private JCheckBox chckbxEvaluerContenuDuNode = new JCheckBox("Evaluer le contenu du node ci-dessous"); + private JTextField textFieldNombrePointContenuNode = new JTextField(); + private JButton btnEtendu = new JButton("→ Tolérance"); + private JButton btnOuExact = new JButton("¦ OU"); + private JButton btnContient = new JButton("{ Contient }"); + private JButton btnColor = new JButton("# Couleur"); + private JButton btnBordure = new JButton("Bordure"); + private String messg = "Valeur de l'attribut - fonctions - évaluateur et point"; + private JLabel lblType = new JLabel(messg); + private JEditorPane editorPaneContenuEnfant = new JEditorPane(); + private JTextField textField_DistanceSimilitude = new JTextField(); + private JTextField textFieldNbrPointContenuEnfant = new JTextField(); + private JCheckBox chckbxEvaluerSimilitude = new JCheckBox("Evaluer le contenu complet avec les nodes enfants (Similitude)"); + private JCheckBox chckbxIgnoreValeurNumerique = new JCheckBox("Ignorer les valeurs numériques"); + private JCheckBox chckbxIgnoreLaCasse = new JCheckBox("Ignore la casse"); + private JCheckBox chckbxIgnoreLesCaracteresSpeciaux = new JCheckBox("Ignore les caractères spéciaux"); + private final JPanel panelStyleStructure = new JPanel(); + private String messg2 = "Le style du paragraphe est : "; + private JLabel lblLeStyleDeParagrapheDuParagraphe = new JLabel(messg2); + private final JLabel lblAttribut_analyseStyle = new JLabel("Sélectionner l'attribut"); + private final JComboBox comboBoxAttribut_analyseStyle = new JComboBox(); + private JCheckBox chckbx_EvaluateStyleDeParagraphe = new JCheckBox("Evaluer le style de paragraphe"); + private JTextField textField_evaluateStyleParagrapheAttributNbrPoint = new JTextField(); + private JEditorPane editorPane_evaluateStyleParagrapheAttribut = new JEditorPane(); + private JLabel lbl_NombrePointAttributEvaluationStyleParagraphe = new JLabel("Nombre point"); + private JScrollPane scrollPane_evaluationAttributStyleParagraphe = new JScrollPane(); + + /** + * Create the application. + */ + public create() { + setResizable(false); + try { + initialize(); + } catch (UnsupportedLookAndFeelException e) { + e.printStackTrace(); + } + setVisible(true); + } + + + + /** + * Initialize the contents of the frame. + * @throws UnsupportedLookAndFeelException + */ + private void initialize() throws UnsupportedLookAndFeelException { +// UIManager.setLookAndFeel(new NimbusLookAndFeel()); + + + /*Chargement des images*/ + ImageIcon img1 = new ImageIcon(getClass().getResource("/attribut.png") ); + ImageIcon img3 = new ImageIcon(getClass().getResource("/property.png") ); + ImageIcon img4 = new ImageIcon(getClass().getResource("/content.png") ); + ImageIcon img2 = new ImageIcon(getClass().getResource("/structurepage.png") ); + + + //frame = new JFrame(); + System.out.println(this.getClass()); + setSize(1400,915); + + //setExtendedState(getExtendedState()|JFrame.MAXIMIZED_BOTH ); + setTitle(commandes.Titre); + ImageIcon img = new ImageIcon(getClass().getResource("/evalwriter.png") ); + setIconImage(img.getImage()); + + setLocationRelativeTo( null ); +// frame.setBounds(0, 0, 860, 500); + setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + + // Construction et injection de la barre de menu + setJMenuBar( this.createMenuBar() ); + + // Construction et injection de la barre d'outils + JPanel contentPane = (JPanel) getContentPane(); + this.createToolBar(); + getContentPane().setLayout(new BorderLayout(2, 2)); + contentPane.add( toolBar, BorderLayout.NORTH ); + + // The content of the window + if(commandes.fichierAnalyseValide) tree = commandes.tree; + +// JTextArea J = new JTextArea(); +// contentPane.add(J,BorderLayout.EAST); + + JPanel panel = new JPanel(); + getContentPane().add(panel, BorderLayout.CENTER); + panel.setLayout(null); + + tabbedPane.setBounds(812, 13, 561, 785); + panel.add(tabbedPane); + + JPanel panelProperties = new JPanel(); + panelProperties.setLayout(null); + tabbedPane.addTab("Propriétés", img3, panelProperties, null); + + chckbxEvaluerNode.setFont(new Font("Tahoma", Font.BOLD, 12)); + chckbxEvaluerNode.setBounds(6, 144, 285, 23); + panelProperties.add(chckbxEvaluerNode); + + chckbxSautApresTitre.setFont(new Font("Tahoma", Font.BOLD, 12)); + chckbxSautApresTitre.setBounds(6, 342, 461, 23); + panelProperties.add(chckbxSautApresTitre); + + textFieldTitreAvantLeSaut.setFont(new Font("Tahoma", Font.PLAIN, 12)); + textFieldTitreAvantLeSaut.setColumns(10); + textFieldTitreAvantLeSaut.setBounds(10, 395, 536, 33); + panelProperties.add(textFieldTitreAvantLeSaut); + + JLabel lblNewLabel_1 = new JLabel("Texte à insérer avant l'évaluation de ce node. (Si un saut est inséré)"); + lblNewLabel_1.setFont(new Font("Tahoma", Font.BOLD, 12)); + lblNewLabel_1.setBounds(6, 372, 511, 23); + panelProperties.add(lblNewLabel_1); + + chckbxEvaluerPresenceDeCeNode.setFont(new Font("Tahoma", Font.BOLD, 12)); + chckbxEvaluerPresenceDeCeNode.setBounds(6, 458, 226, 23); + panelProperties.add(chckbxEvaluerPresenceDeCeNode); + + JScrollPane scrollPane_1 = new JScrollPane(); + scrollPane_1.setBounds(10, 11, 536, 125); + panelProperties.add(scrollPane_1); + editorPaneInfosNode.setEditable(false); + + + scrollPane_1.setViewportView(editorPaneInfosNode); + editorPaneInfosNode.setText((String) null); + + JScrollPane scrollPane_2 = new JScrollPane(); + scrollPane_2.setBounds(10, 235, 536, 100); + panelProperties.add(scrollPane_2); + + + scrollPane_2.setViewportView(editorPaneInformationNode); + editorPaneInformationNode.setText((String) null); + editorPaneInformationNode.setEditable(false); + + textField_NombrePointEvalThisNode.setText("1"); + textField_NombrePointEvalThisNode.setHorizontalAlignment(SwingConstants.CENTER); + textField_NombrePointEvalThisNode.setFont(new Font("Tahoma", Font.BOLD, 12)); + textField_NombrePointEvalThisNode.setColumns(10); + textField_NombrePointEvalThisNode.setBounds(360, 459, 45, 20); + panelProperties.add(textField_NombrePointEvalThisNode); + + JLabel lblNbrePointsPourEvaluerCeNode = new JLabel("Nbre point"); + lblNbrePointsPourEvaluerCeNode.setFont(new Font("Tahoma", Font.BOLD, 12)); + lblNbrePointsPourEvaluerCeNode.setBounds(271, 462, 79, 14); + panelProperties.add(lblNbrePointsPourEvaluerCeNode); + + JPanel panelAttributs = new JPanel(); + panelAttributs.setLayout(null); + tabbedPane.addTab("Attributs", img1, panelAttributs, null); + comboBoxAttribut.setToolTipText("Les attributs présents dans ce node."); + comboBoxAttribut.setMaximumRowCount(10); + + comboBoxAttribut.setFont(new Font("Tahoma", Font.PLAIN, 14)); + comboBoxAttribut.setBounds(10, 31, 510, 31); + panelAttributs.add(comboBoxAttribut); + + JScrollPane scrollPane_3 = new JScrollPane(); + scrollPane_3.setBounds(10, 201, 536, 135); + panelAttributs.add(scrollPane_3); + + scrollPane_3.setViewportView(editorPaneAttribut); + editorPaneAttribut.setFont(new Font("Tahoma", Font.BOLD, 16)); + + JLabel lblAttribut = new JLabel("Sélectionner l'attribut"); + lblAttribut.setFont(new Font("Tahoma", Font.BOLD, 12)); + lblAttribut.setBounds(10, 11, 149, 22); + panelAttributs.add(lblAttribut); + + textField_NombrePointAttribut.setText("0"); + textField_NombrePointAttribut.setHorizontalAlignment(SwingConstants.CENTER); + textField_NombrePointAttribut.setFont(new Font("Tahoma", Font.BOLD, 12)); + textField_NombrePointAttribut.setColumns(10); + textField_NombrePointAttribut.setBounds(114, 126, 57, 31); + panelAttributs.add(textField_NombrePointAttribut); + + JLabel lblNewLabel = new JLabel("Nombre point"); + lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 12)); + lblNewLabel.setBounds(16, 134, 94, 14); + panelAttributs.add(lblNewLabel); + + chckbxEvaluerAttribut.setFont(new Font("Tahoma", Font.BOLD, 14)); + chckbxEvaluerAttribut.setBounds(10, 97, 269, 23); + panelAttributs.add(chckbxEvaluerAttribut); + + JLabel lblAvertissement = new JLabel(""); + lblAvertissement.setVerticalAlignment(SwingConstants.TOP); + lblAvertissement.setForeground(Color.RED); + lblAvertissement.setBounds(153, 11, 393, 22); + panelAttributs.add(lblAvertissement); + + lblType.setVerticalAlignment(SwingConstants.TOP); + lblType.setHorizontalAlignment(SwingConstants.LEFT); + lblType.setBounds(10, 168, 547, 22); + panelAttributs.add(lblType); + + JScrollPane scrollPane_3_1 = new JScrollPane(); + scrollPane_3_1.setBounds(10, 389, 536, 323); + panelAttributs.add(scrollPane_3_1); + + scrollPane_3_1.setViewportView(editorPaneInfosAttribut); + + btnEtendu.setBounds(10, 347, 100, 31); + panelAttributs.add(btnEtendu); + + btnOuExact.setBounds(120, 347, 90, 30); + panelAttributs.add(btnOuExact); + + btnContient.setBounds(220, 347, 100, 30); + panelAttributs.add(btnContient); + + btnColor.setBounds(330, 347, 90, 30); + panelAttributs.add(btnColor); + + btnBordure.setBounds(430, 347, 90, 30); + panelAttributs.add(btnBordure); + + JPanel panelContenu = new JPanel(); + panelContenu.setLayout(null); + tabbedPane.addTab("Contenu", img4, panelContenu, null); + + JScrollPane scrollPane = new JScrollPane(); + scrollPane.setBounds(10, 67, 530, 86); + panelContenu.add(scrollPane); + editorPaneContenuNode.setEditable(false); + + scrollPane.setViewportView(editorPaneContenuNode); + + chckbxEvaluerContenuDuNode.setFont(new Font("Tahoma", Font.BOLD, 12)); + chckbxEvaluerContenuDuNode.setBounds(6, 25, 304, 23); + panelContenu.add(chckbxEvaluerContenuDuNode); + + JLabel lblNbrPointContenuNode = new JLabel("Nbre point contenu node"); + lblNbrPointContenuNode.setFont(new Font("Tahoma", Font.BOLD, 12)); + lblNbrPointContenuNode.setBounds(316, 27, 155, 19); + panelContenu.add(lblNbrPointContenuNode); + + textFieldNombrePointContenuNode.setText("0"); + textFieldNombrePointContenuNode.setHorizontalAlignment(SwingConstants.CENTER); + textFieldNombrePointContenuNode.setFont(new Font("Tahoma", Font.BOLD, 12)); + textFieldNombrePointContenuNode.setColumns(10); + textFieldNombrePointContenuNode.setBounds(481, 22, 59, 30); + panelContenu.add(textFieldNombrePointContenuNode); + + JScrollPane scrollPane_4 = new JScrollPane(); + scrollPane_4.setBounds(10, 258, 530, 242); + panelContenu.add(scrollPane_4); + editorPaneContenuEnfant.setEditable(false); + scrollPane_4.setViewportView(editorPaneContenuEnfant); + + JLabel lblNbrePointContenu = new JLabel("Nbre point contenu complet avec ceux des nodes enfants"); + lblNbrePointContenu.setFont(new Font("Tahoma", Font.BOLD, 12)); + lblNbrePointContenu.setBounds(10, 222, 389, 19); + panelContenu.add(lblNbrePointContenu); + textFieldNbrPointContenuEnfant.setToolTipText("Nombre de point si le contenu est similaire
(distance Levenshtein inférieure ou égale)"); + + textFieldNbrPointContenuEnfant.setText("0"); + textFieldNbrPointContenuEnfant.setHorizontalAlignment(SwingConstants.CENTER); + textFieldNbrPointContenuEnfant.setFont(new Font("Tahoma", Font.BOLD, 12)); + textFieldNbrPointContenuEnfant.setColumns(10); + textFieldNbrPointContenuEnfant.setBounds(481, 217, 59, 30); + panelContenu.add(textFieldNbrPointContenuEnfant); + textField_DistanceSimilitude.setToolTipText("Distance de Levenshtein"); + + textField_DistanceSimilitude.setHorizontalAlignment(SwingConstants.CENTER); + textField_DistanceSimilitude.setText("2"); + textField_DistanceSimilitude.setBounds(490, 183, 50, 23); + panelContenu.add(textField_DistanceSimilitude); + textField_DistanceSimilitude.setColumns(10); + chckbxEvaluerSimilitude.setToolTipText("Comparaison des différents mots du contenu."); + + chckbxEvaluerSimilitude.setFont(new Font("Tahoma", Font.BOLD, 12)); + chckbxEvaluerSimilitude.setBounds(10, 182, 474, 23); + panelContenu.add(chckbxEvaluerSimilitude); + + chckbxIgnoreValeurNumerique.setToolTipText("Le texte sera nettoyé de toutes les valeurs numériques
avant la comparaison avec le fichier de l'étudiant."); + chckbxIgnoreValeurNumerique.setFont(new Font("Tahoma", Font.BOLD, 12)); + chckbxIgnoreValeurNumerique.setBounds(10, 532, 285, 23); + panelContenu.add(chckbxIgnoreValeurNumerique); + + JSeparator separator = new JSeparator(); + separator.setForeground(SystemColor.activeCaption); + separator.setBounds(10, 164, 530, 11); + panelContenu.add(separator); + + chckbxIgnoreLaCasse.setFont(new Font("Tahoma", Font.BOLD, 12)); + chckbxIgnoreLaCasse.setBounds(10, 568, 228, 23); + panelContenu.add(chckbxIgnoreLaCasse); + + JSeparator separator_1 = new JSeparator(); + separator_1.setForeground(SystemColor.activeCaption); + separator_1.setBounds(10, 511, 530, 2); + panelContenu.add(separator_1); + + chckbxIgnoreLesCaracteresSpeciaux.setFont(new Font("Tahoma", Font.BOLD, 12)); + chckbxIgnoreLesCaracteresSpeciaux.setBounds(302, 533, 238, 23); + panelContenu.add(chckbxIgnoreLesCaracteresSpeciaux); + + tabbedPane.addTab("Style", img2, panelStyleStructure, null); + panelStyleStructure.setLayout(null); + lblAttribut_analyseStyle.setBounds(10, 96, 135, 15); + lblAttribut_analyseStyle.setFont(new Font("Tahoma", Font.BOLD, 12)); + + panelStyleStructure.add(lblAttribut_analyseStyle); + comboBoxAttribut_analyseStyle.setToolTipText("Les attributs présents dans ce node."); + comboBoxAttribut_analyseStyle.setMaximumRowCount(10); + comboBoxAttribut_analyseStyle.setFont(new Font("Tahoma", Font.PLAIN, 14)); + comboBoxAttribut_analyseStyle.setBounds(10, 122, 519, 31); + + panelStyleStructure.add(comboBoxAttribut_analyseStyle); + + lblLeStyleDeParagrapheDuParagraphe.setHorizontalAlignment(SwingConstants.LEFT); + lblLeStyleDeParagrapheDuParagraphe.setVerticalAlignment(SwingConstants.TOP); + lblLeStyleDeParagrapheDuParagraphe.setBounds(10, 11, 536, 24); + panelStyleStructure.add(lblLeStyleDeParagrapheDuParagraphe); + chckbx_EvaluateStyleDeParagraphe.setFont(new Font("Tahoma", Font.BOLD, 14)); + + chckbx_EvaluateStyleDeParagraphe.setBounds(6, 42, 540, 23); + panelStyleStructure.add(chckbx_EvaluateStyleDeParagraphe); + + scrollPane_evaluationAttributStyleParagraphe.setBounds(10, 192, 519, 97); + panelStyleStructure.add(scrollPane_evaluationAttributStyleParagraphe); + + scrollPane_evaluationAttributStyleParagraphe.setViewportView(editorPane_evaluateStyleParagrapheAttribut); + + lbl_NombrePointAttributEvaluationStyleParagraphe.setFont(new Font("Tahoma", Font.BOLD, 12)); + lbl_NombrePointAttributEvaluationStyleParagraphe.setBounds(10, 164, 94, 14); + panelStyleStructure.add(lbl_NombrePointAttributEvaluationStyleParagraphe); + + textField_evaluateStyleParagrapheAttributNbrPoint.setText("0"); + textField_evaluateStyleParagrapheAttributNbrPoint.setHorizontalAlignment(SwingConstants.CENTER); + textField_evaluateStyleParagrapheAttributNbrPoint.setFont(new Font("Tahoma", Font.BOLD, 12)); + textField_evaluateStyleParagrapheAttributNbrPoint.setColumns(10); + textField_evaluateStyleParagrapheAttributNbrPoint.setBounds(114, 156, 57, 31); + panelStyleStructure.add(textField_evaluateStyleParagrapheAttributNbrPoint); + + JScrollPane leftScrollPane = new JScrollPane( ); + leftScrollPane.setPreferredSize( new Dimension( 200, 0 ) ); + JScrollPane rightScrollPane = new JScrollPane( ); + + JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftScrollPane, rightScrollPane ); + splitPane.setBounds(10, 13, 792, 783); + panel.add(splitPane); + rightScrollPane.setViewportView(textNodeSelect); + textNodeSelect.setFont(new Font("Monospaced", Font.PLAIN, 15)); + + leftScrollPane.setViewportView(tree); + tree.setFont(new Font("Tahoma", Font.PLAIN, 14)); + + tree.setModel(new DefaultTreeModel(new DefaultMutableTreeNode("Arborescence du fichier") { + private static final long serialVersionUID = 1L; } )); + + + if(commandes.fichierAnalyseValide) { + constructionTree(); + } + + ListenerAction(); + + + } + + + + private void ListenerAction() { + + tree.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { +// @SuppressWarnings("unused") +// TreeSelectionModel smd = tree.getSelectionModel(); + DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent(); +// JTextPane textPane = new JTextPane (); +// textPane.setText(""+utils.attributEtContenuNode(selectNode)+""); +// textNodeSelect.setText(textPane.getText()); + textNodeSelect.setContentType("text/html"); + + + cXML.node nod = (cXML.node) selectNode.getUserObject(); + + String nodeParent = ""; + if(nod.getParent()!=null) { + nodeParent = nod.getParent().toString(); + } + + StringBuilder sb = new StringBuilder(); + + + sb.append(balisestyles()); + + + sb.append("

Node parent = " + nodeParent + "


"); + sb.append("

Path = " + nod.getParent() + "


"); + sb.append("
"); + + sb.append("

Nom du node : " + nod.getNomElt() + "


"); + sb.append("
"); + + Enumeration key = nod.getAttributs().keys(); + if(nod.getAttributs().size()>0) sb.append("

Attribut(s)

"); + sb.append("
    "); + while(key.hasMoreElements()) { + String k = key.nextElement(); + boolean ecrit =false; + if(nod.getAttributs().get("evaluer")!=null) { + if(nod.getAttributs().get("evaluer").equals("true")) { + + switch(k) { + case ("evalContenu"): + sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); + ecrit=true; + break; + case("evaluer"): + sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); + ecrit=true; + break; + } + + if(nod.getAttributs().get(k).contains("‽") && !ecrit) { + sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); + ecrit=true; + }else { + sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); + ecrit=true; + } + + }else { + sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); + if(nod.getAttributs().get(k).contains("‽")) sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); + } + }else { + sb.append("
  • " + k + "=\"" + nod.getAttributs().get(k)+"\"
  • "); + } + + + } + sb.append("
"); + + if(!nod.retourneLesContenusEnfants("").trim().isEmpty()) { + sb.append("

Contenu


" + nod.retourneLesContenusEnfants("") ); + } + + textNodeSelect.setText(""+sb.toString()+""); + + } + }); + + } + + + /* Methode de construction de la barre de menu */ + private JMenuBar createMenuBar() { + + // La barre de menu à proprement parler + menuBar = new JMenuBar(); + + // Définition du menu déroulant "File" et de son contenu + JMenu mnuFile = new JMenu( "Fichier" ); + mnuFile.setMnemonic( 'F' ); + + /*JMenuItem mnuNewFile =*/ + mnuFile.add( actOpen ); + mnuFile.add( actSave ); + mnuFile.add( actSaveAs ); + mnuFile.addSeparator(); + mnuFile.add( actAbout ); + mnuFile.addSeparator(); + mnuFile.add( actExit ); + + menuBar.add(mnuFile); + + // Définition du menu déroulant "Edit" et de son contenu + JMenu mnuEdit = new JMenu( "Edition" ); + mnuEdit.setMnemonic( 'E' ); + + mnuEdit.add( actUndo ); + mnuEdit.add( actRedo ); + mnuEdit.addSeparator(); + mnuEdit.add( actCopy ); + mnuEdit.add( actCut ); + mnuEdit.add( actPaste ); + + menuBar.add(mnuEdit); + + // Définition du menu déroulant "Edit" et de son contenu + JMenu mnuExercice = new JMenu( "Création évaluation" ); + mnuExercice.setMnemonic( 'N' ); + mnuExercice.add(actConfiguration); + mnuExercice.add(actEvaluer); + + menuBar.add(mnuExercice); + + // Définition du menu déroulant "Help" et de son contenu + JMenu mnuHelp = new JMenu( "Aide" ); + mnuHelp.setMnemonic( 'H' ); + + mnuHelp.add( actAPropos); + + menuBar.add( mnuHelp ); + + return menuBar; + } + + /* Methode de construction de la barre d'outils */ + private void createToolBar() { + toolBar = new JToolBar(); + + JButton buttonLoadFile = toolBar.add( actOpen ); + buttonLoadFile.setIcon(new ImageIcon(create.class.getResource("/resources/fichierAnalyse.png"))); + buttonLoadFile.setHideActionText( true ); + + toolBar.add( actSave ).setHideActionText( true ); + + toolBar.add( actSaveAs ).setHideActionText( true ); + + toolBar.addSeparator(); + + JButton btnAbout = toolBar.add( actAbout ); + btnAbout.setIcon(new ImageIcon(create.class.getResource("/resources/apropos.png"))); + btnAbout.setHideActionText( true ); + toolBar.add(btnAbout); + + toolBar.addSeparator(); + + toolBar.add( actExit ).setHideActionText( true ); + toolBar.addSeparator(); + + toolBar.add( actConfiguration ); + toolBar.add( actEvaluer ); + +// if(commandes.fichierAnalyseValide) { +// toolBar.add( actConfiguration ).setEnabled(true); +// toolBar.add( actEvaluer ).setEnabled(true); +// }else { +// toolBar.add( actConfiguration ).setEnabled( false ); +// toolBar.add( actEvaluer ).setEnabled(false); +// } + } + + /*Mise à jour de la toolbar*/ + private void MAJToolBar() { +// if(commandes.fichierAnalyseValide) { +// toolBar.getComponent(6).setEnabled(true); +// toolBar.getComponent(7).setEnabled(true); +// menuBar.getComponent(3).setEnabled(true); +// }else { +// toolBar.getComponent(6).setEnabled(false); +// toolBar.getComponent(7).setEnabled(false); +// menuBar.getComponent(3).setEnabled(false); +// } + } + + + + /** + * Ouvre et affiche un node dans le composant JTree + */ + private AbstractAction actOpen = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Ouvrir un fichier d'analyse (CTRL+O)" ); + putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/fichierAnalyse.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_O ); + putValue( Action.SHORT_DESCRIPTION, "Ouvrir un nouveau fichier d'analyse (CTRL+O)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + new filechooserXML(); + if(commandes.fichierAnalyseValide) { + constructionTree(); + textNodeSelect.setText("Le chargement de la nouvelle structure est réussi."); + MAJToolBar(); + } + System.out.println( "Open" ); + } + }; + + + /** + * Affiche la fenêtre d'information sur analyseWriter + */ + private AbstractAction actAbout = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Informations (CTRL+I)" ); + putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/apropos.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_I ); + putValue( Action.SHORT_DESCRIPTION, "Informations (CTRL+I)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_I, InputEvent.CTRL_DOWN_MASK) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + new about(); + System.out.println( "About" ); + } + }; + + + + + /** + * + */ + private AbstractAction actSave = new AbstractAction() { + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Enregister" ); + putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/save.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_S ); + putValue( Action.SHORT_DESCRIPTION, "Enregistrer le fichier (CTRL+S)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_S, KeyEvent.CTRL_DOWN_MASK ) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + + Pattern p = Pattern.compile("[.xml]\\b"); + Matcher m = p.matcher(commandes.nameSujet); + + String message="\"Voulez-vous enregistrer le fichier \"" + commandes.nameSujet + ".xml\"\n" + + "Dans le dossier " + commandes.path; + + if(m.find()) { + message="\"Voulez-vous enregistrer le fichier \"" + commandes.nameSujet + "\"\n" + + "Dans le dossier " + commandes.path; + } + + int input = JOptionPane.showConfirmDialog(null, message); + + if(input==0) { + try { + Run.ecritureNodeEnXML(commandes.sujet, commandes.nameSujet ,commandes.path,"sujet"); + + if(m.find()) { + textNodeSelect.setText("Le fichier \"" + commandes.nameSujet + " a été renregistré.\n\n" + + "Il se trouve dans le dossier " + commandes.path); + }else { + textNodeSelect.setText("Le fichier \"" + commandes.nameSujet + ".xml\" a été renregistré.\n\n" + + "Il se trouve dans le dossier " + commandes.path); + } + + System.out.println( input + "Save" ); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + } + }; + + /** + * + */ + private AbstractAction actSaveAs = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Enregistrer sous..." ); + putValue( Action.SMALL_ICON, new ImageIcon(getClass().getResource("/save_as.png") )); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_A ); + putValue( Action.SHORT_DESCRIPTION, "Enregistrer sous un nom différent" ); + } + + @Override public void actionPerformed( ActionEvent e ) { + + JFileChooser fileChooser = new JFileChooser(); + fileChooser.setDialogTitle("Enregistrer sous..."); + File file = null; + + if(!commandes.nameSujet.isEmpty()) { + file = new File(commandes.path ); //+ "\\" + utils.filename + ".xml" + } + + fileChooser.setCurrentDirectory(file); + + int userSelection = fileChooser.showSaveDialog(null); + + if (userSelection == JFileChooser.APPROVE_OPTION) { + File fileToSave = fileChooser.getSelectedFile(); + try { + Run.ecritureNodeEnXML(commandes.sujet, fileToSave.getName(), fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")),"sujet" ); + + commandes.nameSujet = fileToSave.getName(); + commandes.path = fileToSave.getPath().substring(0,fileToSave.getPath().lastIndexOf("\\")); + + Pattern p = Pattern.compile("[.xml]\\b"); + Matcher m = p.matcher(commandes.nameSujet); + + if(m.find()) { + file = new File(commandes.path + "\\" + commandes.nameSujet); + textNodeSelect.setText("Le fichier \"" + commandes.nameSujet + " a été renregistré.\n\nIl se trouve dans le dossier " + commandes.path); + }else { + file = new File(commandes.path + "\\" + commandes.nameSujet + ".xml"); + textNodeSelect.setText("Le fichier \"" + commandes.nameSujet + ".xml\" a été renregistré.\n\nIl se trouve dans le dossier " + commandes.path); + } + + + } catch (IOException e1) { + e1.printStackTrace(); + } + System.out.println("Save as file: " + fileToSave.getAbsolutePath()); + } + System.out.println( "Save as" ); + } + }; + + /** + * Quitter l'application + */ + private AbstractAction actExit = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Quitter (CRTL+Q)" ); + putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/exit.png") ) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_Q ); + putValue( Action.SHORT_DESCRIPTION, "Quitter (CRTL+Q)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_Q, KeyEvent.CTRL_DOWN_MASK ) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + + int a = JOptionPane.showConfirmDialog(null,"Voulez-vous quitter l'application?", "Sélectionner un choix", JOptionPane.YES_NO_OPTION); + + if(a == JOptionPane.YES_NO_OPTION) { + System.out.println( "Le choix : " + a); + System.out.println( "Exit" + e.getSource().toString()); + create.this.dispose(); + } + + } + }; + + /** + * + */ + private AbstractAction actUndo = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Annuler" ); + putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/undo.png") ) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_U ); + putValue( Action.SHORT_DESCRIPTION, "Annuler (CTRL+Z)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_Z, KeyEvent.CTRL_DOWN_MASK ) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + System.out.println( "Undo" ); + } + }; + + /** + * + */ + private AbstractAction actRedo = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Refaire" ); + putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/redo.png") ) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_R ); + putValue( Action.SHORT_DESCRIPTION, "Refaire (CTRL+U)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_U, KeyEvent.CTRL_DOWN_MASK ) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + System.out.println( "Redo" ); + } + }; + + /** + * + */ + private AbstractAction actCopy = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Copier" ); + putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/copy.png") ) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_C ); + putValue( Action.SHORT_DESCRIPTION, "Copier (CTRL+C)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_DOWN_MASK ) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + System.out.println( "Copy" ); + } + }; + + /** + * + */ + private AbstractAction actCut = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Couper" ); + putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/cut.png") ) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_T ); + putValue( Action.SHORT_DESCRIPTION, "Couper (CTRL+X)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.CTRL_DOWN_MASK ) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + System.out.println( "Cut" ); + } + }; + + /** + * + */ + private AbstractAction actPaste = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Coller" ); + putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/paste.png") ) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_P ); + putValue( Action.SHORT_DESCRIPTION, "Coller (CTRL+V)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_V, KeyEvent.CTRL_DOWN_MASK ) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + System.out.println( "Paste" ); + } + }; + + /** + * + */ + private AbstractAction actAPropos = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Informations (CTRL+I)" ); + putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/apropos.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_M ); + putValue( Action.SHORT_DESCRIPTION, "Informations (CTRL+I)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_I, InputEvent.CTRL_DOWN_MASK) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + new about(); + System.out.println( "A propos" ); + } + }; + + /** + * + */ + private AbstractAction actConfiguration = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Configuration" ); + putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/configuration.png") ) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_W ); + putValue( Action.SHORT_DESCRIPTION, "Configurer le fichier pour l'évaluation" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_W, KeyEvent.ALT_DOWN_MASK) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + if(commandes.fichierAnalyseValide) { + + }else { + JOptionPane.showMessageDialog(null, "Charger un fichier Writer (.odt) ou un fichier d'évaluaton (.xml)."); + } + System.out.println( "Configuration" ); + } + }; + + /** + * + */ + private AbstractAction actEvaluer = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Evaluer" ); + putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/evaluate.png") ) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_E ); + putValue( Action.SHORT_DESCRIPTION, "Evaluer un node" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_E, KeyEvent.CTRL_DOWN_MASK) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + new evaluate(); + dispose(); + } + }; + + + + + /** + * Construction du Tree avec le node sujet. + */ + public void constructionTree() { + DefaultMutableTreeNode node0 = null; + DefaultMutableTreeNode node1 = null; + DefaultMutableTreeNode node2 = null; + DefaultMutableTreeNode node3 = null; + DefaultMutableTreeNode node4 = null; + DefaultMutableTreeNode node5 = null; + DefaultMutableTreeNode node6 = null; + + commandes.tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); + commandes.tree.setExpandsSelectedPaths(true); + commandes.tree.setInvokesStopCellEditing(true); + commandes.tree.setEditable(true); + + + if(commandes.fichierAnalyseValide) { + node0 = new DefaultMutableTreeNode(commandes.sujet.getNomElt(),true); + + for(int i = 0 ; i < commandes.sujet.getNodes().size(); i++) { + node1 = new DefaultMutableTreeNode(commandes.sujet.getNodes().get(i)); + + for(int j = 0 ; j < commandes.sujet.getNodes().get(i).getNodes().size();j++) { + node2 = new DefaultMutableTreeNode(commandes.sujet.getNodes().get(i).getNodes().get(j)); + + for(int k = 0 ; k" + + "h1 {margin-bottom: 0.25cm;font-size: 18pt;font-family:\"Arial\";text-align:center;font-weight: bold;}" + + "h4 {text-align:left;font-family: \"Arial\"; font-size: 16pt; font-weight: bold; line-height: 110%;}" + + "hr { display: block; margin-top: 0.5em; margin-bottom: 8em; margin-left: 2em; margin-right: 2em; border-style: inset; border-width: 4px;}" + + "spanpablo { float: right; width: 8em; font-size: 250%; font-family: algerian, courier; line-height: 80%; margin-right: 1%; color: red; text-align: center}" + + "p.p1{color:blue;font-family:\"Arial\";font-size: 14pt;margin-bottom: 0cm; margin-top: 0cm; line-height: 0%; background: transparent; margin-left: 0cm; white-space: pre;}" + + "li.p2{color:green;font-family:\"Arial\";font-size: 14pt;margin-bottom: 0cm; margin-top: 0cm; line-height: 0%; background: transparent; margin-left: 0cm; white-space: pre;}" + + "li.p3{color:red;font-family:\"Arial\";font-size: 14pt;margin-bottom: 0cm; margin-top: 0cm; line-height: 0%; background: transparent; margin-left: 0cm; white-space: pre;}" + + + "p.p4{margin-left: 0px; margin-bottom: 0cm; margin-top: 4px; line-height: 115%}" + + ""; + } +} diff --git a/src/app/evaluate.java b/src/app/evaluate.java index 1084375..6a88eb6 100644 --- a/src/app/evaluate.java +++ b/src/app/evaluate.java @@ -4,8 +4,11 @@ import java.awt.BorderLayout; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; import java.io.IOException; +import javax.swing.AbstractAction; +import javax.swing.Action; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; @@ -15,6 +18,7 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextPane; import javax.swing.JToolBar; +import javax.swing.KeyStroke; import javax.swing.border.EmptyBorder; import javax.swing.filechooser.FileNameExtensionFilter; import javax.xml.parsers.ParserConfigurationException; @@ -32,39 +36,39 @@ import java.awt.GridLayout; import javax.swing.JScrollPane; import javax.swing.JProgressBar; import net.miginfocom.swing.MigLayout; +import java.awt.event.InputEvent; +import javax.swing.JMenuBar; +import javax.swing.JMenu; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import java.awt.Color; +import javax.swing.JToggleButton; +import java.awt.FlowLayout; public class evaluate extends JFrame { /** * */ - private static final long serialVersionUID = 1L; - private JPanel contentPane; - private JLabel lblPath = new JLabel(); - private JLabel lblFileAnalyse = new JLabel(); - private JLabel lblFichierCSV = new JLabel(); - private JLabel lblFichierSVG = new JLabel(); - private JCheckBox chckbxfichiersEtudaints = new JCheckBox(); - private JCheckBox chckbxZipfeedback = new JCheckBox(); - private JCheckBox chckbxnoFeedback = new JCheckBox(); - private JCheckBox chckbxNoNote = new JCheckBox(); - private JCheckBox chckCSVNotes = new JCheckBox(); - private JCheckBox chckbxNoLogo = new JCheckBox(); - private JCheckBox chckbxVerif = new JCheckBox(); - JCheckBox chckbxNewLogo = new JCheckBox(); - private JTextPane txtpnmessages = new JTextPane(); - private JProgressBar progressBar = new JProgressBar(); - private JButton btnSelectFileAnalyse = new JButton(); - private JButton btnSelectFolder = new JButton(); - private JButton btnEvaluerLesFichiers = new JButton(); - private JButton btnFichierCSV = new JButton(); - private JButton btnAbout = new JButton(); - private JButton btnFichierSVG = new JButton(); - private JButton btnExit = new JButton(); - private JButton btnInformationAnalyse = new JButton(); - private JButton btnNewFichierAnalyse = new JButton(); - private JButton btnInfoListeEtudiant = new JButton(); - private JButton btnAfficheCodeFichierAnalyse = new JButton(); + @SuppressWarnings("unused") + private final long serialVersionUID = 1L; + private JToolBar toolBar = new JToolBar(); + private JPanel contentPane; + private JLabel lblPath = new JLabel(); + private JLabel lblFileAnalyse = new JLabel(); + private JLabel lblFichierCSV = new JLabel(); + private JLabel lblFichierSVG = new JLabel(); + private JCheckBox chckbxfichiersEtudaints = new JCheckBox(); + private JCheckBox chckbxZipfeedback = new JCheckBox(); + private JCheckBox chckbxnoFeedback = new JCheckBox(); + private JCheckBox chckbxNoNote = new JCheckBox(); + private JCheckBox chckCSVNotes = new JCheckBox(); + private JCheckBox chckbxNoLogo = new JCheckBox(); + private JCheckBox chckbxVerif = new JCheckBox(); + private JCheckBox chckbxNewLogo = new JCheckBox(); + private JTextPane txtpnmessages = new JTextPane(); + private JProgressBar progressBar = new JProgressBar(); + /** * Create the frame. @@ -76,146 +80,200 @@ public class evaluate extends JFrame { this.setTitle(commandes.Titre); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - setBounds(100, 100, 960, 677); + setBounds(100, 100, 980, 700); + + JMenuBar menuBar = new JMenuBar(); + menuBar.setFont(new Font("Segoe UI", Font.BOLD, 14)); + setJMenuBar(menuBar); + + JMenu mnNewMenu = new JMenu("Fichier"); + mnNewMenu.setMnemonic( 'F' ); + menuBar.add(mnNewMenu); + mnNewMenu.add( actExit ); + + + JMenu mnMenu_Fichier = new JMenu("Fichier d'analyse"); + menuBar.add(mnMenu_Fichier); + mnMenu_Fichier.add( actOpen ); + mnMenu_Fichier.addSeparator(); + mnMenu_Fichier.add( actAboutFichierAnalyse ); + mnMenu_Fichier.add( actCodeFichierAnalyse ); + mnMenu_Fichier.add( actModifierFichierAnalyse ); + mnMenu_Fichier.addSeparator(); + mnMenu_Fichier.add( actNewFichierAnalyse ); + + JMenu mnMenu_Liste_Etudiant = new JMenu("Liste des étudiants"); + menuBar.add(mnMenu_Liste_Etudiant); + mnMenu_Liste_Etudiant.add(actChargeListeEtudiantCSV); + mnMenu_Liste_Etudiant.addSeparator(); + mnMenu_Liste_Etudiant.add(actAfficheListeEtudiant ); + + JMenu mnMenu_Logo = new JMenu("Logo"); + menuBar.add(mnMenu_Logo); + mnMenu_Logo.add(actChargeLogo); + + JMenu mnMenu_Evaluation = new JMenu("Evaluation des étudiants"); + menuBar.add(mnMenu_Evaluation); + mnMenu_Evaluation.add(actSelectFolder); + mnMenu_Fichier.addSeparator(); + mnMenu_Evaluation.add(actEvaluate); + + JMenu mnMenu_Informations = new JMenu("Informations"); + menuBar.add(mnMenu_Informations); + mnMenu_Informations.add( actAbout ); + + contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(new BorderLayout(0, 0)); - - JToolBar toolBar = new JToolBar(); - contentPane.add(toolBar, BorderLayout.NORTH); - btnSelectFileAnalyse = new JButton(""); - btnSelectFileAnalyse.setToolTipText("Sélection du fichier d'analyse"); - btnSelectFileAnalyse.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierAnalyse.png"))); - toolBar.add(btnSelectFileAnalyse); - - btnInformationAnalyse = new JButton(""); - btnInformationAnalyse.setToolTipText("Information sur l'analyse"); - btnInformationAnalyse.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierAnalyseInfo2.png"))); - toolBar.add(btnInformationAnalyse); - - btnAfficheCodeFichierAnalyse = new JButton(""); - btnAfficheCodeFichierAnalyse.setToolTipText("Afficher le code XML du fichier d'analyse"); - btnAfficheCodeFichierAnalyse.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierAnalyseInfo.png"))); - toolBar.add(btnAfficheCodeFichierAnalyse); - - btnSelectFolder = new JButton(""); - btnSelectFolder.setIcon(new ImageIcon(evaluate.class.getResource("/resources/open2.png"))); - btnSelectFolder.setSelectedIcon(new ImageIcon(evaluate.class.getResource("/resources/evalwriter.png"))); - btnSelectFolder.setToolTipText("Sélectionner le dossier contenant les fichiers des étudiants"); - toolBar.add(btnSelectFolder); - - toolBar.addSeparator(); - - btnEvaluerLesFichiers = new JButton(""); - btnEvaluerLesFichiers.setToolTipText("Evaluer les fichiers des étudiants"); - - btnFichierCSV = new JButton(""); - btnFichierCSV.setToolTipText("Sélectionner la liste des étudiants"); - btnFichierCSV.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierCSV.png"))); - toolBar.add(btnFichierCSV); - - btnInfoListeEtudiant = new JButton(""); - btnInfoListeEtudiant.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierCSVInfo.png"))); - btnInfoListeEtudiant.setToolTipText("Affichage liste des étudiants"); - toolBar.add(btnInfoListeEtudiant); - - toolBar.addSeparator(); - - btnFichierSVG = new JButton(""); - btnFichierSVG.setToolTipText("Sélectionner le fichier Logo"); - btnFichierSVG.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierSVG.png"))); - toolBar.add(btnFichierSVG); - - toolBar.addSeparator(); - - btnNewFichierAnalyse = new JButton(""); - btnNewFichierAnalyse.setToolTipText("Créer un fichier d'analyse à partir d'un fichier ODF"); - btnNewFichierAnalyse.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierODF.png"))); - toolBar.add(btnNewFichierAnalyse); - - toolBar.addSeparator(); - - btnEvaluerLesFichiers.setIcon(new ImageIcon(evaluate.class.getResource("/resources/evaluate.png"))); - toolBar.add(btnEvaluerLesFichiers); - - toolBar.addSeparator(); - - toolBar.addSeparator(); - - btnAbout = new JButton(""); - btnAbout.setIcon(new ImageIcon(evaluate.class.getResource("/resources/apropos.png"))); - btnAbout.setToolTipText("Informations"); - toolBar.add(btnAbout); - - toolBar.addSeparator(); - - toolBar.addSeparator(); - - btnExit = new JButton(""); - btnExit.setIcon(new ImageIcon(evaluate.class.getResource("/resources/exit.png"))); - btnExit.setToolTipText("Fermer l'application"); - toolBar.add(btnExit); + + toolBar = new JToolBar(); + contentPane.add(toolBar, BorderLayout.NORTH); + + + JButton btnSelectFileAnalyse = toolBar.add( actOpen ); + btnSelectFileAnalyse.setHideActionText( true ); + btnSelectFileAnalyse.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierAnalyse.png"))); + + + JButton btnInformationAnalyse = toolBar.add( actCodeFichierAnalyse ); + btnInformationAnalyse.setHideActionText(true); + btnInformationAnalyse.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierAnalyseInfo2.png"))); + + + JButton btnAfficheCodeFichierAnalyse = toolBar.add( actAboutFichierAnalyse ); + btnAfficheCodeFichierAnalyse.setHideActionText(true); + btnAfficheCodeFichierAnalyse.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierAnalyseInfo.png"))); + toolBar.add(btnAfficheCodeFichierAnalyse); + + JButton btnModifierFichierAnalyse = toolBar.add(actModifierFichierAnalyse); + btnModifierFichierAnalyse.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierAnalyseModif.png"))); + btnModifierFichierAnalyse.setHideActionText(true); + toolBar.add(btnModifierFichierAnalyse); + + toolBar.addSeparator(); + + JButton btnNewFichierAnalyse = toolBar.add(actNewFichierAnalyse); + btnNewFichierAnalyse.setHideActionText(true); + btnNewFichierAnalyse.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierODF.png"))); + toolBar.add(btnNewFichierAnalyse); + + toolBar.addSeparator(); + + JButton btnEvaluerLesFichiers = toolBar.add(actEvaluate); + btnEvaluerLesFichiers.setHideActionText(true); + + JButton btnFichierCSV = toolBar.add(actChargeListeEtudiantCSV ); + btnFichierCSV.setHideActionText(true); + btnFichierCSV.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierCSV.png"))); + toolBar.add(btnFichierCSV); + + JButton btnInfoListeEtudiant = toolBar.add(actAfficheListeEtudiant); + btnInfoListeEtudiant.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierCSVInfo.png"))); + btnInfoListeEtudiant.setHideActionText(true); + toolBar.add(btnInfoListeEtudiant); + + toolBar.addSeparator(); + + JButton btnFichierSVG = toolBar.add(actChargeLogo); + btnFichierSVG.setHideActionText(true); + btnFichierSVG.setIcon(new ImageIcon(evaluate.class.getResource("/resources/fichierSVG.png"))); + toolBar.add(btnFichierSVG); + + toolBar.addSeparator(); + + JButton btnSelectFolder = toolBar.add(actSelectFolder); + btnSelectFolder.setIcon(new ImageIcon(evaluate.class.getResource("/resources/open2.png"))); + btnSelectFolder.setHideActionText(true); + toolBar.add(btnSelectFolder); + + btnEvaluerLesFichiers.setIcon(new ImageIcon(evaluate.class.getResource("/resources/evaluate.png"))); + toolBar.add(btnEvaluerLesFichiers); + + toolBar.addSeparator(); + + toolBar.addSeparator(); + + JButton btnAbout = toolBar.add(actAbout); + btnAbout.setIcon(new ImageIcon(evaluate.class.getResource("/resources/apropos.png"))); + btnAbout.setHideActionText(true); + toolBar.add(btnAbout); + + toolBar.addSeparator(); + + toolBar.addSeparator(); + + JButton btnExit = toolBar.add(actExit); + btnExit.setIcon(new ImageIcon(evaluate.class.getResource("/resources/exit.png"))); + btnExit.setHideActionText(true); + toolBar.add(btnExit); JPanel panel = new JPanel(); contentPane.add(panel, BorderLayout.WEST); - panel.setLayout(new MigLayout("", "[309px]", "[71px][71px][][71px][][74.00][][]")); + panel.setLayout(new MigLayout("", "[309px][]", "[38.00][71px][71px][][71px][][74.00][][]")); + + JLabel lblTITRE = new JLabel("PARAMETRES"); + lblTITRE.setForeground(Color.RED); + lblTITRE.setFont(new Font("Tahoma", Font.BOLD, 16)); + lblTITRE.setHorizontalAlignment(SwingConstants.CENTER); + panel.add(lblTITRE, "cell 0 0,alignx left,aligny center"); lblFileAnalyse = new JLabel("Fichier de l'analyse : "); lblFileAnalyse.setHorizontalAlignment(SwingConstants.LEFT); lblFileAnalyse.setFont(new Font("Tahoma", Font.BOLD, 14)); - panel.add(lblFileAnalyse, "flowy,cell 0 0,alignx left,growy"); + panel.add(lblFileAnalyse, "flowy,cell 0 1,alignx left,growy"); chckbxfichiersEtudaints = new JCheckBox("Les fichiers ne sont pas dans des dossiers nominatifs"); chckbxfichiersEtudaints.setFont(new Font("Tahoma", Font.PLAIN, 12)); chckbxfichiersEtudaints.setToolTipText("Cochez si les fichiers des étudiants ne sont pas dans des dossier nominatifs"); - panel.add(chckbxfichiersEtudaints, "flowy,cell 0 1,grow"); + panel.add(chckbxfichiersEtudaints, "flowy,cell 0 2,grow"); lblFichierCSV = new JLabel("Fichier CSV liste des étudiants :"); lblFichierCSV.setFont(new Font("Tahoma", Font.BOLD, 14)); - panel.add(lblFichierCSV, "flowy,cell 0 3,grow"); + panel.add(lblFichierCSV, "flowy,cell 0 4,grow"); lblFichierSVG = new JLabel("Fichier SVG :"); lblFichierSVG.setFont(new Font("Tahoma", Font.BOLD, 14)); - panel.add(lblFichierSVG, "flowy,cell 0 5,growx"); + panel.add(lblFichierSVG, "flowy,cell 0 6,growx"); chckCSVNotes = new JCheckBox("Créer un fichier CSV des notes"); chckCSVNotes.setToolTipText("Cochez si vous voulez importer les notes dans un fichier CSV."); - panel.add(chckCSVNotes, "cell 0 3,grow"); + panel.add(chckCSVNotes, "cell 0 4,grow"); lblPath.setHorizontalAlignment(SwingConstants.LEFT); lblPath.setFont(new Font("Tahoma", Font.BOLD, 14)); lblPath.setText("Dossier de l'analyse : " + commandes.path.substring(commandes.path.lastIndexOf("\\")+1,commandes.path.length()) + ""); - panel.add(lblPath, "cell 0 0,grow"); + panel.add(lblPath, "cell 0 1,grow"); chckbxnoFeedback = new JCheckBox("Pas de feedback"); chckbxnoFeedback.setToolTipText("Cochez si vous ne voulez pas générer des feedbacks"); chckbxnoFeedback.setFont(new Font("Tahoma", Font.PLAIN, 12)); - panel.add(chckbxnoFeedback, "cell 0 1,grow"); + panel.add(chckbxnoFeedback, "cell 0 2,grow"); chckbxZipfeedback = new JCheckBox("Zip les feedbacks"); chckbxZipfeedback.setToolTipText("Cochez si vous voulez placer tous les feedbacks dans une archive ZIP"); chckbxZipfeedback.setFont(new Font("Tahoma", Font.PLAIN, 12)); - panel.add(chckbxZipfeedback, "cell 0 1,grow"); + panel.add(chckbxZipfeedback, "cell 0 2,grow"); chckbxNoNote = new JCheckBox("Pas de note dans les feedbacks"); chckbxNoNote.setToolTipText("Cochez si vous voulez pas faire apparaître les notes dans les feedbacks"); chckbxNoNote.setFont(new Font("Tahoma", Font.PLAIN, 12)); - panel.add(chckbxNoNote, "cell 0 1,grow"); + panel.add(chckbxNoNote, "cell 0 2,grow"); chckbxVerif = new JCheckBox("Vérification des historiques avant analyse"); chckbxVerif.setToolTipText("Cochez si vous voulez vérifier les échanges de fichiers entre les étudiants."); chckbxVerif.setFont(new Font("Tahoma", Font.PLAIN, 12)); - panel.add(chckbxVerif, "cell 0 1, grow"); + panel.add(chckbxVerif, "cell 0 2,grow"); chckbxNewLogo = new JCheckBox("Nouveau logo"); chckbxNewLogo.setToolTipText("Cochez si vous voulez remplacer le logo par celui au-dessus."); chckbxNewLogo.setFont(new Font("Tahoma", Font.PLAIN, 12)); - panel.add(chckbxNewLogo, "cell 0 5"); + panel.add(chckbxNewLogo, "cell 0 6"); chckbxNoLogo = new JCheckBox("Pas de logo"); chckbxNoLogo.setToolTipText("Cochez si vous voulez pas de logo dans les feedbacks."); chckbxNoLogo.setFont(new Font("Tahoma", Font.PLAIN, 12)); - panel.add(chckbxNoLogo, "cell 0 5"); + panel.add(chckbxNoLogo, "cell 0 6"); JPanel panel_1 = new JPanel(); @@ -235,7 +293,7 @@ public class evaluate extends JFrame { scrollPane.setViewportView(txtpnmessages); - CommandeListener(); + refreshLabel(); setVisible(true); } @@ -318,51 +376,32 @@ public class evaluate extends JFrame { } - /** - * Les actionListener - */ - private void CommandeListener() { - - // Sélectionne un dossier pour analyser le contenu - btnSelectFolder.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - - JFileChooser chooser = new JFileChooser(); - - chooser.setCurrentDirectory(new java.io.File(commandes.path)); - chooser.setDialogTitle("Sélectionner le dossier contenant les fichiers des étudiants."); - chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); - chooser.setAcceptAllFileFilterUsed(false); - if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { - System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory()); - System.out.println("getSelectedFile() : " + chooser.getSelectedFile().getAbsolutePath()); - commandes.path = chooser.getSelectedFile().getAbsolutePath(); - } else { - System.out.println("No Selection "); - } - - refreshLabel(); - - } - }); - - // Sélectionne un fichier d'analyse - btnSelectFileAnalyse.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - new filechooserXML(); - refreshLabel(); - } - }); - - - // Analyse le contenu du dossier - btnEvaluerLesFichiers.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if(commandes.fichierAnalyseValide) { + + + + /** + * Evaluer et analayser les fichiers des étudiants + */ + private AbstractAction actEvaluate = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue(LARGE_ICON_KEY, new ImageIcon(evaluate.class.getResource("/resources/evaluate.png"))); + putValue( Action.NAME, "Evaluer les fichiers (CTRL+E)" ); + putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/evaluate.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_E ); + putValue( Action.SHORT_DESCRIPTION, "Evaluer les fichiers (CTRL+E)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.CTRL_DOWN_MASK) ); + } + + @Override + public void actionPerformed( ActionEvent e ) { + if(commandes.fichierAnalyseValide) { try { msgBox V = new msgBox("Je travaille dure.",false,false,"Attendez"); - Thread.sleep(200); + Thread.sleep(100); evaluerLesFichiersEtudiants(); V.close(); } catch (ParserConfigurationException | SAXException | IOException | CloneNotSupportedException e1) { @@ -371,49 +410,57 @@ public class evaluate extends JFrame { e1.printStackTrace(); } }else { + txtpnmessages.setText("*** Veuillez charger un fichier d'analyse ***"); new msgBox("Le fichier d'analyse n'est pas valide.",true,false,"Avertissement"); } + } + }; - } - }); - - // Sélectionne un fichier CSV - btnFichierCSV.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - - JFileChooser chooser = new JFileChooser(); - chooser.setDialogTitle("Choisir un fichier CSV"); - - chooser.setCurrentDirectory(new java.io.File(commandes.path)); - chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); - FileNameExtensionFilter filter = new FileNameExtensionFilter("Format CSV", "csv"); - chooser.setFileFilter(filter); - chooser.setAcceptAllFileFilterUsed(true); + + /** + * Ouvre et affiche un node dans le composant JTree + */ + private AbstractAction actOpen = new AbstractAction() { - if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { - System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory()); - System.out.println("getSelectedFile() : " + chooser.getSelectedFile().getAbsolutePath()); - commandes.nameCSV = chooser.getSelectedFile().getAbsolutePath(); - commandes.fourniCSV=true; - commandes.nodeCSV = meptl.chargementFichierCSV(); - txtpnmessages.setText(Run.ecritureNode(commandes.nodeCSV, 0).toString()); - } else { - commandes.nameCSV = ""; - commandes.fourniCSV=false; - System.out.println("No Selection "); - commandes.nodeCSV = new node(); - refreshLabel(); - } - - - } - }); - - // Bouton SVG - btnFichierSVG.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - - JFileChooser chooser = new JFileChooser(); + private static final long serialVersionUID = 1L; + + { + putValue(LARGE_ICON_KEY, new ImageIcon(evaluate.class.getResource("/resources/fichierAnalyse.png"))); + putValue( Action.NAME, "Ouvrir un fichier d'analyse" ); + putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/fichierAnalyse.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_O ); + putValue( Action.SHORT_DESCRIPTION, "Ouvrir un nouveau fichier d'analyse (CTRL+O)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK) ); + } + + @Override + public void actionPerformed( ActionEvent e ) { + new filechooserXML(); + refreshLabel(); + System.out.println( "Open" ); + } + }; + + + /** + * Charge un logo SVG + */ + private AbstractAction actChargeLogo = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue(LARGE_ICON_KEY, new ImageIcon(evaluate.class.getResource("/resources/fichierSVG.png"))); + putValue( Action.NAME, "Charge un logo SVG (CTRL+G)" ); + putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichierSVG.png"))); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_G ); + putValue( Action.SHORT_DESCRIPTION, "Charge un logo SVG (CTRL+G)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_G, InputEvent.CTRL_DOWN_MASK) ); + } + + @Override + public void actionPerformed( ActionEvent e ) { + JFileChooser chooser = new JFileChooser(); chooser.setDialogTitle("Choisir un fichier SVG"); chooser.setCurrentDirectory(new java.io.File(commandes.path)); @@ -435,57 +482,66 @@ public class evaluate extends JFrame { } refreshLabel(); + } + }; + + /** + * Sélectionne le dossier courant contenant les fichiers des étudiants + */ + private AbstractAction actSelectFolder = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue(LARGE_ICON_KEY, new ImageIcon(evaluate.class.getResource("/resources/open2.png"))); + putValue( Action.NAME, "Dossier des étudiants (CTRL+U)" ); + putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/open2.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_U ); + putValue( Action.SHORT_DESCRIPTION, "Dossier des étudiants (CTRL+U)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_U, InputEvent.CTRL_DOWN_MASK) ); + } + + @Override + public void actionPerformed( ActionEvent e ) { + JFileChooser chooser = new JFileChooser(); + chooser.setCurrentDirectory(new java.io.File(commandes.path)); + chooser.setDialogTitle("Sélectionner le dossier contenant les fichiers des étudiants."); + chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + chooser.setAcceptAllFileFilterUsed(false); + + if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { + System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory()); + System.out.println("getSelectedFile() : " + chooser.getSelectedFile().getAbsolutePath()); + commandes.path = chooser.getSelectedFile().getAbsolutePath(); + } else { + System.out.println("No Selection "); + } - } - }); - - - // Bouton About - btnAbout.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - new about(); - } - }); - - - // Exit - btnExit.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - dispose(); - } - }); - - // Information - btnInformationAnalyse.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if(commandes.fichierAnalyseValide) { - refreshLabel(); - }else { - txtpnmessages.setText("*** Veuillez charger un fichier d'analyse ***"); - } - } - }); - - - // liste des étudiants - btnInfoListeEtudiant.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - if(commandes.fourniCSV) { - txtpnmessages.setText(Run.ecritureNode(commandes.nodeCSV, 0).toString()); - }else { - txtpnmessages.setText("*** Veuillez sélectionner un fichier CSV contenant la liste des étudiants ***"); - } - - } - }); - - - // création d'un nouveau fichier d'analyse - btnNewFichierAnalyse.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - - JFileChooser chooser = new JFileChooser(); + refreshLabel(); + } + }; + + + /** + * Gènère un nouveau fichier d'analyse à partir d'un fichier ODF + */ + private AbstractAction actNewFichierAnalyse = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue(LARGE_ICON_KEY, new ImageIcon(evaluate.class.getResource("/resources/fichierODF.png"))); + putValue( Action.NAME, "Génère un nouveau fichier d'analyse (CTRL+N)" ); + putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichierODF.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_N ); + putValue( Action.SHORT_DESCRIPTION, "Génère un nouveau fichier d'analyse (CTRL+N)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_DOWN_MASK) ); + } + + @Override + public void actionPerformed( ActionEvent e ) { + JFileChooser chooser = new JFileChooser(); chooser.setDialogTitle("Choisir un fichier ODF"); chooser.setCurrentDirectory(new java.io.File(commandes.path)); @@ -531,26 +587,212 @@ public class evaluate extends JFrame { commandes.ecritCode = true; - - } - }); - - // Affiche le code XML du node sujet - btnAfficheCodeFichierAnalyse.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { + } + }; + + + + /** + * Information sur le fichier d'analyse + */ + private AbstractAction actAboutFichierAnalyse = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Informations du fichier d'analyse (CTRL+I)" ); + putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichierAnalyseInfo2.png"))); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_K ); + putValue( Action.SHORT_DESCRIPTION, "Informations du fichier d'analyse (CTRL+I)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_K, InputEvent.CTRL_DOWN_MASK) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + if(commandes.fichierAnalyseValide) { + refreshLabel(); + }else { + txtpnmessages.setText("*** Veuillez charger un fichier d'analyse ***"); + } + + + System.out.println( "Refresh Labels and texts" ); + } + }; + + /** + * Quitter l'application + */ + private AbstractAction actExit = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Quitter (CTRL+Q)" ); + putValue( Action.SMALL_ICON, new ImageIcon( getClass().getResource("/exit.png") ) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_Q ); + putValue( Action.SHORT_DESCRIPTION, "Quitter (CRTL+Q)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_Q, KeyEvent.CTRL_DOWN_MASK ) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + + int a = JOptionPane.showConfirmDialog(null,"Voulez-vous quitter l'application?", "Sélectionner un choix", JOptionPane.YES_NO_OPTION); + + if(a == JOptionPane.YES_NO_OPTION) { + System.out.println( "Le choix : " + a); + System.out.println( "Exit" + e.getSource().toString()); + dispose(); + } + + } + }; + + + /** + * Affiche la fenêtre d'information sur analyseWriter + */ + private AbstractAction actAbout = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Informations (CTRL+I)" ); + putValue( Action.SMALL_ICON, new ImageIcon(create.class.getResource("/resources/apropos.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_I ); + putValue( Action.SHORT_DESCRIPTION, "Informations (CTRL+I)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_I, InputEvent.CTRL_DOWN_MASK) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + new about(); + System.out.println( "About" ); + } + }; + + /** + * Affiche le code XMl du fichier d'analyse + */ + private AbstractAction actCodeFichierAnalyse = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Affiche le code XML (CTRL+J)" ); + putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichierAnalyseInfo.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_J ); + putValue( Action.SHORT_DESCRIPTION, "Affiche le code XML (CTRL+J)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_J, InputEvent.CTRL_DOWN_MASK) ); + } + + @Override public void actionPerformed( ActionEvent e ) { if(commandes.fichierAnalyseValide) { txtpnmessages.setText(Run.ecritureNode(commandes.sujet, 0).toString()); }else { txtpnmessages.setText("*** Veuillez charger un fichier d'analyse ***"); } - } - }); - - } - - + System.out.println( "Affiche le code XML du fichier d'analyse." ); + } + }; + + + /** + * Affiche le code XMl du fichier d'analyse + */ + private AbstractAction actModifierFichierAnalyse = new AbstractAction() { - + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Modifier le fichier d'analyse (CTRL+M)" ); + putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichierAnalyseModif.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_M ); + putValue( Action.SHORT_DESCRIPTION, "Modifier le fichier d'analyse (CTRL+M)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_M, InputEvent.CTRL_DOWN_MASK) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + if(commandes.fichierAnalyseValide) { + new create(); + dispose(); + }else { + txtpnmessages.setText("*** Veuillez sélectionner un fichier d'analyse pour le modifier ***"); + } + System.out.println( "Affiche la fenêtre pour la modification." ); + } + }; + + + /** + * Charge la liste des étudiants sous la frome d'un fichier XML. + */ + private AbstractAction actChargeListeEtudiantCSV = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Charge la liste des étudiants (CTRL+L)" ); + putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichierCSV.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_L ); + putValue( Action.SHORT_DESCRIPTION, "Charge la liste des étudiants (CTRL+L)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_L, InputEvent.CTRL_DOWN_MASK) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + JFileChooser chooser = new JFileChooser(); + chooser.setDialogTitle("Choisir un fichier CSV"); + + chooser.setCurrentDirectory(new java.io.File(commandes.path)); + chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); + FileNameExtensionFilter filter = new FileNameExtensionFilter("Format CSV", "csv"); + chooser.setFileFilter(filter); + chooser.setAcceptAllFileFilterUsed(true); + + if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { + System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory()); + System.out.println("getSelectedFile() : " + chooser.getSelectedFile().getAbsolutePath()); + commandes.nameCSV = chooser.getSelectedFile().getAbsolutePath(); + commandes.fourniCSV=true; + commandes.nodeCSV = meptl.chargementFichierCSV(); + txtpnmessages.setText(Run.ecritureNode(commandes.nodeCSV, 0).toString()); + } else { + commandes.nameCSV = ""; + commandes.fourniCSV=false; + System.out.println("No Selection "); + commandes.nodeCSV = new node(); + refreshLabel(); + } + System.out.println( "Charge la liste des étudiants." ); + } + }; + + + /** + * Affiche le code XMl du fichier d'analyse + */ + private AbstractAction actAfficheListeEtudiant = new AbstractAction() { + + private static final long serialVersionUID = 1L; + + { + putValue( Action.NAME, "Affiche la liste des étudiants (ALT+L)" ); + putValue( Action.SMALL_ICON, new ImageIcon(evaluate.class.getResource("/resources/fichierCSVInfo.png")) ); + putValue( Action.MNEMONIC_KEY, KeyEvent.VK_L ); + putValue( Action.SHORT_DESCRIPTION, "Affiche la liste des étudiants (ALT+L)" ); + putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_L, InputEvent.ALT_DOWN_MASK) ); + } + + @Override public void actionPerformed( ActionEvent e ) { + if(commandes.fourniCSV) { + txtpnmessages.setText(Run.ecritureNode(commandes.nodeCSV, 0).toString()); + }else { + txtpnmessages.setText("*** Veuillez sélectionner un fichier CSV contenant la liste des étudiants. ***"); + } + System.out.println( "Affiche la liste des étudaints déjà en mémoire." ); + } + }; + + + /** * Permet l'évaluation des fichiers des étudaints. * @throws ParserConfigurationException diff --git a/src/app/filechooserXML.java b/src/app/filechooserXML.java index 2c980ca..d019f63 100644 --- a/src/app/filechooserXML.java +++ b/src/app/filechooserXML.java @@ -15,6 +15,7 @@ import javax.swing.filechooser.FileNameExtensionFilter; import MEPTL.commandes; import MEPTL.meptl; import MEPTL.verificationFichierAnalyse; +import cXML.Run; import cXML.node; public class filechooserXML extends JFileChooser { @@ -52,35 +53,13 @@ public class filechooserXML extends JFileChooser { System.out.println(file.getPath() + "\n" + file.getName()); String ext = file.getName().substring(file.getName().lastIndexOf(".")); - if(ext.equals(".odt")){ - openFileODF(file); - }else { + if(ext.equals(".xml")){ openFileXML(file); - } - + } } } - - private void openFileODF(File file) { -// Run analize = new Run(); -// commandes.path = file.getPath().substring(0,file.getPath().lastIndexOf("\\")); -// commandes.filename = file.getName().substring(0,file.getName().lastIndexOf(".")); -// -// commandes.sujet = analize.RunWithOneFileODT(file); -// try { -// utils.sujet = utils.LectureFichierEtudiantSousFormeDeNode(utils.sujet,analize,0,true); -// } catch (IOException e1) { -// e1.printStackTrace(); -// } -// utils.sujet = utils.nodePourEcritureSujet(utils.sujet); -// -// if(!utils.fichierSujetValide()) { -// JOptionPane.showMessageDialog(null, "Le fichier n'est pas valide."); -// }else { -// utils.setTree(); -// } - } + private void openFileXML(File file) { @@ -113,6 +92,12 @@ public class filechooserXML extends JFileChooser { // Rechercher des erreurs dans le fichier d'analyse new verificationFichierAnalyse(); + + if(commandes.fichierAnalyseValide) { +// Run.parentAndLevel(commandes.sujet, commandes.sujet.getNomElt(), 0); +// create.setTree(); + } + // Affiche les erreurs dans une message box //if(!commandes.fichierAnalyseValide) JOptionPane.showMessageDialog(null, verificationFichierAnalyse.messageErreur.toString()); @@ -134,7 +119,8 @@ public class filechooserXML extends JFileChooser { */ public static boolean fichierSujetValide () { if(commandes.sujet==null) {System.out.println("Le fichier est null."); return false;} - if(!commandes.sujet.getNomElt().equals("fichier")) {System.out.println("Pas de node fichier."); return false;} + if(!commandes.sujet.getNomElt().equals("fichier")) {System.out.println("Pas de node fichier."); return false;} + commandes.fichierAnalyseValide=false; return true; } diff --git a/src/app/mainApp.java b/src/app/mainApp.java index 37bd763..d9a7e70 100644 --- a/src/app/mainApp.java +++ b/src/app/mainApp.java @@ -63,24 +63,28 @@ public class mainApp extends JFrame implements ActionListener{ frmEvalwriter = new JFrame(); frmEvalwriter.setResizable(false); frmEvalwriter.setTitle("analyseWriter"); - frmEvalwriter.setBounds(100, 100, 555, 295); + frmEvalwriter.setBounds(100, 100, 555, 315); frmEvalwriter.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frmEvalwriter.getContentPane().setLayout(null); ImageIcon img = new ImageIcon(getClass().getResource("/evalwriter.png") ); frmEvalwriter.setIconImage(img.getImage()); btnCreate = new JButton("Modifier un fichier d'analyse"); + btnCreate.setHorizontalAlignment(SwingConstants.LEFT); + btnCreate.setIcon(new ImageIcon(mainApp.class.getResource("/resources/fichierAnalyseModif.png"))); btnCreate.setFont(new Font("Tahoma", Font.PLAIN, 14)); btnCreate.addActionListener(this); - btnCreate.setBounds(34, 163, 470, 50); + btnCreate.setBounds(34, 180, 470, 58); frmEvalwriter.getContentPane().add(btnCreate); actCharge = new JButton("Evaluer les fichiers des étudiants - Créer un fichier d'analyse"); + actCharge.setHorizontalAlignment(SwingConstants.LEFT); + actCharge.setIcon(new ImageIcon(mainApp.class.getResource("/resources/evaluate.png"))); actCharge.setBackground(Color.PINK); actCharge.addActionListener(this); actCharge.setFont(new Font("Tahoma", Font.PLAIN, 14)); - actCharge.setBounds(34, 96, 470, 45); + actCharge.setBounds(34, 110, 470, 58); frmEvalwriter.getContentPane().add(actCharge); JLabel lblNewLabel = new JLabel(); @@ -96,8 +100,8 @@ public class mainApp extends JFrame implements ActionListener{ @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==btnCreate) { -// Creer = new create(); -// frmEvalwriter.dispose(); + new create(); + frmEvalwriter.dispose(); } if(e.getSource()==actCharge) { diff --git a/src/app/msgBox.java b/src/app/msgBox.java index 59fd61a..d37c528 100644 --- a/src/app/msgBox.java +++ b/src/app/msgBox.java @@ -9,6 +9,10 @@ import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JLabel; import java.awt.event.ActionListener; +//import java.awt.event.ComponentEvent; +//import java.awt.event.ComponentListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; import java.awt.event.ActionEvent; public class msgBox extends JDialog { @@ -19,7 +23,9 @@ public class msgBox extends JDialog { private static final long serialVersionUID = 1L; private final JPanel contentPanel = new JPanel(); + private JButton okButton = new JButton(); + /** * Create the dialog. */ @@ -39,7 +45,7 @@ public class msgBox extends JDialog { buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); getContentPane().add(buttonPane, BorderLayout.SOUTH); { - JButton okButton = new JButton("OK"); + okButton = new JButton("OK"); okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); @@ -52,14 +58,37 @@ public class msgBox extends JDialog { } { JButton cancelButton = new JButton("Cancel"); + cancelButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + dispose(); + } + }); cancelButton.setActionCommand("Cancel"); buttonPane.add(cancelButton); cancelButton.setVisible(AfficheCancel); } } + + addWindowListener(new WindowAdapter() + { + public void windowClosed(WindowEvent e) + { + System.out.println("jdialog window closed event received"); + } + + public void windowClosing(WindowEvent e) + { + System.out.println("jdialog window closing event received"); + } + }); + + + + + setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); - setVisible(true); + } @@ -67,4 +96,9 @@ public class msgBox extends JDialog { dispose(); } + + + + + } diff --git a/src/resources/fichierAnalyseModif.png b/src/resources/fichierAnalyseModif.png new file mode 100644 index 0000000000000000000000000000000000000000..5168fd5a923fbdecb498106e356e5c1ee971765d GIT binary patch literal 2664 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