From 531aca1ffa833e73e4313b03d2459207184a094d Mon Sep 17 00:00:00 2001 From: miettinen Date: Tue, 7 Jan 2014 06:26:14 +0000 Subject: [PATCH] Checkbox to dependencies to show or hide the arrow head (refs #4619). git-svn-id: https://www.simantics.org/svn/simantics/sysdyn/trunk@28591 ac1ea38d-2e2b-0410-8846-a27921b304fc --- org.simantics.sysdyn.ontology/graph.tg | Bin 164276 -> 164407 bytes .../graph/Sysdyn.pgraph | 2 + .../org/simantics/sysdyn/SysdynResource.java | 3 + .../connections/DependencyEdgeClass.java | 3 +- .../elements/connections/DependencyNode.java | 12 +- .../ui/properties/ArrayDependencyTab.java | 10 +- .../sysdyn/ui/properties/DependencyTab.java | 10 +- .../properties/widgets/ArrowHeadWidget.java | 169 ++++++++++++++++++ 8 files changed, 201 insertions(+), 8 deletions(-) create mode 100644 org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ArrowHeadWidget.java diff --git a/org.simantics.sysdyn.ontology/graph.tg b/org.simantics.sysdyn.ontology/graph.tg index c232a28f6253e314aac5c7dcd21086ccda985812..9e2864947eb09db68b92b09fca9cf5630fb97f7f 100644 GIT binary patch literal 164407 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

US4MQ+(hs{(=Ffj zj@7!hP(7vg%%7EEPHZ|i6;ioT&_6553#<^%FGy|>bSq2pTvM{XpybYi&UZdrDaLiT z)I7D=YTMC_Cik}b#&Fx!2K7PqXW*3;bcd?V@W7CS>jiA0;98tWUIf z(;gg<`Q){@)Eh4}CkLWOX?+h_84@ec$g8_8%`=ixd>UnuR_736zs_|g-tU^T~FStb?#_(EQ|6(oP1 zVF_1f=Fco}9c^5Q&#yq*V9+&NRH1^sUZHJA$+JZ|UqCur7-a zDq6LZ|D1i(Gx&!M*sgFN9~E?jd$olSG!MEkM z3X_s>Th$S6I@R1}n){`w@7z4u8pZxk$4><+$3}95Tky_}T$u#?et}~>IldQktRHVp zjRAhMz_E@TA&7xEa&m<=jLyqP#`oZ+uH&N><}Uno+^k?RC}Cx( zYs<*a)-J3{cf3}zd}nU($X~~6ZbJ02b`n7Qu5CE8f*-8@Mnf8B+O-+i=j-IlTrH>()uOWzh3*t>Ucf4i{@ORJ61c7JPP z$ADWT>Kp1G9zYIoV~#&A4ul$lbpzhTu5V#wPfY(nOdsb=hkHfgaJGLWeEVX%^kWe@ zFjx%B1Y$B&-P_N#jF1d=eO;urNuDieaah*cJhN+C3%hO|Hez?g5qolGHxkuR7>OLpzUP9!pqHy{ARiZu~_R}tJ)c3Md zK;}k~IbmLzO(Qe)i9s;q=tA|)x4^u4rad;(jLdHo=GB{b*GC)M8}-o3Bi0rg0O15W z`384~u;4aQ3!>OlZCwo?(T`VO7mT4UyPDk=3;lr`Q-`>lSb3r_ugy!OXA1j{m{2So zTB<7uh0-a|v9D}P#&A&J}hobgwVKFMy-CoeIgsa zk&UZUMb_Hxom`9J0#(=$wmn~_AVhWW)gyaG`p2>K*MIRgW(Sl9ibIZ~8^YCVg>qaN zoG>hg1-KgK&{HGh(LrqqxT%R4Op=c%>yRqtmJoF5svsku#cVl3<7b`YgccU#bo;uKnrm~%_ zWoFs_XXY*v#JO3&u*cf{DZ6i>V>o4Z&(Of|GH@Z!;Z|G|be<(H+-U3dbHwIe*{Rqg zRbw-zvlG~LXtgG#PB_do?CGy@6(p?D5+g}iW5!bP4s7(WL7><?_Jn@noYp)tYLL z&){xt`}X<-8is5pVDYHG-oM5~u&EqbQDbT&SV}_H#;xl^rQ5w5YrdhM4xNVG8Hpbh z*^QlibnP{4W;FJo7vBTNq>bXf1S1$ao0h0fx-uj6X&l1{>QL0qrzwQgLJ4xWX*Y_W zMcry5Dwu8U#rVg0N?VppLK2!Wb2ZeNH6fOi;dU=BPmIh+;#EVDjIm^*J_>^&i`eL5 z=wfoTwQF~)iA2sP&g!#L>Tlkg%-dmx6%nm%xOESI)i6oY>%F4%h7#^{=IAiFNjR&w zBmG&{aIKMNUO$GTNJ1k76q!|9_SS)y&cV-*r(yEt<$oYM#9L1u1XDsouWdy_6>2R zWeLmWG&Q=J=V4|q&ZwWB>?e^aorR^4>Y-Ls!WO5tgoEsQVN0}%yXNp$JwQBH z{sn?wySQE7)!_N8k%^w^UT$7Uro^jWOQt~St9843DKaOCR zTPZeoLm({ifL*v7K(@nh0R?TjXG8B@_xV@HSTL9@@2rjDE~34rxCO?Vj}tubsW!Am zW*BCF$s*3SQeIi3+BhlEmW|dqXxQ0nV{>9oIn3SKE8^`{e?RKQ9P$@|XB&BTjo^3% z4`A#b9~niCw#_VA)E0Ih9r}}lX*f?X zjWnzcw|{z*Iw!wu!C;a&x5%tJu+1a8FwLeTo#KdFDA0wmQZ*cqja^OUAF&52RsQa~ zpvqqbJ-E~sl|AA(W?|gigFn*UY?)~6;L(LiEL+v;Sf!n87kUV}4d!hw4la`s_cn>M z#+C%w4u|Hjx7xt*H`R~3hqZ&fL%k?(9=5Lhx!~I$%;&HytFipnuK%XM|4TuSEa30A&7Gd0@!nP#;z9?J#Rq0O%p4T7Ob^U(5=Ub*%TUhK*dT`1 z0GHQh7}3uQ9`d0H`KyG*F^wo3yL$R!o;we2YadTfaTV=}y^!5U%+$6|w9xZdqC=mB z6^EMKEU@|2(K%tdIyJ%RwXhb84VssZ*SAmB#<^6#v^LW-2}{eE4_jNnwPh^AkzlG3 z&Un@)F`wa#I8+B@2lb|j1BR*s{V5%H?uNU6UK}66WLm0Gt$|t=HUnZUQB5?kB}87s z$PFgUJw{;<{R^h);|;{8Ai=v?USRi&5)DjajrJ(+c8q^%*hbWBbd(|Y;7xb z6sf@K2LlbGn&m6h16uO~V0gY^u2m)!>^e*oaLj?tlX9^whCCs=cnSh(=jJWP8!O*E zwWYMR2d9nCs_nt#Ko)5j!U&Fa@4?8#gII3l<_K7)pFH9uH6yD8GW1XGgbN(Fq#6Vr zxB@>~JfeYeQWY#`P$Fh?Y-1?HGXiLHR3SyTG^;L4L+y}887mN&FrZA;LofwfPPo!mV_JW2qy0bod4GK|iACY*e%{*<3 zsTwSz;z|tA*;DV|(a)r6SfQd~<~g*CCETo`0}q2bdvav!YlUv_E0(P<7q0UeF!`%| zp>X}Pf*x8z#hKla7N&Sb+M$t2cr=rk^bAB1?cpVLE1OxT7+zo^YKh?A`3Fdk=XSHmvXj5ZT;rR|% z^*GkgX~p_4b|ArqugHavtp~7{iuw08tSg7U8-vgs2??{{C5tvp%X9@*oT+TwdpKqA zx)r^r^{&2tS*aXDkM#pkoyJUoMOQMXnK+iK{KwV~^+ z4Cke~34sNVCI*8ZuARt~ZFIbaIY&4_%=;dk{l_8NY2KtQ2%}*N;R)iTh7h*C6ZNrH zuO3t2`)C&GqXa*`gmEU;s}0j(K^trLc+i6_arQ!TxXeLD*1oyS@2XUB6K;R^;1+x+ zbM+B|SFmb@dw$&;-G)_yIVv2VSC*+1E8N3H*j2bNI;Dg?L=(2)=AzvN?<(TT{RQhd zb)Cvp!alKHpSJ6J3;dIU-ct&9tl8Z%_e_|{eY#1;LAE*`0>v)reWzNJ4c>`h78Ukd zMw+~3ft)7=E{c0FxFF~M{KQ)m3&b_REj;Jz#EGKIU$aL0!8Ta#(FCKLAA>f&?mK{IXv zI2j{w*Tdv4&d_j-qOc{6Wkhsn|sk zbDK-nXbX4BdY6pb6RMAMT$$-J29fHooril^>HTaa4HH#(gpA25M7UE5OZOp8t_$mQ z6vCp1xtCcg7Voe$a4pmaLA^DWu`A6pYr!U#m8Qp9lUOt5KU}TUg;%zGA)!{X(D5Lf zUg8?3Tw2aOq-i;_x!|Q)h1prCPGR&))d?ds{&2pl5>8xbZ~OdA%QmZ?BL#iW$@uto z7Wu1$GZax@cgagtwhDS%HOKGo13}J;%16a0H?i%DW zp4ORDjnu3p9_)C*`5ll2EZwKTEp^zJpeHVgqF+2h9=X?p=)&E3Y=lz#Ln~CaVrv}> z>lSD*JZoib!nOF2&9v4rfdok3+TO`##s!Zx*g`@imKp=%l^tAyx5X0)Y}e)%N{Dlc z_LMHrh4m^;0hSrtSRza|T(I*vj_MxH=H%0@`Od#ot|-*s%dD1fDO|sspa+%k*ybEN z*5Sd{S#wu1&p)}?|JnV;;>@j%@S;K_n=Hb+7Or0)XfK~j4Roojd zGiR!tH)mA3MeE059?hz3D0qL4MYXPQ{VYL`D2>(|-^FhcNb|SkQ{d|ZoZViSFS{wuo zk7MH*zu0Gx&|kZZ=NQqA!DkAAW~|UJo1s`e4?C_{N`^T0<1nJaAvyw)wU`C8fm3V5 z+bf2Y>N=c_aX&}r5^fH|Tb%JMr~QSDH!|v}Rx;uIi4M-&Grn-<_)#V1Ha5$6=zGp$ zU_!N+I9oxj#6NSl(-iPN9x$w&Bu?Jy?&ripCc@+))xDahR_-9^VWklkQs{;>UR;@d zGv|T@y%6jWE0a9Gd+N~s$9n9(#d=I3nxm|g!|@ZnzdB5~9#I-eovlWRE4L6QIQ|WB z9#U}pKy!Ra;rb#$&n}N_YsZ5>>$b`1gSc@wYp?(#PffUeJsfY`h|QbAYqa!0j~z?d z6Ltpr_F&%BgWk4<2hHR52(}b(^k*(k+#Sd!1#VkL@tQ2xq9IYZU1{2(q}h#`cZc1D zp!IQ~Ql(nB9wxqzuC%YI@71BjFQnr#dNFL5E+MpNL<}f4r3JZFd0QR9{0bp#zV#B!tsRiFD*;IC}inp zf*wX4J1fguv4rp|%b?PwVhH z3hvdR^w(`2)~~qI4~%nUdL;o|yi)zyznwPUTIi!&)$#jL`?a@*km@~CsO#eR9(>{c zCoiFAV4!*l-)qYQGb5T!6Cp?9SJY@0gC4HfrxNB&kVS$sO14a+idaS9(ACSb^_uI{ z!qswG-OI4ak0Tdjj@R$d?W2(KH$5v1YX)xElF zQ@fUQtg?74=jktsfX=BLz5gr2{Om+g4GdkJ6C--Iesz z*_HHEIgoJboRu`vZbc=%)kV5L6_m;wY1?{e&Cp=jvp!!QP^b-^I?OUUb!c$ys#RfI z0UO%5yTr*SoaSh+!L80N95@U|Y+}BhLZ&|4j^TwmEo@@4Oa5}93V*?>_U8-NKO^W~ z+~y7=k>A48Z6tpJ;h)f@rplP&I;(Z`TlA2(k6E9)3P&a)$Z6 z`JmXjnq#`VXP+LbEtRE3eFc)I4cC^Up%f{4UuiE>QnJ74-?OzTldBIDB7LuA;AXj= z&hD4rZKSXT6mLDs@38A{FQ|H}pl4ObaWHQ;&f@k=bHN&id7EL)L?*Uj$t28-!X6Em zvU&e4GGjIZ7VZP$qX1qEQ-rw%aX^;`m^oiwvS`oN#+8_fA)|P`&h&8KG+(aM=;NDp z_@tP$1i8z@+QHgd6Gru1c6^pprrk~6EewYhOTtS{W+PY>6^k|qu}$ubP)N?IVZ zPNRf5W?JAEfjwLCMz6J4sf>9W!da4)%kTzIIZJ|ZqPC*9wyL*w8pnyZ6mo8Fxh%h- zaQ(G{9#Fui|v;``LD=)VS z`LbEG7t58GmhdJ%Jk&Kg)8i{+7~qwp;l|1BSiLPz6LXuUkRE1&`_}0eFw+np#>Cz* zGBrnbxb7s!5~(SqNe-{`S-WyL8t}qWO3=l4fANL!&2;??djbX8f6i0`&pkG`@Z4xS zrY`goni)*Oo0u=ljJ@ZotGt@4u-~+9Vn-Xbj_0WLlz2?N=bYPM3pJKy@dC-Nb_{se zMffW}L$15NxURT!pR^EY%9DDWI{_dV&=56{$|&<~phhv?e}2uW^sG8W#>uxXSoY z;eASp4YX(e8pjP@UnTI&zjbG>Ly%H!&aO=AVJQB2DkUowk4A^OGg#wMm-2)E?b&)@ zo~>&wTQfq^CcQ_{qe{|c{qtN&4)A@e;s+XNIw+qpV5=W8b(|GNzb>WPu9-N_4z!v( z(pp6A8c6~>f`64l9FFHhxO^f5wT69(+g;^@VrbZWUSJ*j8@g6Ir?<9V`q6MgLKaS} z4@ys^rNtZFFUGO-U2RN#(Z<8qbNCfmx&;fE0!i1#n*@wId>3MxfVXRS+md(>*Y!@C z?)XIy;&6&0^rE;Oz*}fIKZGJoEx1!Hk2kk>wx-7Uyb0%lc*1%d<2!p(oW8g36j#c)wi9;G#dLa-hb3_h zxX}Pw{Ot#xLc*iqJo165E1&JAc}u-!UM8d0$YgZRG6==79^LIVY1#>mjkvWG9Ejz# zndUHw8{G+8Yi^-pgh>omredGRd5?Q$vOYap-|ZLwOy=hE?hZFnhb}CSwj^DDU3K1+<9ZG#T?+oj!Ud+kyzZKVC&kHMM zj=cK%>p2dxFd(%WQnEh>DafX`ea)dDf) zy@j0rnZQ~y<^X`n91%atjG9QD!sM6#^$W9VE$x|&DDLdT{_=-2dxMHY&U>&DRX&iIQ$g6#1n=Swd<}2HN31>X500#D>>o1tT5-fRJsD3dMn?p zaQ$NIA}%Ui4`*OrUJZ?)w}F{NY!CjHqnKKqSz411J0r7q3fL+Ooor+7)g+!yLu8FK zDDd3|Oeohi;!tAN{60XqPhla%TY8woV7ddZ6H+zpcm->-nn!OD;*Gvh+FY**b(-eo3E}7|HBX@$VTX!z_v)23!M|gCYIYYSK z*cDb>=2&!`cjruRQ83X6!cq`=ql^8BU3d{Yn$R!?U~GJ^i|sA!K%q&*LT61$C+@UP zu(0#l*_@uhy6zSBharC*8Uo5$4%^t9+1RFsaY`qwwxwEmp8lRs^0$e_IV=kBXB6Tq zf2E$WQb1{V4jJCz;qRT{T{?1?y$(McgYM2`YE2Y~w2Y-##Ip*$lvz-(`fHo;*7Egm z)?1GS*<5EG**atp3281_6spsD>GFDGYhUlCJ2LfQtTLMmvz>JrBVqtUbKR+q2Q2Hi zHm<@f1)U{|>#8Q|lOk;JuC1-h$kKhCR;Xett%?<1q*D&BEqq5M6nIv}v_A^9m%V7S z)x_U*$z+1>FLl0%3tuS>u*enkn zVw62@4l#j)Peh)tHmO5r+u+AkcQxx zsc_8f)|IVo6|;gZ5bLM!r*&%R+OIs7MQVv9pD!APvXWfxzF?%yUpz!-^AEXj;;r!y z-2W@whvVg)nB`*=0n0=ehc~9qfciI~9xZ-6vCj7Vd*B0JzMT@Iud@gu)o& zg+K0-;_w=lg5oVBjd3UrC%vdRUij@kDgL!^XRivrJAZ4hon94O`jv3S7YzsM#oJ;0 zmvVid-dX%}5jpl;o6!v5M?&&!f|9hgaR5c*Uq{EKcq3#%uA_<5He#cLxApRE!3Ma%J+A_17alsnlAq{L zQVTAYHLAedDVu~U*|`XN>XY)S+2F8Ko>pm`h!}*m>mnEb7fH^-CsNm{Qj_;5TF0yyaKDIu~bG7g4Hv0c?sO zzyiA>T5yGVsN%EeANa$+EL7qJ5woTccSIa(VfTrJI@zJg>frOV9h}lvCR;Fmf-mU* ztCUD&{L7kEu~HrwnfUL5lH`t9$$cxZk<>bbNjrbz+ z&3Km!)P>sDb;$&FHTf{G)V3~l>j2iNuHe~1`L6CPA-Xkn{$TL2k{u8$nO4e$5#x>h zLhp{4b#JapxwKFzJEh-Q6qeYqwWA( zk40(l?{@esD#ax8!opHYHF0Oj6$URHUCK&;#VVynYW({rm03E~@bEtHPkxNKFUwibS}9OBZzDi{E9r;JSo zTsb`00H40}y>yUV>JDbf6ULTVF-Y63EGonmMuml!YqNm#o$=xGDqXR~9TM^35g#4# zp%Js}`Lh_FpIG_%`vk`Cc^ zAJ&M~J{!L8QAopIcdgK)baXcOJLL=7cn24XV&(uGEE=6?$ULP3yQDiIas2=FA^XvX zus-pR_2Q^f%q6B*CCfFb)lw(`em}hAv(GE>@1OJ+(m53Si_krEN*4kJ(u@vdQ{5cP z7#Bl#piYGe+M={p0*)|39uQj)XV|zHhDlRBS7#BLcA>M7PAMNWWhR$(7GXx2cNU@9 z`_AIv*`0+n_=@W+q-U!fh_KI1H5wtT#D`7m;MnZgtcVv!%;J)!7cpm#hvK9BhexdZ zY{sPf*(PV0%Fk|wSo!%rWMa?HX6l=<$JFgHee=yaw$1M23e9@oCkl7?zec_vja=U# z&c?oP6NO{`0}};l19MLlj%E`&Y>tV-Q9_tC$jbP9n42hsUgj7sXw~_i?73zmbM+5% zOeT(%=KL?5OdK)0fA}{{COARR!IrIDCJeFHI3{8p>{&n9vv_{#X(B%dXJX}NuQb7l~*em(TLOz+GZch&r+uJ;uD1A$Ap7&+xr}PaGImRtB;RnC4p5#}x!ed1X z@l#udP)k6U10h?o3>6!ZN`D3)V(@&!Eb>a(KkFjoS) z&!S@n-kdel$Wu|55}Rh z4h#1E>o4AX3$-k~)W9lPcnT)E@MiDAn*=PK*M)OiqwrPk~fj{2^bNG9Smk$rrAoGkZyfAG3*fuxDuVHLq5bNE%@s>IhzPZ8*IXqngQ}p}! z>ICgRPe5(nAl6AGW4Sy>#i--i3aH~*0_INyx{VeKrt}PzVlJPqfcl;$V173??i$%q zA7%o=fOK1aqiKBRwXB02O8yRQT zrc{){dWMEdh6!w<4TBd@eH+6Hp~{^KsB(vZ`5S-S$%DqwkIh_i*{01K^tVp-a+}#b-qyxxCH%r2e@cMQ z1>jthydh97$T3d-fCVW$HHH=}Ka_&gTF}xjKdvqZ+TxoEAsrqoqz?HF>(F7k2e86} z5^;9xCcN3pWQA?M2`}GZKZ176DR0+vB^@zsUC%;-!rzs$Dth*>6qoKL`>uezh1@Dq zM}%Kt)lHR64ZP2lTa;a)gVnOQN3QA$uj=liYH?5%jyk}=WtmJ@=<0G^DNk$#Oxes7Gy?%6Sb z-woK^-`=wW9@9?hhA3e z>pN@FqBG$NZ<%1X*oz)-BT0e!ZDQTRBQ=%qS5ZC_c!a41LtlzcR-1KgZ*QZW69VW&8MkhSb8yJK(|}l z1A1NLr6WN34)w2EecI{6!*X$Forh!BEthW z>|YTSs0mM6d3yiK+Qb=WtT>}6J=PlK*^RYJwLS{jbfTb_o`r%w6GuVXa!XyKBSi3I zh0s9VH8O#1wm|2Nc&K!1+We_{@^8Vf5A#gw#^xr`FZbpXeChMrr6W_5ExU+q=XoKBidQX8;PvNw*WhQ4`50UD4<2&IM*V|_@QGJe4zFHiwrVw8-BnxF zf7)rigSEcX`&X~(T~!;zv$TV?2(ER^(Iihh_wfhc)?gE%*%}+W6E+cB*VNaXfLe*a z2>Ya{*9`5RbSmT}PN-zNP_#JNUGG8FI=z?wTjsbdomi@A%1gug@a!>uoOEge<%XVN zfF*<&2SPDKbW3G|lZLIm!<+b43QbIFe~V-eUHe-iL#tMpKQ;7mH~_PD>3m6!Ssm|^g78!3Bdwo(3z9~Hn4%xcf+2EBhnFFkbOzqDvFZTnv|r@Q#2 zcV#L3zg09VW6`X{qig@UlKB^opF;&*`(G;AjOPE%1|#zswwN%n`B$`=GY2^NlsTzQ zfjNU6+k;iI&>T6t<7vNGJ9lF>4|^G{iM2~l*e-vOuuXnlS4peouRv8P3${uG3Xr)phAUby9F$N~cloG7@~1oU-%z%w0VBk|CE@5Z>b7zCY8y zeBE=*HyQR}hW=B6iNVnLfH7k(junI(bLK(w7Bx)C^N`{!4v4W3a(Wo^{ty!@V|b7F z*Mk$8w^w}JrA}O9%e;ra5iT!DFCqf=j>b5;2Zyi6v*R}_;qw0U${YF);>tTa$FrGC zQ1z{EQHOUbFRd@+t3rr^QjLO$TQ~o5@0;R(Lf097%6C8V+eJN9-E_t0-ve!TlD44&(N{UB1~$r;TSbq7_YV zx2QqPsv>o|}02DFbl&|!h5ifm%fee&H zoFax*IGEEVc^r7idU-@nL&78LqbE}K5|st~cAwIhmH)#SudNM2H{lf-y7{A)e97hq zoEKrV1|_O%Vch#+xIuI@uR{OOn-LAxGKh?1-b_N@6PJyh32=lkZ-x0r4OiLbf#=vp*#vOB zOPYecK3RN8vE;6U?!|PqcH|DU=<-dBfyp7Kt{1as49yLx1i5qpwt9^+0|U)ek)1FV z#wGkohEHgUI9DxPN?NoDC;~k_*=>v)__~|C|GPgIxYeSI@7j6aqefLOC15@+!78}= zsprj5+co*EfW0XOPTp56Pb~?DvAU{DkY5h>mVT3R(BF-Kg&y?P+6*L4rCr15Y!~9x z_#sx&8XG3T#%gN@y-&~;N6dbXuAE43Ke5gZ6Ay?ci69biP7D}xGeFCx|$7H48`$e45s8%j7 zjMso*xO@A0n4~_~)I5yAeZFc;N?A3p2->ZU15(Fgb++Ur)P2oCU%UD2r^8pXuO59# zg1YRD{prr#XDc%3XAAx7d6H7X;qoKW++g^JB7Gse80=b1|F?~d-wyYFTkK?%eYcuv z-_lc`wSa&9_rllzyrBOxq*gm^t!%H=o|`(y+dbmBhKHk{)!EbL!vV8RH z`v+`|*^Q0+-(DZpy@Wx!|G~-h%}P^6E0b>E^ zyJ!LWfc{2S0~QkOhwnT<$7N#007&MMEdvM8bSCOmBfMKL%G8qd<#YmEz9fm7sfaEU|#!-OeJx!-L0k|NX00^~^PfN?Hl{`;} zQ`VXuAn^-Z8IEkK09^oo0*FC00ly8H_vBhVuo!(8WS9VhCtEJPeT>PtIWWiA0kd$+ zVnnrJR?3fL9z3BE7?=mMo|y*{ySLmbU2Z0fiTbDWB6pL85{h>u~V1~L@1T9 zVUm{Gk<-S-VoKz8P*vAq>NrQj_;Hn8f0iiwu zMY=tb1Jq==Co)1)3+<%lxiS$65^l13ic!V@v1e_7k7eOIP?i6>xRS+W%2q}q*4Lw5x zbWKUVWD=2I;E`;Rm4Q|-S0@#g(wjws_;Oew##qjik9+$Tpe z+L7ZMf7i!V%Kz3V|LYR`WrM$1f`6~S#*ZIm`n~vSyb*Z3ok7`uS&b5}%Vh8NU5=@oG){$ctJR6qo*W_3nq+er7p2}Jf6Ne-T#yG#&_lC r{SU3DyhHs?S)qu2U&~@tY@c4EoXoLSj~6;V;VnctS+QWI9-I0PEzv}` literal 164276 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 SYSDYN.DependencyConnection.polarity --> L0.String -- SYSDYN.DependencyConnection.polarityLocation --> L0.String -- SYSDYN.DependencyConnection.hideArrow --> SYSDYN.DependencyConnection -- SYSDYN.DependencyConnection.delayMark --> SYSDYN.DependencyConnection polarityPair = (Pair)properties.get("polarity"); Pair polarityLocationPair = (Pair)properties.get("polarityLocation"); boolean delayMark = properties.containsKey("delayMark"); + boolean arrowHead = !properties.containsKey("hideArrow"); String location; if(polarityLocationPair == null) @@ -139,7 +140,7 @@ public class DependencyEdgeClass { location = (String) polarityLocationPair.second; String text = polarityPair != null ? (String) polarityPair.second : ""; - node.init(text, location, delayMark, font, color, 0, 0, 0.235); + node.init(text, location, delayMark, arrowHead, font, color, 0, 0, 0.235); update(e); } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/connections/DependencyNode.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/connections/DependencyNode.java index ec84bbde..3b2bea29 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/connections/DependencyNode.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/elements/connections/DependencyNode.java @@ -66,13 +66,14 @@ public class DependencyNode extends TextNode implements ISelectionPainterNode { private double angle = 0.1; private String side; private boolean delayMark = false; + private boolean arrowHead = true; private transient Triple shapes = new Triple(new Arc2D.Double(), new Path2D.Double(), new Path2D.Double()); transient public boolean hover = false; private boolean dragging = false; private transient PropertyChangeListener fieldListener = null; - + @Override public void init() { super.init(); @@ -91,10 +92,11 @@ public class DependencyNode extends TextNode implements ISelectionPainterNode { * @param y Text initial location y * @param scale Scale */ - public void init(String text, String side, boolean delayMark, Font font, Color color, double x, double y, double scale) { + public void init(String text, String side, boolean delayMark, boolean arrowHead, Font font, Color color, double x, double y, double scale) { super.init(text, font, color, x, y, scale); this.side = side; this.delayMark = delayMark; + this.arrowHead = arrowHead; setHorizontalAlignment((byte) Alignment.CENTER.ordinal()); setVerticalAlignment((byte) Alignment.CENTER.ordinal()); } @@ -196,7 +198,7 @@ public class DependencyNode extends TextNode implements ISelectionPainterNode { if(color != null) g.setColor(color); g.setStroke(stroke); g.draw(shapes.first); - g.fill(shapes.second); + if (arrowHead) g.fill(shapes.second); if (delayMark) g.draw(shapes.third); } else if (hover){ g.setColor(Color.LIGHT_GRAY); @@ -206,13 +208,13 @@ public class DependencyNode extends TextNode implements ISelectionPainterNode { if(color != null) g.setColor(color); g.setStroke(stroke); g.draw(shapes.first); - g.fill(shapes.second); + if (arrowHead) g.fill(shapes.second); if (delayMark) g.draw(shapes.third); } else { if(color != null) g.setColor(color); if(stroke != null) g.setStroke(stroke); g.draw(shapes.first); - g.fill(shapes.second); + if (arrowHead) g.fill(shapes.second); if (delayMark) g.draw(shapes.third); } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ArrayDependencyTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ArrayDependencyTab.java index b31a23ea..95b66dce 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ArrayDependencyTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/ArrayDependencyTab.java @@ -34,6 +34,7 @@ import org.simantics.db.exception.DatabaseException; import org.simantics.db.management.ISessionContext; import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.ui.elements.connections.DependencyNode; +import org.simantics.sysdyn.ui.properties.widgets.ArrowHeadWidget; import org.simantics.sysdyn.ui.properties.widgets.DelayMarkWidget; import org.simantics.utils.datastructures.Pair; import org.simantics.utils.datastructures.Triple; @@ -48,6 +49,7 @@ public class ArrayDependencyTab extends LabelPropertyTabContributor { Button none, plus, minus, other, inside, outside; TrackedText polarityText, polarityLocationText; private DelayMarkWidget delayMark; + private ArrowHeadWidget arrowhead; @Override public void createControls(Composite body, IWorkbenchSite site, ISessionContext context, WidgetSupport support) { @@ -109,7 +111,13 @@ public class ArrayDependencyTab extends LabelPropertyTabContributor { outside.setSelectionFactory(new PolarityLocationRadioSelectionFactory(DependencyNode.OUTSIDE)); outside.addSelectionListener(new PolarityLocationSelectionListener(context, DependencyNode.OUTSIDE)); - delayMark = new DelayMarkWidget(composite, support, SWT.NULL); + Composite misc = new Composite(composite, SWT.NONE); + GridDataFactory.fillDefaults().grab(true, true).applyTo(misc); + GridLayoutFactory.fillDefaults().numColumns(2).applyTo(misc); + + arrowhead = new ArrowHeadWidget(misc, support, SWT.NULL); + GridDataFactory.fillDefaults().applyTo(arrowhead.getWidget()); + delayMark = new DelayMarkWidget(misc, support, SWT.NULL); GridDataFactory.fillDefaults().applyTo(delayMark.getWidget()); } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/DependencyTab.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/DependencyTab.java index 659180bb..615c7ad4 100644 --- a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/DependencyTab.java +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/DependencyTab.java @@ -33,6 +33,7 @@ import org.simantics.db.exception.DatabaseException; import org.simantics.db.management.ISessionContext; import org.simantics.sysdyn.SysdynResource; import org.simantics.sysdyn.ui.elements.connections.DependencyNode; +import org.simantics.sysdyn.ui.properties.widgets.ArrowHeadWidget; import org.simantics.sysdyn.ui.properties.widgets.DelayMarkWidget; import org.simantics.utils.datastructures.Pair; import org.simantics.utils.datastructures.Triple; @@ -42,6 +43,7 @@ public class DependencyTab extends LabelPropertyTabContributor { Button none, plus, minus, other, inside, outside; TrackedText polarityText, polarityLocationText; private DelayMarkWidget delayMark; + private ArrowHeadWidget arrowhead; @Override public void createControls(Composite body, IWorkbenchSite site, ISessionContext context, WidgetSupport support) { @@ -93,7 +95,13 @@ public class DependencyTab extends LabelPropertyTabContributor { outside.setSelectionFactory(new PolarityLocationRadioSelectionFactory(DependencyNode.OUTSIDE)); outside.addSelectionListener(new PolarityLocationSelectionListener(context, DependencyNode.OUTSIDE)); - delayMark = new DelayMarkWidget(composite, support, SWT.NULL); + Composite misc = new Composite(composite, SWT.NONE); + GridDataFactory.fillDefaults().grab(true, true).applyTo(misc); + GridLayoutFactory.fillDefaults().numColumns(2).applyTo(misc); + + arrowhead = new ArrowHeadWidget(misc, support, SWT.NULL); + GridDataFactory.fillDefaults().applyTo(arrowhead.getWidget()); + delayMark = new DelayMarkWidget(misc, support, SWT.NULL); GridDataFactory.fillDefaults().applyTo(delayMark.getWidget()); } diff --git a/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ArrowHeadWidget.java b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ArrowHeadWidget.java new file mode 100644 index 00000000..76981357 --- /dev/null +++ b/org.simantics.sysdyn.ui/src/org/simantics/sysdyn/ui/properties/widgets/ArrowHeadWidget.java @@ -0,0 +1,169 @@ +/******************************************************************************* + * Copyright (c) 2010 Association for Decentralized Information Management in + * Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.sysdyn.ui.properties.widgets; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.simantics.browsing.ui.swt.widgets.impl.SelectionListenerImpl; +import org.simantics.browsing.ui.swt.widgets.impl.Widget; +import org.simantics.browsing.ui.swt.widgets.impl.WidgetSupport; +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.WriteGraph; +import org.simantics.db.common.request.ReadRequest; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.management.ISessionContext; +import org.simantics.sysdyn.SysdynResource; +import org.simantics.utils.ui.ISelectionUtils; + +/** + * Widget for showing arrow head in dependencies. + * @author Tuomas Miettinen + * + */ +public class ArrowHeadWidget implements Widget{ + + List variables = null; + org.simantics.browsing.ui.swt.widgets.Button arrowheadButton; + + public ArrowHeadWidget(Composite parent, WidgetSupport support, int style) { + support.register(this); + arrowheadButton = new org.simantics.browsing.ui.swt.widgets.Button(parent, support, style |= SWT.CHECK); + arrowheadButton.setText("Arrowhead"); + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + @Override + public void setInput(ISessionContext context, Object input) { + if(input instanceof ISelection) { + ISelection selection = (ISelection)input; + if(selection instanceof IStructuredSelection) { + List resources = ISelectionUtils.filterSelection(selection, Resource.class); + if(resources != null && !resources.isEmpty()) { + variables = resources; + } else { + List resourceLists = ISelectionUtils.filterSelection(selection, ArrayList.class); + variables = resourceLists.get(0); + } + } + } + + if(variables == null) return; + + try { + context.getSession().syncRequest(new ReadRequest() { + + @Override + public void run(ReadGraph graph) throws DatabaseException { + SysdynResource sr = SysdynResource.getInstance(graph); + + // Determine if there are arrowheads in some of the variables. + boolean hasArrowheads = false, hasNotArrowheads = false; + for (Resource variable : variables) { + if (!graph.hasStatement(variable, sr.DependencyConnection_hideArrow)) { + hasArrowheads = true; + } else { + hasNotArrowheads = true; + } + } + + // If some have arrowheads but others don't, the check box is grayed. + final Button button = getWidget(); + final boolean arrowhead = hasArrowheads; + final boolean mixedArrowheads = hasArrowheads && hasNotArrowheads; + button.getDisplay().asyncExec(new Runnable() { + + @Override + public void run() { + if(button.isDisposed()) return; + button.setSelection(arrowhead); + button.setGrayed(mixedArrowheads); + } + }); + } + }); + } catch (DatabaseException e) { + e.printStackTrace(); + } + + // Multiple selections + arrowheadButton.addSelectionListener(new SelectionListenerImpl>(context) { + + @Override + public void apply(WriteGraph graph, ArrayList inputs) throws DatabaseException { + if (inputs == null) + return; + + final SysdynResource sr = SysdynResource.getInstance(graph); + boolean nextState = true; // The next state of the checkbox + for (Resource variable : variables) { + if (!graph.hasStatement(variable, sr.DependencyConnection_hideArrow)) { + nextState = false; // The next state is true iff all have hideArrow. + break; + } + } + + try { + if (nextState) { + for (Resource input : inputs) { + graph.deny(input, sr.DependencyConnection_hideArrow); + } + } else { + for (Resource input : inputs) { + graph.claim(input, SysdynResource.getInstance(graph).DependencyConnection_hideArrow, null, input); + } + } + } catch (DatabaseException e) { + e.printStackTrace(); + } + + // Get the button out of the grayed state. + final Button button = getWidget(); + button.getDisplay().asyncExec(new Runnable() { + + @Override + public void run() { + button.setGrayed(false); + } + }); + } + }); + + // One selection + arrowheadButton.addSelectionListener(new SelectionListenerImpl(context) { + + @Override + public void apply(WriteGraph graph, Resource input) throws DatabaseException { + if (input == null) + return; + + final SysdynResource sr = SysdynResource.getInstance(graph); + if(graph.hasStatement(input, sr.DependencyConnection_hideArrow)) { + graph.deny(input, sr.DependencyConnection_hideArrow); + } else { + graph.claim(input, SysdynResource.getInstance(graph).DependencyConnection_hideArrow, null, input); + } + } + }); + } + + public Button getWidget() { + return arrowheadButton.getWidget(); + } + +} -- 2.47.1