From 3c053fb45f6bb8791193545dcdc02c6529b0f550 Mon Sep 17 00:00:00 2001 From: Valentin Boulanger Date: Mon, 7 Dec 2020 22:18:54 +0100 Subject: [PATCH] =?UTF-8?q?R=C3=A9solution=20#8=20Modifications=20classes?= =?UTF-8?q?=20et=20m=C3=A9thodes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AppThinker.mdzip | Bin 101324 -> 101311 bytes AppThinker.mdzip.bak | Bin 101323 -> 101324 bytes AppThinker/src/AppThinker.java | 18 +- AppThinker/src/AppThinkerMenuBar.java | 107 ++--- AppThinker/src/AppThinkerStatusbar.java | 4 +- AppThinker/src/AppThinkerToolbar.java | 161 +++----- AppThinker/src/AppThinkerWindow.java | 33 +- AppThinker/src/Argument.java | 3 +- AppThinker/src/ArgumentsPropertiesWindow.java | 169 ++++++++ AppThinker/src/Attribute.java | 2 +- AppThinker/src/Class.java | 1 + AppThinker/src/ClassPropertiesWindow.java | 371 ++++++++++++++++++ AppThinker/src/Method.java | 3 +- AppThinker/src/Project.java | 6 +- AppThinker/src/UmlDiagram.java | 51 ++- 15 files changed, 702 insertions(+), 227 deletions(-) create mode 100644 AppThinker/src/ArgumentsPropertiesWindow.java create mode 100644 AppThinker/src/ClassPropertiesWindow.java diff --git a/AppThinker.mdzip b/AppThinker.mdzip index 38545cf6798e76842b0819749314fb651ddf9f96..a5663e4b86620109da655e646ea32eacdb69254b 100644 GIT binary patch delta 22949 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 delta 23094 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 KM%d%}BmEbKRShfv diff --git a/AppThinker.mdzip.bak b/AppThinker.mdzip.bak index e60c8cf63a5f22962d79e96ecaa29dd7b228c377..38545cf6798e76842b0819749314fb651ddf9f96 100644 GIT binary patch delta 3458 zcmZ8j2Q*yU8lD*?dM`sHh~8zQm#9fZpXj|tiOwbZD8nd2Fk(b!g6M>(iReA%A_x+K zD>{jY(Y=|w-di{C?zPVP_c`bLzP-xRZqPyU87@_0^3^FLbZmqNfazoePnjE9}P_db8O%tQ*xng61FH z?K*|j=6uSTJo&`ZRy7~IK-YVrd?INuklv|VC-9+r=VyargNm!guZx(=9y?4?@$B_! z@xVZ?-Hbc4$0lAjKR<;WhvnOF%*{1e*NkIXG5~g%04w)=jjbXmurOL ze{9Z$2Pw(#Ux)F$Aa*&;5)Ur4jOv7lZ|dAqGfxwe*^ImZNYeNRP43OSl*#R`6g{jw zOcWt~x~;q}P`#eaIo|xCAV8m}1nCbXqvv8L!@xbj{a2<-51$oIT$&nd zknR+!jPVSvTzn&{l3Ib^F>R1HIyZyrj!T~3XZIi>b%6Ct0k}k80ZMvkM54jd8+^%& zD^mRIM*WE&&)>;W^m+N_1@_F%HQv*(_N$fZg%fQF?$PheY?n!!IBsc5cocq%oAOAZ z3-v20paryMQO>f9c@3$?Q%N#rKhkHmuZ$~+@zWFBCGGI-mLgVbq5}nR)7e)%*2;Ph zIh4Q-(b&}r4BSj^=id3t zM0BD^Nea#91Li>&HpmrOW#ZxkT0@;{WT)+ZX+|Ibz>*XI_}y}iW?Ez*g4Z0hWnn`M z7oC%rh%B>tAA8xz#$IHGD!;y#eUFoiso87x4z7aR-nCxpkoT9SEu5-Ry7xOKnHgF+ z1Ghe6s^;IGeQ!bz^Srd^L#3+c=BRU#2ZQ;NQz2}2G8}8YXG^fK7VQ&RvV)`gV?Kk? zS2oFS;9wA+#r1W?5siYn`O5Y=PgqWPo7=%3#gT2lD#iFdE;hp@=5A5s0PQLtmXUgr zTT`!)Wmt>hs+#^}c!R0O9CMyI;ilGRy=lb@IA2Gmg%uPR3h}~4wJ;{)i9(t?Hx_AY z!&p~Iol-XqQPLnM7inbFWc(TAjR@YV`b!Vy8Usvo{hssNYBcw#TeJO;ak^#Quu@>;IJXu(B?kAv(^jXHFAwvwp>sS^MTOgYjqfsCKG~8u601YPCBq)Kru z?$)J}2&o$CHUu-aB(EI1y3U+{;Rs++4{jcBF#QYKwIcRTFH?nTYJ;9U$bsZxg0yH% zwRP5AF_1+u>Y8y&4OOaFZW)nx)#EWCX_&eZW%NYb9wf=6=ORsgVAdUQW30@pCMic} z=!Md+4-iM#@f3D-*m33A?fXw-i?661VZkkeM9I8a;rV}Q+~hkuY0^jXL_Z&V=zY{~ zZU>*IbK0mwHx!zrihkKvIn619#t|zGTV#qh1lh7!h{MG!1upWHz+ftWE92@Lf3|8W$ zNsh?q$K5o5@JhBahdJY^KPu0RWvRa$-~^vf2jtSMW4|7@cL&nWEWJ5g^-U{W3N~-* zByu@FDylzM<9;S;>tr~;>y=cYC=WCJP^?k!vQEGA_{+2YSsn|4>4aX07<+gPyj?E^ z8DCRV=~QnkGMQ>3M83djo%icva(tPE%S{_cFl=uCY8s82IK z(MAf%SS)sScGT>ge0^9SsuHN&rJAtCX5cYAg47rhu(W^JCTtg5xqO+~`U=)%68K~$ zBJ^sYWfq-kqdYXc-Bp*(zpyiW|BLIeV@fw~uR{5v<4vj6N4{@(T6~ryP)d^>lo_nq zpqDLS>A^(3W}hRr_WW~xG%(`)J}rGW5~!_AeEhzK_H$l8+d0#(A-)GCom{PEw`_@i z9ezI4hrYY zBahO#>LjH~BE31t6P*Q(IkKzS>Q;fX`pex@N#z^Edq*{;1CN2xX>NVI&H6hmci%*r zD>QuTqgcC>iDlu-(i1hSUU^$XKgz@)h(M{&)7>%U_D)hR;~}we{Hp%|mNZtH03BiP zj}_PS74(&A+tMyo{l-7>Ly{_`C6w zErT=$J~bV^E+$*to4IwK;c0GZ=Zb<717#h|o5b>kd4#^mQXlDQ;1vCtO%$!LD=Z8U z21AAocnR;5GEG)CeJV;=_86k=rDH-xk2z4Zktt<5L1a*$ElE8NX5yRyWiQ3}NWVT) zQ_MR^-y2h~NnS%$tW@;*Sft>jrf9cTPm!}rc zeP1jow;*(gR_d4i5bM7$CG=uB*^cq`hIIJeX7kU9_RVhBOQ|u=0a;6_+73ti}qMmrv~B|a+E{lC7P{F<-j zfEQaVU;nvNA9&+@DQes5Pa~L90!&`%GhI(!&8l_GN7jQaPW8MqPC^a5nH~6*=^6lF z!}PBj*bD7sCiGpguJ%AeTysNQBSdfC5L!ZQ+=R)IG&Di#4N?42*5K}^)9$_i03Z;5 z{a#8@IZ>7b^ih2o|!t*n>C2=w>I9rZ^;_bttYkcm>*;}9rg?469 zxoYbvPM{HcjBS-qmu^ugPbNnU2J2in);}8OpC1Av)=!K-Io|Lm?%2Z&>tM9t@tUud54&NGF9~4e9`yk^ql#*sl2_C30$22Ug7$9^4 ziltzKA@GW&`lirT*@_yh4;hJfht`3h6V!IF$yWFz{n6c}K(Dr3?ZUfQDRK>excmf^96AN^9G1BiPZquK($iC=J?-g{cS+s4K7C>W+f! zzDno2vm`R(>KG(Op+ZRewsFEhUQr$$5(N|G1!p*t9L1S5`5I_wNPjP1x+r@W0kS4*GBmfsn>`XC@2)fEV5&=#Drbf?x*Ccp#LV zH!=?TcMpdyhzB|l9s?0T4xk?TCIYCzNqGCaySecEe})-43IUWLa2g1lHuN|Gs7$z} zP5^R%LR`~1z^E!$7j#7ekcx{S75f%C{uRF!FdqOA_KyyJw&0e|VSw6pWko9{0(l4; z_KA2&XLLj&P=SoVC7cfQ`$QlM@e&LGK+#7tqSKOqR0QZL9tui}LRChIi~RfRe?J=> z|F`50+Aj$xLf{u9;rW))Xe3vgskJ4oWhqIWOS$(YbuI~M+Ebv=9^hHbTZK`P+SS6--JnxxpN<#!DY z)z{9bTZDc9-&*!>p?^ib&i;u!7jn@=zWJ7_>G01`P3AyFW|K5WTzH-j63(Mh{-Xe{ zhc$qYl>1nCdhlGe%Nz(^DiMv_3wz_2ZNeFm=F~sl`bvRuz4uT}cK^Y~)`dgjWtO`g z#eR*RXRxHaCU_;^%6QK}ZS9S=De|*`z_=Xh*`BG=qC06|9SiQq7e-4K_LjnPEIV>M zav$Xi2@Aa)z;|Df#6@QpJU(@?nEQHJN?&~X6$rQMeG|%r2Ee!|x2mpL#q(`wU4=|* zh3=P%!KqN{F4M|fm)XtcpdQsyAWFXx5DS8^#G+oR7!To|Y!sJL-EmK(7mscxL1Pq` zpxw%h|M2Q&pHJm<6X7ck-5GSu>2_mlwhkXeiruTHyIXUE4+ns7TLMsi_)M)7kF9h) zA3r|Md*!p2Jq{fO=x5=GfzZ!hYh(Y2RwJx)oL>TeLbpLdD}fWd`Pq`geUkHT3tRR2 zpjHHm$_TLUi(5${!Z9K)3|UOZ(xuF>Q5{rAgJj09yABQRd@)kCpy);jsAfb-vd@Y4 zH|eHpGUFA8Gswit0%xq_%b=Pj`w#g=lQ`ah?w?OkbZJl^pGBt;G6Z^j6CupXk>r6L zAc))Gv|b_7MRxB{UUKQ7Pz-vP(cFj;M8;5)P;>x*Edv1XH{oh+u7K!{ndXALfJ1T| zP=*fJy&|+P?N!jS1;)u$hQ;jXbzU7S@U~)^8qSW}1AU z7PvfU<$WX-Ia~(4fG?L^SoJMoPM#L3WA)fA!|lobb_34RSXawE3%MM}pc{ z=8(Lk1CCCwy!S(JL6K_hZ8hZu$C*&SP7hkk$Ek8yJTht}u)evu#7u6Jy*UzO)Ol1ovXd!f}K!i0ZoS^agq!^NO zegZ|*h((JAT;ElT`?jx#ObK5z*NL#`A63meM3gf`)Xf_%ammZ|L(?^tM#fN^w^^Pd z?DITVx;6q}2g4=Ruq_Se?-Q~Z$Pd@Fdw1e4Xm;*xWDjX;Y*n`%-P6HNuR5HjiajNd zZF6IkwVo$%L_sa~GHumPXGL#s19i%S^0d`lv4`WT1}W@ze!Gjh1O;PZy3HAaxv}i! zqD-Bu*G0`{N$1jK2SiQKtPw&rvtC?Cp!NRhT0Y+KstztixZKn1Y57v<<|3J3<4YH7#Z&U_7-rMVnY3! z)=clOF4{Y|&!5L3ty?*yO%X*5LX=8!_5MAScvrMfN$j(+mbbNlk;Vt zEnX?HOiUM9UZZ-erL3=&;tVe|EO-3I6C;IKH-GT6CBJ8DPni~i5-**bPwespBb!@I z6a&xpRH)ttymw46cO5oGW+yQQ(8$VZyrpR6_>Swi#U9&#wy+W{$KgYHC_!!-9NLz*e zwD@oW99#D2dmXXzEuuKQke-F&Gy9YN~WyzLZy3 z-7g=1z;Y>Ywju}pYvMPqz27FcLjm=`-d}uKCMHZ`R?eK-E4Kk1ozM;*+PJr0y$!2i zKjK})S?%)cFBvEjolr3)U4G{mG>&$jE~oq5uz55Uscd9(j$@uB9y3Di7ZXhb$0eO0 zsLXk5%#2HGggAbOYK~1&>PH%6MIapa(4C42MRNq!PI!Xm*&v)$enI#P>1TpB$erf~ z)cKytiAMV)q>D`yU3g}RA6*)+*60~eE+Nwzp^8Q}wIQ%r5G(zCNo%{S(y5Jl;C)uZ z84lkBc8H6<4*qNUbKYLz5$BkB9wdVEX1V+|Z^;rtyYLmz>0SpBa7TfJDo<##;Ym`K z)IBs&{xhUKeFQiE4xad!NnCL$qp;+*S%-tz53vftC(mUduWV=X_A7Lf>osTTIa++p=vzmkrUIXmW8Fw>SZeGT$NW2E$V>Y8lxJ=mZo2F(Q&oC95@R)W zlmW?F5Z$epHSTt5R{B?)eE3!$#;*r2oT~^TKkAYbcNPB!Ck_MY8IBkyiYn!1!4F~C zYypN{P>Z-{bZCq;-;*?=K(m_^GgnZWAqJZfO&RT7XI%5`GiW-$a!XDr(v3ZHK(=LQ zJX!E%Lq@Dxfhe~A%1nZ0mAS3{sUb|DRJORB&ARXTZK+ID$GpKtU97(@r?Zv^V&830 zb*QUCX<`Mp$9A{lV_WD~hxhbnyMvn>st$2Jod*58YNck$wVo}I>61qkNAcmr-NI?o z7yFRIx^37dLvX!>#j<2mhjZEIxXa(>|I!5rzQ&!=a zCa$ZTlh=&$TOY3+V&JW9*QY}v5l2{s>WzV?A50fS!2QhASvT=jD>Fw7_R}$se)H?@ z_kI2x5BcIHxX4jVNwq$L%ueEHBaRUi62ROGWdr~mp#L6uaVP*yYWq+PT*s?c+|BF2 zW4-8(XFS%vzIWJ;2jU72K@YE0dSOYBin2egS`?${OA8C6oxkTNAvenQ7`+pvE%yiQ z8^nTwDZ!Lx7U=#|aaIfeL7WzJ=6?cfG0~{+v`BKJKX4dAyO8eR1uEfUfs6^Ah1r-v z`SEl8B{Ht7eKX8nt{UEp8=jKJ$eZycWmtH(eg58-DrLN^x>Vn?kPEXBtsJ_cW}RRD z{S(~}ompppPN(V4Msj1=w?Y`RLn))Cl%ZXxCC`=7!K&*W&I>t_Y*|B)E!zls4BaSy z!8}ADLUPYl-cded2hbG|RSS84=pqbG|D{`G-0pncc1wS0EC|7} zXKfmkz=(cw+PiOa_@HMy_#tE4>!FNP@TL^fBZbpchZXw4&s6ahLO})WQOcVEFQ=AP zUcC8o(QIuee7R?_=UkF?Kis9aD%JAT>F#oL(X)wJGrUnifig~vS8~J$ebr&lx#g63&s>MaUsL!C+fL@JTu($6%I9ZwZWH~EG(n#xPwC;ld8Vf-b|y71u;QWp-;FivURBT z7!Q4f>hQ<;xw$Yj&$6m^b^Ds1OQIa z$Y^c^q`L(8|8+kOW%w44SE21>RvZ9;Hvm9tjsqqflR+;Yh+-my$D#f#ZlwHpptJC? zIaJBHS4PWq?*ss#Orz9)#fT(~2kQO-{mp!l{~~BND^fHbsPG3Qdrk3$D;EF&cLM(); } diff --git a/AppThinker/src/Project.java b/AppThinker/src/Project.java index 33e56b5..a6d0d0d 100644 --- a/AppThinker/src/Project.java +++ b/AppThinker/src/Project.java @@ -27,10 +27,10 @@ public class Project { public Project(){ _projectId++; _id = _projectId; - _name = "Mon super projet"; - _author = "Inconnu"; + _name = "My awesome project"; + _author = "Unknown"; _version = "0.0.1"; - _designation = "Projet UML AppThinker."; + _designation = "AppThinker UML Project."; _path = null; _classes = new ArrayList(); _links = new ArrayList(); diff --git a/AppThinker/src/UmlDiagram.java b/AppThinker/src/UmlDiagram.java index f2a50d4..6e22f59 100644 --- a/AppThinker/src/UmlDiagram.java +++ b/AppThinker/src/UmlDiagram.java @@ -3,14 +3,17 @@ import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; +import java.util.ArrayList; import java.util.List; /** * Cette classe permet d'afficher l'ensemble des éléments du projet sous la forme d'un diagramme UML. + * @author V.BOULANGER */ public class UmlDiagram extends JPanel implements MouseListener, MouseMotionListener { private Project _project; + private AppThinkerToolbar _toolbar; private List _classes; private List _links; private Object _selected; @@ -28,6 +31,7 @@ public class UmlDiagram extends JPanel implements MouseListener, MouseMotionList this.addMouseListener(this); this.addMouseMotionListener(this); this.setPreferredSize(new Dimension(3000,3000)); + this._toolbar = new AppThinkerToolbar(this); } /** @@ -79,11 +83,12 @@ public class UmlDiagram extends JPanel implements MouseListener, MouseMotionList for(Method m : a.getMethods()){ posCounter += font2.getSize(); String chain = m.getAccess() + " " + m.getName() + "("; + ArrayList listArguments = new ArrayList(); for(Argument ar : m.getArguments()){ - chain += ar.getName() + " : " + ar.getType() + ", "; + listArguments.add(ar.getName() + " : " + ar.getType()); } - chain = chain.substring(0, chain.length()-2); - chain += ") : " + m.getType(); + //chain = chain.substring(0, chain.length()-2); + chain += String.join(", ", listArguments) + ") : " + m.getType(); g.drawString(chain, posX, posCounter); } //Si la classe est sélectionnée @@ -114,6 +119,14 @@ public class UmlDiagram extends JPanel implements MouseListener, MouseMotionList AppThinker.getWindow().repaint(); } + /** + * Récupère la toolbar du diagramme. + * @return La toolbar du diagramme. + */ + public AppThinkerToolbar getToolbar(){ + return this._toolbar; + } + /** * Mets à jour graphiquement le diagramme UML. */ @@ -164,6 +177,18 @@ public class UmlDiagram extends JPanel implements MouseListener, MouseMotionList this.repaint(); } + /** + * Modifie les propriétés de la classe. + * @param a La classe a modifier. + */ + public void editClass(Class a){ + ClassPropertiesWindow prop = new ClassPropertiesWindow(this, a); + } + + public void removeClass(Class a){ + AppThinker.getProject().getClasses().remove(a); + } + //Actions de la souris sur le diagramme UML /** * Action du clic de la souris sur le diagramme. @@ -171,8 +196,11 @@ public class UmlDiagram extends JPanel implements MouseListener, MouseMotionList */ @Override public void mouseClicked(MouseEvent e) { - if(e.getClickCount() == 2){ - System.out.println("Modification des propriétés"); + //Si il s'agit d'un double-clic et que l'outil sélection est sélectionné, on ouvre la fenêtre d'édition de la classe + if(e.getClickCount() == 2 && _toolbar.getCurrentTool() == AppThinkerToolbar.SELECT_TOOL){ + if(_selected instanceof Class){ + this.editClass((Class) _selected); + } } } @@ -182,18 +210,21 @@ public class UmlDiagram extends JPanel implements MouseListener, MouseMotionList */ @Override public void mousePressed(MouseEvent e) { - int tool = AppThinker.getWindow().getToolbar().getCurrentTool(); + int tool = _toolbar.getCurrentTool(); switch(tool){ //On essaie de sélectionner un élément case AppThinkerToolbar.EDIT_TOOL: System.out.println("On édite un élément."); + this.select(e.getX(), e.getY()); + if(_selected instanceof Class){ + this.editClass((Class) _selected); + } break; case AppThinkerToolbar.DELETE_TOOL: System.out.println("On supprime un élément."); this.select(e.getX(), e.getY()); if(_selected instanceof Class){ - Class a = (Class)_selected; - AppThinker.getProject().getClasses().remove(a); + removeClass((Class)_selected); } this.displayDiagram(); break; @@ -205,9 +236,7 @@ public class UmlDiagram extends JPanel implements MouseListener, MouseMotionList break; //On essaie d'ajouter une classe case AppThinkerToolbar.CLASS_TOOL: - Class newClass = new Class(e.getX(), e.getY(), Class.RECTANGLE); - newClass.addAttribute(new Attribute("_TestAttribut1", Attribute.PROTECTED, "int")); - AppThinker.getProject().addClass(newClass); + AppThinker.getProject().addClass(new Class(e.getX(), e.getY(), Class.RECTANGLE)); break; case AppThinkerToolbar.ASSOCIATION_TOOL: System.out.println("On ajoute une association");