From 1506bf12703ec6664345c968e8151bb8ff325911 Mon Sep 17 00:00:00 2001 From: qinoy Date: Tue, 23 May 2023 17:57:05 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AB=AF=E5=88=B0=E7=AB=AF=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=20=E8=BF=9E=E7=BA=BF=E5=A4=84=E7=90=86=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...oft.apps.coe.method.process.subprocess.jar | Bin 39975 -> 41951 bytes .../process/subprocess/graph/GraphLayout.java | 73 +++++++++++++++++- .../subprocess/graph/GraphLinkerRender.java | 18 ++--- .../process/subprocess/web/SubProcessWeb.java | 2 +- 4 files changed, 80 insertions(+), 13 deletions(-) diff --git a/com.actionsoft.apps.coe.method.process.subprocess/lib/com.actionsoft.apps.coe.method.process.subprocess.jar b/com.actionsoft.apps.coe.method.process.subprocess/lib/com.actionsoft.apps.coe.method.process.subprocess.jar index dfd27c4f056519b5562fb4561aa073960be82b11..ef064dc08f95607c1012288c0bc4b3a647153594 100644 GIT binary patch delta 18863 zcmV)lK%c*-xB}nD0t`?~0|W{H00;m843CivBmxYNkuoa+43CjtFaivZk&!e443Ck= zI|2-klLP@n0t}CnNdZm*43CrCcSMuW2n7sKO9KQ7000O801S__?g6<90t}CnsSHvB z$&R;^-(EwLE|eFOSPc+=0Y_w$#e@U`sHg#fkgyCS1PP0P3y;Z5GBC-EGZPlAEmf>b z>sGZ^u-4XAY^xTnh5%~qLigRSwzalOwfkaMi~4`(zBiMZWD*j@AK||H?z{KgbIg)DY?_(~67<>7Z3e6^SAc$vZP_Rx+qY%8wOBeC`rDc!2e!$B&^DR=`>Z3evk=pG(%I6w?9~sESNn^Prcz`H+_n^ARsU#ZOC* zXAJ(lkbG8uiZ6I+H-AxzFG=xbVe$qKANA5^{)&gc>S3>kj(GTM9{##0`x^#-)8KD0 zsm>r%S$#0lUS$Onp-4wO(vqm!5^axH#qHR3J65$8&)P^w!rqyf%alJa)DcR|XQ~+V zpz?K0xwVmIo2j@y)M2meY~NzX)>vD@Xz|rYf>wBcofQkoyW5zXXbZ)e7WbaPibmsA z!H8YeZYSCz%~jD@BxuJmY3G(?b%(vBs;P6!D(7{*y#+jbgylLbVKI#?E3e;bZMUkz zR!3`9Qz91XXq6rq9<^hMUBXb7@5963QrK8!CE8Y6?KZd@u_;^6f*q0Awx*~R#4^t9 zm;b1L71sZD#H*UENL6jbUY{HW8pSCZ4Uk$GbCoz#btXdLs`^k|6rm!su$;8^#;D9= zh4HO0MIg`&mfD4i43kl_K|f|kBk@oo65FLG7)a7dPJ4z_X>wJoYU)>Kk`bn2ku1yB zhJm(ryjQhv4_0jt**mIM+wmwG?8Yry?VzlGXjG;t?20DMVP&t?&l`+f9WK))>o7SV zGp)`dwzo}m{gAmFj7){{rjufKu+)p15>{|qgB8`%2BaDU5c{^qweK)_7w-((dQ#Zo zsFqMibB}wiiP`o_?by4^`Z~iq*OJwTb9cnW+Vc~()h?BsXb5FtFlJi`Tkr_{=SO0H zt%2sa_=H9fT`zXAqu$F@KaHxhuTdXZs zRf`o*Y>h`cs+Ko3uB?g0tX*?8CT}+QyNI7mqeF2)P%G52I2vq>EeS_<)V5hM&^v2T z!Y<#)WClB9F}ow-x_NF(*lK0sje?1P2|H$C0hu5Ya9ev>U9$O9S)IY(Lt?>nn%I*x ziY3*yg~H8ZPBmfhdQO%_mY+z1OhyL?tgr#(!`#|(bir5XJYlu2i#RxFwuHi16FxWD z35iQRYej=Z1a~y->yKyT$yH<^$sKhyo(?tcIRoiF|9a->xM0cwIcG`9n&mm3bl4viOv|fe7-lA zr^@W!QAG|yiz3a^ASO%1I)jN-!X2g-9Wh;ek_b8opBRzMUINW&`O7%uX~@r3#q4F; zUIHD>cGO1Ek#LOV+@X13Dvp8 zRu`uPhD0+v5uh`13Jpn|a{3O_@~COv+F*gDolMJ4TBb`gC`m@C+v}}=U6Ibj$tC7# zgdH+E?RH%N(R$OSIxIIF>eyz-R*M=Sd?bp}`>z(=Uu#X;HB_m>Ip9<_`sL zB!SOB8z&0wSQ8R$yTLVnMYu{D;t8u=)Rq?wua@*gN#Tvez@gSMf^$F;-XY^%s6Cnu z^a5y3sV^zkx2e9AK<8wCT4NT-OKS;WGuVn@63ZG-6%Y$hX^P{+R{NG_YjSqapL`zE zlzu{A@04krODQW%Po4t+PX`ef^kiTzGOG5>{bLFeC!P>C4ZizCbDxWidRdlDXLfc5 zrgct_$g-#Olg~b3kJ+*>c6uZ?*psm*-ISHbQxU*rS$$@liS68fNzFLGc1}+e?A^@t zw)Tkd^QK5=ENCwY>4T4qQ;HeFze#t{ohIE*A2j#}CO^kNWLiFS&(IpTIudC)O06_8 z%>uC*J;Y`Ru^AvX!yz`qr7)w17}M!ZYZqO_wV@SU&R`OvXjulem=2VUBJTmN&s zwEOmBPhE4YyBoscp93DNO#TJ`(%=_N{uRH7jjGAN=HHn762FYpV^JiMfVo@I2EC$q zaXud_;Zi()Tf(oH{3`#>;NP442mYhUf8sx5i)-><_^;T1ZuPdHMV&~S?U>B_H>SFw zaQt%jBfq=u=2xD6^p(APUVU=U%ZK+LJA4NQnf!Nt4N*>ax%t>5A3k>PLni-&_L=-o z{ufjA$(xtS|E7HiJg(jh{*TH3<<|}VpUKDh4G7@P5`K$m>B+9+{}D((n78cZJ_ zj_e3Jrvav;OUFx)UiL&e&AF2s4)1AQX2sj|rnjWG#hYrZ8fVgX)p%1)P!nZsXPRmf zmzwk<{n}KM)f8+nO*K`R4V<#Qlc~;<<=&ynOjS<%3^mPE6{^xy)71=!9QvNAE3@zq zF=y$2DcUHQ>TGq6p%7KapCCA!YK}S&lb>J0&x>j=fJ>=rB;1(^MIR|6Co?$GSwOxu+~)T)Otf*Y^n`v zqp3EjOWv-C+;yl+)n%r-90ge1Y${6uH-bvi_Gq}lJw-H?ty+)*cIX{m0d}`>cNd6G zwH7j8ppdCr1-DLut3H<+Ofv>`#$Ka4=mBS+#9c&EWf>>WeMt@Gd_RL!Aa(XwlyPW( z!gNM2((&ePRkEqZ=eiY;Y^$B9iAHNy1>_X8ymva*)7y%Ms+^8;z&40(vPZHLt5VlM z=MV0THQPaS@9DI7^b*&iaJm8PL-ED!QJJbV+d0d|e%j?cE*=es`Z)$J&w43!;YsMe z&WbF-5ZEnL=NzJEn#Os3a@z* z@R;jWZ7SrYTh&&k1$}NLhnn-}CTxN6v$O3d(s^jY5Mgk6yx3&Gs3lw0^DW4)W<)K;^;B6*#EGiJTMU+;JOm1W@>OTMVnj_pFG)nIj4tr86j)6xK@6+@Hh zK%}wU(;PhN=^|((hY9+p3WNON(mQk^C+-G!pDZCWZa4Q~Q+z|mzLoY4=^K$E3d?jo zyw645#6Cyc=_c&l6Z!jP3QiUeU1{r7As|y-(F;QQP|WJpUJ~S7LMA zD4|n#uVcEb&tzymRd;JLZAl_h6OY^NaB*i3J-|-9pBt!Nr&~_;9&yt5(p37MdCj$O zXfBuSqAUFjX;)l-Uw{mEe{&*x{Dx3CEWhM~X)TAHl`WUmp4tEYXl@LE9jFRuZ^dS`runKFKYik zf7JH2TaxB7B&QzC?QuTR23wArPt`Uj;G6-}S{>W1`1(+@obLl7;2*`Q=4E!MwGDG_ zJT-InM)0~i{bL;Gr&3LAR#e|Xx=+E^Tzf71^cA_XRqvg0NxqY5GsGav* zXVCh%Bxr_zikT{|c9=Yo&op^FPcV5Lmzq3QiZi4*oyV9wQffXP0ch=^7wXs^*=ASO z>+4eF&Q?qEG^en==gm-P$ght?wsj)IFasR`U!5AuFND68&az9-$-Pf@w2CK5J%(3BA3`~da^(N^pgcO4yflaI#@i^TJAIh$A<{J= z%lL0E?ZY<^RX1WpA?94sO*y_iU;ZI7a;Uzdn>_bW(Ge=x;PW1&!p~Ru%q}WwsC*{> zqv_3m-85|F^e!r{&h_UWq7tUc!(f^Ykx!w3?NsOa^SWr{UYa6=Y#0=UVzo#$lGlh0uAKD&G zds1~lH%+eg`n|p>?tsc%-PcSF!-y`Lx*lDB&T_l>^QA`_3V*>NDrd^*H7(UBuU%Ae z0HV&-O4$e%5Y43`nnxq)LK;W&X$mc%3R(y?)zAgB2yeA?G1bv#T1?l_64*ch%2`fN z&gfe)pjWAp{zR*|gf8Maw3-)FlU8ulQJt&cBA!q8(np})DLj?#qmM$x7qE|i z?x&BzI2N!;AEyVv*~Ro4eS$s-#ovk<9>j=z%y@wIK9>N4oy zo3sh-PMx~7+<;a1cZd!<2FklY538hqn~qTBhG|cbI!M#SBq}PW`*ZzyqMI3F3Efmx zUEnY9&FrFC&(h3l?{sa$XNgK?AEvWi%Q*}m!A$2KqB)9mzx^~t_nCH>&g-|6zd-t& z?=Numo1^tR2bv{Fsfe0sEVa;NYNeUf209^VcPliwjW$sSzC@s_E9q)_7wtiRnbIBI zlyc6S=!n*x)Sg03>Dtq%<>=ZosO9R~=TXbkwP&^Nia_xT^hL;NEVa{@(B=UrEm~s* z;AbO!nT|qtqKgVrZ-J#kgTA5#-|O#Jb@?@ezE1G99)&2mH+Eo%=YpYpe7P=Xenll* z)bafb1XS|IKJ3=-p;oC?Gl|oG<@x6N^A6EGagq!7lFv84=k*>MF|9&g7cgvK;r#tH z$ybxvdr^AtyxjR?@1gwt`1{sfV;@fW+H5jWUJq7p0K+#@DdaPr-j5Z303LNSZJ=9d z2P}RUKyWu;@LC|N=wUtUAlNT$j?wby^RCzSq*X={pdAKmj!QUHTs8 z7LPEskfi1NXn9;iuki+zvOzyMPG=kRT=7_bo$?j>{g8g-T6P3|3()tfbhND%v^qj{ zz@5bnM`#J2OIKF-mUUC0I@fIns6w{b`v^?B;x3n(7WcAhqnlRvjV`Je*?Zt4o+tDJt2Rzh)qjWFy3y~Ots7}0$|@cYRR(3l7pF9#^hhJ#-ONVp7O(FPaa z2Ir0g8bo}nVQiPdxCAIX=rx*ttf^pGDM4OEKhc8p(-!(E=qXU%NI#?JA;@x2__>Cq z*-(=}P+kgToc_N^_5Wq6{|l-92hd*xekSD%e+yrYq-6tAex*x){QUvZ>r|Ct&o9!i zT{YZ^HV?i$P~pflH)XZZ$Ex!~3+MSI_Z1~1wmO{=kL=gUEAs?M(z zEr}|6`mfQ7xkcXBraFsTLAN^kP4gRCW&7U>J(g0JgFKHSqI{NSK?w68gnIfMu;>X2 z)04oOE}+6;A<<0EeJ;ZXa2irN8f3J+*SB}e`uHBuD%xXyEOj*~|_O9IaFU%=OI zb!PJl2E9tZb2YUO69~DZ>A8yNt9Q2I&(-Nlb)FLg=5*74I*A+=T-inIMX)*~T-+bp zqr-vZkV>RC8>*3vOxNgBuE+ZG4#OY^812rmX`nu-D6$&40Rdiz0fR;XUnT%y$|1#> z(8>bHG64H+0%~lAYXu>{7$kQUq<%dd;dV&#KFIN7^ef=~i_rYbhy=${dR_ogehKI= zfPFNj$)hQMWILLQHAmf8GYpn`uZ}h4c>W%ilZP3bTq>fik)o{$I-V~=JU>nsO1wyq z-hZG!Ix2$=Djl`PI1mOzy95Y!>B{NQ#AV%d`LndSM-Wa9`xof=?=Yj+^dhD?!&9t} zK{6t&8(`zl+6aq*Tz{dzx<+WGzP*5N=}i3%R5eq7IU`}Z13oKSH}V_(y?V@cv#Y zt~p58R*&|N_7`>09z2S>=(--1iqRP;{|h^Rd>uaiKUns0S_rcXFasHL=u*z7HU!Cb zE~KlGQSRYlx&vA6ULHXY@<{p&m(oEVMNjc)`U0OuKV?6?f$gc6$M7Wfa~U?Rvv>k8 z!(O(LC-XYwy<#+fchs9S8q^%4k=kpHy`%OIC$~cFpH6Ot+P`#e<>5wcT=_Jdm(ag| zH6{jlm^L#HIM1X1U{wWlDc1EmzIqWB|AO@$M^1M&Jo62D6Nb2lo};%gX%RAwFGHLP z2ELb`#=4KfXdk4#QfsBQuk>BtMK|b}I@~um^>&Xt>xOv`_d*Ma;=jQXU()kWaLDn0C>V^y zk8+)^2_j5}z)nNU;~FD!-k?d4v_D5PbUKf58LGp0XSI2=E5MQOMrZzqDY?&fR{Qge z)e1;DtCe|$;u)zW23(56Wr6j+aTUIsdXx0(4$nbAKTIP#++9Q-*cH~fM9C42OZMwf zl>p;<;j$rTewwUAa`V$9H+ousrSJWCsq}pSrITV$^wnhaUzFBg66_u+kJAx13O24l zEk=_lf$dEv0>XAA%{$XDI^}M(-jM^wtahbt&?+}^cI2N6`9u6XVvI;@TxwYtpohq} z*f&n(<-0k%__yk5O{c3PCy*J>6I?PiuF)2W8g&wug~;+WVHfG`GU=LsWU|85L_X6c zw;*-!k~6!ai*Ct6tTyAoB}uFhC^Z@1b9jpM=c#JD);Ft!+NnCp&-3tp2^H{#=rf-e z@Itq?7Fg!gZ2Xg2E4OjTZR>E`=JRc-+6Pm$J5sfKc<=uKP)i30$>}7uy%_)i2Sfk> zP)h>@3IG5I000b+w^jhNM<@Fc0~>?4lh*}9l9vXPPih5|3YHRo%~uO}RL6DxM|XGc zYWGUA9*cIx!)9YXJrEXxfUN~%1Og*01V|Vp6OyiWSJI-@UU~P*2ET$+(%Ok}USOy( zw4rg7G}J&F5Ex9-#E#pfN!s+`x=oWd{nGSn(tdUNip{J4%)Pr>B>aeRzb^}#d*;k} z%{gbzocZSE=g$Lwct3vR!yPzSjAeL64u|A$SjTVs;Ko58eg~iR;|P9N4xjVmS$tj& zV>-UzgMlylNd0?q_>zvJUi`if)9{=Z$9y=B6LRtgI{r|84|=iNhcDx#7ax_PPkHeH zFUFl)ha3h}g;;a|vJj;t`U)a<(FX&lb@#;e#UO4-Id!9R9SD28F7d*>*p?;p_ zt-Bn+MnFf8XL);WwJis1$^jd9Ib^G(!RO`h6*+uW4u7QMYdXFz;7yzHL`O1f3Ea@J zJ$hfXY1B%lnj~h4Kyi0+ARV8#mrHAP28vQ05F(KMW} z2F-ZWNXCqRC9>J3>}X#O9Hz3SP7X_!QF`fpiHw!lvBAtHr4Rva>((}+2Qtx-!PfZp zbx|vm+##^$U1(A=n(n+x5>`|bwIY|Um9!!*|3l0dkw-qw&x_C@=mP5sfVwLNR5o7Q%(?`+LvqC2@^?}(X9 zTkHF_3(S6VYOW_@GP?!oM7x07GB=n>fg+iGITNj=RD(3=B#7UVF0 z1jG>k`skw_o1-ZP*S*vJ`X>}|Rx*&Vde*02xBJ;_>8hpdRaL;h32+ zGhA6Tzft|?;;3{B4F_l zaAfPY#&A4pMO!VFy}nT^A#o3evxCu*L|Y5K=Gvc`lX^J$`8 zVm8^r`ZDHFA{|!PMBaA=lW^95Owk^jVC7V&^(6+9X{LpFe~uw-(u0j*CfQYJB}ZW# zVOx@MYmmWsIPVABGA^4LMxxy@xiKs&i!{rg?Np;KsMPe02P+fxpA|4g5WSe!$bNlp6RU z{y|{LbzH>;{t>UR@JN5qE{lg~?R6ZY?$N#tHcp))1ADR0z*BPAFNXuzC(!<$wJfY- z6Gg#x6zka4w;cPY2}C>3ThubisMX27VfA~{gYZ6Mt?W#&O7@xZs;#VRubD`(QNN$<$LkyiHtbHL1$c7wlU$GprMvMRSxF7@p*vzLDXqZR6c{x3}GyNXrQLxpSMNJwDkqM;FZ>8KoV!UBiy4 z8@cA*3gX;mj;fwiS9NK9zd)d_t&qtkkXobhxLm!44mwk#;c~Tq{hA8hTy2kIHlIFs z@KL0pLSAVQSixBlR&vhUjc|p$;P@@(+8VTTZ7pYy@ay8Ys$m?WVeUy3H8h@t)-dlR zTql&gyEsncLl2li%9-S!g;KuqDsdA!h;6X>u@0T;Sytufmypz4q#&tV!+OGov$mYJ z<*eL5Xd}8f(kAVHem?C=0rB!#xO>Op>CkSU(ePzx=Z}b!@;hTeCqJ$kr=Uk%A=epr z1rCe75-JvmxI^wU@Cp2ucvM1ufv>`dcqC`Ya|$I3B6x)y}IA@6y2 ze8D)%BE=Qur%@5{g?ts2r%`nZfh~?95x=(B2pA+if^`9Z<1kjJi7S2tx1Gf_l2k`Z zLM0W!kT+l~(3(#pB)N&HQ5aVq;}4ab!t^b>4Ka4*1QpE)`E5P65F=zrAzFb9L(0$! zL>Lt_L&b&bmE2*`j5C;3#0}qg3O6aduVQw{D3t9OsO+9>qm6VGAgQBps&ptXPSq2Z zdkSos8}iA2t&LrNaCeayyS!%ZafaBX(&*E;nPV-ysAKxnqlU?IGv?wJG%|hWp_fn} zns7gwnV1XkINnd5ML2}TIEq_w61U-HwBS`lcpWUlPjEY4W7@xg<-(6vF#{{aT&xr; z(I(bmmDr5cVu)ScF02usK)d)7){2wp5a+N?dV-rfSkBN9U zHZxIsMGRZe!*uKu_t3gkwETXt3il9Kj7P*WY$b;epB4@H0JgzTOTLB=5@%3%KR%@7 ztrI4G4N-VdBcA2{dUz0S76%dIF>x_b&mvB3MKa-?L*%7(3Ca`s17p+olYW4h&CoBw zr(;lmTt=gg`8tw1wqGGfiH;$O&m(oD6x^c5VYvoez+G>^eFd*TbLc_K-L!$-seK5G zHgX=KO~zcUxy3!#)!d>t5-M&a$VIp^s0aP~pGJMq9V|ZZ3@Y8{ z^j@tB@9XMym3EEc1~o6`OyZ79DpJprT%-{^bA_ZktPD#ij= zA0@Aw*;R!522Dm27o6x>y4j4?ax?5dwYMf^5>P>}|8^%z$lu-TvMG#-)$U&RHE^DPP-*vZ zD&mG7zt&D7{=BMYTUA%Y@J>>rc&f0lfG?-*swFC2I3Sfymg(U2kfDs>u79Gud>B8x zwo!Sp^pXuOim6Sko8qlE^NRcJyfSs;rIR=QmXh9PtB&6f<5SL7e|7v%V=_*a+@6!t zoD+WQn;13O%k`6`yWd2sXCmrNxUE{|Q?<+sM1HRX1< z`z5p#O_cB_@jli6R3{S9l?hyezDKgkA9_5p8Kb{gt zuwR_O0r4Um%nLYJRElScw&8O{DLh;B5q!RAAI6G)j^|kKj%n36t~KC)gf@tAcD1Lq zJvgI1gXgs|oYkJkIqfxk-Q~rLt|Y#ru7IB-NIRaUMLjIf5Ao92#R6>5rd#nSaiz3q z#9pOc+Z4{ACC(~sS?|#8$2T0hBRFeIp>+-~ZFG2P;YJ%rJC`}QF;-~BK^q;(v@+_f z?!osR`&hkm7ZV}pVj^UJUra7nN?k%4id_Th5^_^cpSpx}RJyjQOQ={~F6}72!oE(= zUoQ5QvYyaI%;eamUBnD+6QS2}+XXyv36Dvt*Acydy%#WgQO)0=aDk67kaiCfr}&u^ zf0?(zK+s(~V78Rk2g_@R2H32~gK!X`S~d-bP@%ezgYea}zc>tkw{}#eQ>{wAu1H|w zveCOD)3n9afok^=w1fhI>gJYUXqx=g1cNLy2Qic1k^_ej2-dJ4I*1Z}%Q$ztj_$5z zzyGp+PLEWFsIxf(a`=s!v-l_2NcOiWLRN=Kj_fUOo zvhd(9A$+$Z{J=XEe$y{4oUeN&&-n=*SlF0xu5Fo@L*Z`9uFeIc=2v8(|i46ov1S7TeF?k6Cv!t`2 z!KzeIYFoF83#b*LO4_P%3t`u`V%3VRUEHg+uHEcj72Ll2-kX=1Wa2?-&uPw?yZrb5 z|NXb`zxUdDY(UmH$a?Ndq@h1pZi{={F+?GDl zcU*H%UvJN@RdK55H>tSJjp4Z5jmfxP2)sd%ZxqdDH=8Y@xyg;2aZ3Stx98z|xIGVd zV22xB_?77gg}xIdm;nHq+9n13;Uo0>V4?heM6MB_mrK!Rh%SrYOBT4b#jUmk2t ztdbzjm*6oeb$YOU6?OEi)nkeJNJ5XT)j|@6tcu2h>-y$79kx80M|M|ymDZszPYvog zm=%l!6LTbt^wI(SO)gs|L8+yJ5{5MdBl_ZGc%>d|)>ei{DQJiWw9qmw78G-Ti>M@4 z1>+JHdNUpmj!*!s8<|&*Cu|La;uvER8`4Yr%+-*J-9V5$utFb~CTFSUY1g zJj*g+5w^;LQv`wA3e)^~N-U;zT0t__D z7tKPPN-MLt*MpzpQ4b!&;~tzMcGilf3C$ja5LWRs51zmw8Z<8&O~ezlYLTH*e3%PQ z=Hut=evyxhJ$MSgRPiehevRL#c-n(!@T`jGJa`^2aLe(S-1OL&=u_03ItU*C0! zcf!=lw(@bJEu;9pENxu5S`Q>t{7$I$ii+QR@G4#--|M$r{l?af>3kl18DH_>b-W?r zxB(TwgExhPV+d1$xA^;mh<3e*#2+Qp979@3fROSh3AO))i$I9_q6h6@bs3sj*NlQC z&>Ro0(~SuWt;*YfFR3@S3G}BbVMgWSMy<7#sP;DWcWaHP_xb(uATDmq1S=5h_tcDn zl442&rnynn5_UCi{26~4d|#G|M~idKf(Z0~C?l#YI+_nS~Y)-)G#qOr)x?^KYX0yZKmH)-Pe~YfHsHJoqQx z@!&F1QZ5yL%?8nY9T)Rn?BfVV)<)Op{syBEvmj}0#9%bmDH5Y^rs6%?+7OMdNp|qT zQ6GuuvD%OpkBcksiF6Gtd1h&=(;}@QJzi=u)(lj1Fh=o!`)rHmk)O<4HgL683x%43 z37zkv!+b&=l|2&1e)2wyXQU?Z`^1d`abIy%Ag(Nbe!I-(*nv5m^VTxPyfTcw*60hw z-DC6%te*Fd(brk?dZQmkS*&^FYv61TziDLl3w^zie3N_N@Rj#K_Lc93B4MA>1E+5U z)E?xTots@=4~DQC+Jk&+pYtG&bM&C#UP_X&h^>zn0LMc?3BR?*Vkl0)7+NI8zHWVu|s6w$QL%GDgCF2Tq45{3*&DQcRC5<ℜSA;#ADMw-N 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˄(Stwu(*u#4sJhJbOqc3mQXp=!b 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 I%HrVu2lzy6YXATM delta 16841 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 qqCvA6s3B position[0]).max().orElse(0.0); + double h = Arrays.stream(position).mapToDouble(position -> position[1]).max().orElse(0.0); + + this.canvasWidth = w + 200.0; + this.canvasHeight = h + 200.0; + + // 打印节点坐标与画布大小 + System.out.printf("画布(%.2f, %.2f)", canvasWidth, canvasHeight); + for (int i = 0; i < position.length; i++) { + System.out.printf("坐标(%.2f, %.2f)", position[i][0], position[i][1]); + } + + return position; + } + + private double calculationRearNodePoiInVertLayOut(int nodeIndex, double realTimeX){ + // 获取后置节点的索引 + List rearNodeIndexSet = getRearNodeIndex(nodeIndex); + for (int i = 0; i < rearNodeIndexSet.size(); i++) { + int rearNodeIndex = rearNodeIndexSet.get(i).intValue(); + if (!isPosition[rearNodeIndex]) { + position[rearNodeIndex][1] = position[nodeIndex][1] + shapeH + vertInterval; // 当前节点的坐标y = 前置节点的坐标y + 图形高度 + 垂直间隔 + if (i == 0){ + position[rearNodeIndex][0] = position[nodeIndex][0]; // 当前节点的如果为第一个后置节点 则 坐标x的值一致 + }else { + position[rearNodeIndex][0] = position[nodeIndex][0] + shapeW + i * horizInterval; // 非第一个后置节点的坐标x = 上一个节点的坐标x + 图形宽度 + 第几个后置节点 * 横向间隔 + realTimeX = position[rearNodeIndex][0]; + } + isPosition[rearNodeIndex] = true; + + if (existOutLink(rearNodeIndex)){ + realTimeX = calculationRearNodePoiInVertLayOut(rearNodeIndex, realTimeX); + } + } + } + return realTimeX; + } + public static void main(String[] args) { // 生成邻接矩阵 @@ -182,6 +251,6 @@ public class GraphLayout { nodes.add(node3); nodes.add(node4); GraphLayout graphLayout = new GraphLayout(matrix, nodes); - graphLayout.layOut(); + graphLayout.horizLayOut(); } } diff --git a/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/graph/GraphLinkerRender.java b/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/graph/GraphLinkerRender.java index 098d24e7..e04fd355 100644 --- a/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/graph/GraphLinkerRender.java +++ b/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/graph/GraphLinkerRender.java @@ -136,16 +136,14 @@ public class GraphLinkerRender { : new double[]{toX + SubProcessConst.SUB_PROCESS_SHAPE_W, toY + SubProcessConst.SUB_PROCESS_SHAPE_H / 2}; return new double[][]{startPoint, {turnPointX, toY + (SubProcessConst.SUB_PROCESS_SHAPE_H / 2)},{turnPointX, toY + (SubProcessConst.SUB_PROCESS_SHAPE_H / 2)}, endPoint}; }else if (fromX == toX) { // 垂直 - double[] startPoint = (fromY < toY) - ? new double[]{fromX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H} - : new double[]{fromX + SubProcessConst.SUB_PROCESS_SHAPE_W, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H / 2}; - double turnPointY = (fromY < toY) - ? fromY + SubProcessConst.SUB_PROCESS_SHAPE_H + (toY - (fromY + SubProcessConst.SUB_PROCESS_SHAPE_H)) / 2 - : toY + SubProcessConst.SUB_PROCESS_SHAPE_H + (fromY - (toY + SubProcessConst.SUB_PROCESS_SHAPE_H)) / 2; - double[] endPoint = (fromY < toY) - ? new double[]{toX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, toY} - : new double[]{toX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, toY}; - return new double[][]{startPoint, {fromX + (SubProcessConst.SUB_PROCESS_SHAPE_W / 2), turnPointY},{fromX + (SubProcessConst.SUB_PROCESS_SHAPE_W / 2), turnPointY}, endPoint}; + // 节点横向分布 连线按照大原则 垂直 不存在 fromY < toY 的情况 也就是不存在 连线从上到下直连的情况 + double[] startPoint = new double[]{fromX + SubProcessConst.SUB_PROCESS_SHAPE_W, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H / 2}; + double[] endPoint = new double[]{toX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, toY}; + return new double[][]{startPoint, + {fromX + SubProcessConst.SUB_PROCESS_SHAPE_W + SubProcessConst.SHAPE_HORIZ_INTERVAL / 2, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H / 2}, + {fromX + SubProcessConst.SUB_PROCESS_SHAPE_W + SubProcessConst.SHAPE_HORIZ_INTERVAL / 2, toY - SubProcessConst.SHAPE_VERT_INTERVAL / 2}, + {toX + SubProcessConst.SUB_PROCESS_SHAPE_W / 2, toY - SubProcessConst.SHAPE_VERT_INTERVAL / 2}, + endPoint}; }else { if (fromX < toX && fromY > toY){ // 目标节点在第一象限 double[] startPoint = new double[]{fromX + SubProcessConst.SUB_PROCESS_SHAPE_W, fromY + SubProcessConst.SUB_PROCESS_SHAPE_H / 2}; diff --git a/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/web/SubProcessWeb.java b/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/web/SubProcessWeb.java index 7c2cb026..f412dca1 100644 --- a/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/web/SubProcessWeb.java +++ b/com.actionsoft.apps.coe.method.process.subprocess/src/com/actionsoft/apps/coe/method/process/subprocess/web/SubProcessWeb.java @@ -265,7 +265,7 @@ public class SubProcessWeb extends ActionWeb { // 获取节点分布 GraphLayout graphLayout = new GraphLayout(graphAdjMatrix.getAdjMatrix(), nodeList); - double[][] position = graphLayout.layOut(); + double[][] position = graphLayout.horizLayOut(); // 组装连线 GraphLinkerRender linkerRender = new GraphLinkerRender(nodeList, position, graphAdjMatrix);