From e3e8b94b13a1b7491644c58dc0e726181c20fb3c Mon Sep 17 00:00:00 2001 From: Antti Villberg Date: Tue, 18 Apr 2017 16:14:34 +0300 Subject: [PATCH] Contributed profile entries refs #7148 Change-Id: I9fe9a7f6a3d6eb2d2bf3122d7960e220895cba63 --- .../org.simantics.diagram.ontology/graph.tg | Bin 56467 -> 56740 bytes .../graph/Diagram.pgraph | 4 ++ .../graph/DiagramProfiles.pgraph | 4 ++ .../diagram/stubs/DiagramResource.java | 12 +++++ .../request/ProfileEntryContributions.java | 44 ++++++++++++++++++ .../RuntimeProfileActiveEntryResources.java | 9 +++- 6 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 bundles/org.simantics.scenegraph.profile/src/org/simantics/scenegraph/profile/request/ProfileEntryContributions.java diff --git a/bundles/org.simantics.diagram.ontology/graph.tg b/bundles/org.simantics.diagram.ontology/graph.tg index 45f65af2648849bca8358e73bfd74d919dc95ece..af8d84f4113d025ab1048262eaffa36f37784f40 100644 GIT binary patch literal 56740 zcmb`w2bd*A_4nW1cV>5HHqI_d5V(R8cV`14Cc9Fe!r*cbf2yTegE(O$MZDXpE{?`sXA44 zs=E8KbdEJEljBho#kiuG{Fncyb51jDHKv-w>B`1by`8YQC*9so>#b^|-s&dL;J;?` zUp>{4wBD|^t7)r?Y%L{SYRMTHNk^-7s5a`esOtae=-AX~vXnI9d~~#TOuDBZ@Gb`8|?nw>qZcBP$8ppt8_RGqP{Qk(kkJ?IoQ z>30;BzUw-WT%&^t?EPtff;V~HJW2ll$=OWJZDQaot|t|>+QwM`j(^k z3=}6Pb{|`5t(dBh)Kb`eltpLE9H?(gn=KS1r-;s+70t$U3xk5*Y;U7@g2kuohN@et zt*J__MNzXlG{wHd&JiNt1@e{S)!Il=npDJS_qxhZTH7=wj-M?>y-%QBdJaUTXZOO^ zMhW=wjgfRSh6bh2714ZkVd1HHmzL&_zWQaH2U36$I>S5KQGdbHHZ$>o*~q^B^_Qq0-Q;V zdk526I?Or5x$35A{8@@-E?C*9HJX?KSe_Ur7u@&@BI~8iKolJ&qIrnNs%mSpR@t$I z>kO0TYZM%o4@k6BG*3)KnIIxqPL}}d32C<)9IM<;lISE-|5=~;?k{eiZ-OS-e zZEB+4f)j=!xgmFwyiYWG&`wTAvy~d`ll^@f}9*deQ5w)+eXXloErSTyNyJiF~f_5vE*qNEYfR zSbm#P+{S{FW^GC2Kz^`;1!*%_71V~4PfagW91@|_h6VB zQ*F*G$iK?6i;U7cL}`W?;W)g-Fy>!!g>dJfcXBlG3a$vW1F4tuuJm;jmX0+OWxYW9&M=C*qwJu$(%J)wOTeqQT#3`?v#}Z`~Z=Wa9h}kn+CwQvhV|JgqFkq zCs}x_X~fH=YWL>K(3(bVM5ffGQp9{Rz%d$>Z4q_9#PUl`-S>;)?7?b%tcDcL`2~$v zNomj8W_4tp1Qlf$v+Pw}EOQ}FE@8>VvyttwT~umoo0TEB_%cf`F)m&$YIDaM&FZR#EHm~6DFZSEj%mZDA+4K;vQ5#QWh*;c96DsD<~5hqs}E7yol z*F3ksrmwrpL9jmuHVcB*X&rt3>xVIk1T zxl%ZHJzKFOUz*8_rM%0OoF^sSS>}M>P83D)+`)EpYPdbstkhiUh!~Bile4XkM2Acf zy-`Y#7^FnD&v==X&CSb>!?uk+GN(qJGgt92ld|$lq+refXE+U}BbyQANOD%^tbvx( z99e-$9PJ^xZfxqts(l{+t}duh}87V*BX*?BzcX3X~qJP%@O}>xX=9` zVKG8HjFc%SN;kssJt&Vq(!uQtLwyr&Fe2@RvGKyiKM>Y5x>QShJ? zbZu;^#nK8X>0FH?A49cLu;X|+8b-|YQNsD$g25Jh5iu=9N$)`Gq_ncNwnN6&P1Vxt zL^K0yr!A@v3(xFtwJ;E9e(BpRc-VCEbkUf#sxgK1(cf%V7ilCVA|dR!Db9b^^B!vmZ=PsB6Od5i?unVl`_=?JnYjYQ8E zt+_2p%4!GYOe#^*-P$pMV+>9kAX)557YxXG3|)SJO3U&t$Gb@_3_&(MACi)JgHxEV zO}}CpzgP}4$*jR~oRvrXL`gm*+Ov?2&>kPMM9x*oY%{O0hekXnN6E}})uCoZw(<{3 z0mHF5oxnM&oo0EC!*egh$p`bcM$DyAGMg!h`63;WVO=7n3v|X;YG!?Ri>zlr_UPeM z^skmO?7^ChV(#WqQrcX>6HPQ*fMcn<>dG39@o3Lul*~5mIYLxtu4puBX@!fA6Ff?0 zxL}|LA8{}w1Fa3y_0*-xJzX7`cays0)^LvwfHd)izMgwllA_J7UUue<+EUP^k%Oae zxLR(0yN9K3NfFmL)|i_?+1!kJorQt=I1Z;=5D6n5CG)YshVfA9CcHDmnVa03_r2t@ z(JYxIZ5-6u$b?w~O9k$D2=MvW&#?ZXR=bH)929uYh>`_ndh{ckx7s{teOP3jI4;O@ zJaZ)?I+BjM(do-PXuu$UsuXsuYD`qBb!mu;)||}^94K^RKyjlecC2gEG1BqDLOl() z2Mwl7QTIsMZUaxSKxsJUK@4fRnH}It+$-V_)mz?{LUA)9cbU7b!_*5x7r<}%%*B)2Xy?RtTz%y0PDBsu~J=Ice$ zQImZr>MFr!JZn|8g3Wzm@p3+S#cyF@7uS71cFt`nYL8asiQ+Oy;%>;tTGzl)drhq}Cixy2d2o0fn=OQoxC_dZdcSGI_;-nlDFrY-Uva8d21z zruZF#$lu3ir+w6V6KlQ0_?r~9J^b*Q0v zkb^bGXnke7KA~@gD2{X8=+mM*2fFL3^{tyL%`xVI_(&=4lp`6eA1!DfKH`0)Xtut; zW6&|tB3FtByju0#bi}=pND`DL5tscSO3~*Jupr5sk+8{0B;!z-sPf6MbPJ12QM5}LP(NB!dk3~m2 zbpz?gM*J}reAGWR#Ge$h&r0#9q-eJ8kUmsjX6dJ94axp=Qgx(__u8fFSomdQ`~lJG zoc8i}5g#z}FN(YnziV0aMWe$cka?2q0#975u}K5*{i4;0*ES4b>1yKr#>(eJ-Z6@& zc!;kdea?u#A>v+rAJAW`j@A8Wy_=$M7~QXl?!2MO@Yb;=Uf1IR(K+Qjj=yF!za^So z(>N};u$A7!l5ZK6heTyz{)WN2zMjH|jP@K9U>k6WVlPckA9ZzeMW#qXm}1GUQnY8b4{uBT z%*{^;F(Vvx@#w&;@86EU0fn)7n-OtEMO~enF?sPSBUvT5`-)1dIy~t2FZ+5ueyu3X z!wX29D)?!{=bHEo5zO^(Jl7*pR{1(I;%vgE#D-UzSyqXUa>Zz!f59i`x6*bL$L8%^ z^!rRtnz*^zmOXcr#lJW4dzsVAUPm;VaxA`8if3``vuqdlN+CZHxM7s!znb5AI5aIt z<6dK$DJ$xl=i8n?7ep==3kF(vu4zpBL3WN~PXDND7a24;tmbn7f*n~4{Bb*f2?FPx zB7I8MzV+35qq(^{ymfH0GAvtcX#y&7r)lJ)QfGEPf7qA!04bfz&1ay+H#zPpBYA<8 z@3Hd;XBqw?(dg!pac#3PH3?&{L{WSZcPW36 zDUVF_1t%Uu#(-EB;1_anJS^sVkFRX2j!C~(*V%KvvAhtXc-ZJNacYk7udjNfh_leg zbEgzjx)Ul%k1=zC)R~#De(r@xFL)=wh(-Gf@_BRB4jg!^!$_Xl(Lg5UzPYvNd!ju@ z=d@4q(XU*wo4nbM9sSuA!}clt+pF0djd2$L*;wVQjk-8bipv(I7l?>w{LOeroGoZ{ z@;M^eC7ao+>qu`Yo{Qzc+b_~CBm#LfK!DFhN!*`%jpvEVT$gZU(c_IN6q{6>XA~ET zBGWdflv`D^L(=BB6bJY*kyYTu*;L%QnUG7PD|Gs|1-r* zuh~rHxrCFwPTiSC_hQlQLI^Y;x#y0#oA9~5I+6Ov0o1yURj-)AHf+InkkVVpw;5A6 zi9*-5O0(*}1MuN4Hs8ErMl-&Glf;|P@*_-@hVBZ3=#zIcX;oH4K9WXkf6 z+k|7D+++DVv?Xr>dlTPcT6ssNC2z9jn@)+DEH)q0;5%B~V`+)eO3Y3YzftP(QA74c3`R0bigtUlJP`d`DJ+*yMPmEr-x9kviR_s$MZ!&br|>0l7iX&waIaOv6l};F!u^E!N?wq_bg_a zMwg0&Po67~Scb>_aVwfH<+FXN^)Kv_W2BVt7kAzW(d(l`yx@ss@!v((gQ^?ln8pNr zGs@z>o34J)DHUeLhpF_zIUDfu6gjy*<|oUCq_~UE%dRAvlFEDdd53qtO+Mn9UphqF zs4>L_E>Zw@XrwkgK-;*;i>Uz-&D&|ejgNyM9_a87o-ZaHXZo;C#Cb-Kx3FN{j1`SG zex86{^WYV4$!nBeA_{pye3BG&tV>6EygH9`k`bRQ;!b(?g#3Ks$wq#n$V;0WID?d4 zN;uI-xoN}$#oaslCkk<5i>%b>DQD<{6f9pL%D&WnXz9Pt;1d=X@k{L5w zIF-C0lTK*Efg%wR5(XMF!cq;xxrO*V~K5l0Q^`NyJDSzr=NvO+ZW8o(E! z?fj|I6E1_pM5%LKbyVIDw*_bWIg67$-`*vh5J`Jqw+xEey7<|XN57=Kx1I7?B+WNZ zu8gGJ+ppho)g4MX8I$%rR|_vVxL)}2FPSb1d=&`ZAc7gXaVOlsk~i2NSiDI}vaiTH zq{6PQg13WN;y)KBJVGSxImf5dvMBvtmGHo2iv2@V!pWYr_t5rcUCJ6BJp>K++R>kM zvbj7&iG4J6$!|7xNRFwxaL3y{cOE`>l91%!5-MJ*%RxUmTzoFf4m*RxJQ|~i!|*s) zguD9f7O!OG1E@YdMNA-37vCkDyc{#iQ5Vx?*0a(jD2v}<=I%04nw7a-hR279`NuuQ zBFOU7JWTsdEL@jYjkv`#@!^*z&1yp)GgEhrjX8W#SC`w%q_=!_!rag1Kso|p;?}%L_lj74*o5b6lu7z(?cxP8Lv-vR zl|y4|UMuAMiYj^iaPd_`kit@rUmbBg4wPN2)=aVvSNbB+86|s>|hoy^H z(l8xl1mlUhBks{Dds2x1jB-4x$ZSG`^qumVQjAyR^7|(KtOIIakwT9BDtvR$@5^Vg z^ee`d%ZT{k?4SJofhDR-_1>1ec36cEj>qCzt0q6f;1&|qa~sjOM3?!?y+SR?!;X2a zldKhu-Q2w2q_5|)G#kH89<1X9ScC5nc(|4cKP&HN{4UtQ`jod7dS<%Qm9436Pe=6i;%O|q(^Ta9Mz=gS z@>e(RW8fQ67+;rbMP<>lt0$6Yk@6F+9(jvUo-@kFpZxJK{uPas@iSfjrqyj+k!3;vvBs?w}>+naW0-}xv3%7 z`q?3~2#&Y|MbmtM+?cQTSEDe#!1&qb+{Jz(Q&d2@olbbfR^%E>(YWfiJiCNjR3eS&?w#H<%x zmN!3oT-4d|?8JbvNm*(?866{Pd=|)_klm~19T3FF z>_jME3u%10aeu6+&&=MmL^8{cooByc%L}pSQ=*CAbuslt4+`<6kWU15)PF7nE%jEHd@VqRAQQ+q0sIFT#93SCaEs+2|f3x@Nh@`$-93 zNo#K!)AHT>+r&s29abq{%_%fEz}Q+L#Yxu|OozlBJ2gKyL>b>dmQ@TyT3$#bRh zd>>~H2)_w&vCGEO)l(Swy+pe^d!YigpGeVD^u?)EIqqm^7F+D5JTr3s-KivpsJG?OiguU!`Oo^I16Z*8u9NQErO!3lw++cl2N(kf ziT=WIe5?0+ov*`Wd_08*8SVW=ThG{DbHnIpOMbv3&lCF_bxwt7_ui?=olS3`=#X4D zeme`gX2_yqM!pIhzkQ)RYG*t{Q(RY4mdzePqVUl#gY&m7h0$qzlW2Kg{L# z0Qo`KM`o_W>nfKxPIFeWNeLbPrwWm4)t0rZvTyj2{Ialv$xBnN^({Zd>R=(bt>~irk|`BoXf5e{qyA3*+i(k7Bs)LdC`S z^C4Wv;kwiCAovc$l;0lkZ2{jJ@CO3ECE%L_zRB?0;qUzczt1q+b7R0a7-s$V2K=6Y z-yQJv0lzEYcLw~9fUgVq+JLVK`09YK3ixe?IUZLUX8+$B@D%~SCEzy){HB2481Ur* zzaik)8-5+ybD3eb_fo@b?`sWHeo4Tu3Ha59S^r|gtpBQjUul^77X|!^fL|W)g#lj> z@c99s7x2pherdoj3HZeUzbN2y1IEkK!g|Ha;R4IA4$*I2&)af>0G8&IuUrwhMCprxaEnFOLd55ip-vtUixjmd_5j8Ze$}3;H-U6&Sy5EijX}+UNY? z>mOy#m*If%-}V&bm4MF*_{@OM2>A4XPYd|efM00%6twST!))(K0dEQT#DF&&X8$)C zro9sa-Wc$PfR7J&eZcDienG&;g1i5Xf8d*6^}wZ7juYe>;g$IFK|BL8zpM@P!I}QG zPF_-d3E zOrQ_W^pV?3N8);(??2Xt@N+$5E(kxT$XWcJ4f*p;{j)vW`jq?n(es?VQ2$wI_c`7^ z)<%guY5ajzKfzir9d7ioR)noSf_{$usUt-va-^vtJLqltn>Z7kdxKkJ3L!^ zdmH`tKu%Wu>pWZirv~u=7yMJM@u0uG0)22npK{fwzdcQRuJ^3%xyG|?&r<^X;DUY1 z)jsR*k#ofT4qVXR-N-M499)p^X8e5#a_~-a_4gLYcg^j^uXJ3{-v#w`ye@>Cto^;f zv+eIfWAA*(!3BE@jQl*v!3B9QSpBsjC#%0n&(`03qu+#_tojYlR)3y}&u1YA7yMJM z@i`gtxq&{opijB#p9K9mfj+pPPr2%Ef&T13A6(FU7eK!|&<7XvDOdgDpx+hfgA4kUtNt<2pBdJ1ZxvifVe^|>Uvd%xuePOE~oBn(W za&VzPl>7cf^artWjJ=6$^^<>twY}Jjgw=o9v+VFOQzYO%j1%1j@pX2w7Kp$Mtr(E?p zew+g~KH!2r<*Lv5%rUk4;DSEos?Yh%F}3>OfbpijB# z-+}wb0)22npK{gz0PepN=z|OTl&k(txPLUz2N(1yxBA}>^uYyv%B?=;X2x&8J-DF% zEhB#$?!g5)=1x}sO5B4B@^2XV6}Sf%`6A>PL%#2b)_TT0-*-f-J=^vD1*5+Pa`eALQBUf6C||2sv5x5AbaDKWX%z4mnx% z_xEh|KVkHr202;v_w{V`KaMi(|6aHU7vgiDk?)Cna6$eN!ykhDZo|yK$YH7HA zMP1=ngE`MpH@Ozq&0vg+w1tekS3=+7mwNdPV9XP?Mf9%+e-`p7$0f|e(l>DRJI>mB zo!3X6E-~(ijnuyljB#RYgf9Yf9kZ=(&)YBkL(a?Wu|Ld#+J5LJZ^EVZDFbKiImXMc zLD}cf-WPkm8vJ?ixt^~AW8KBu9cTWSkKPEGj>j6uDv#@6u}GuQLcQg z2d=akhao9_jb z7xZg}w?g;qfJY3ckPjIi2A^fP0zNZm$zP`j{KA}*Q=tz|&OkgKb#;YL1AhmMy3A?W z_)^#MSplPM1v%PYVDzoP=)17S{}jiiBi#2JejB1Z<0Bm>6aM=SV+(o494o`}t;X`< zf&5wE!8{%kuT428n;|DJMjIZ&pM9PgFYKGFD{?>o`P&p>#u%6I3Aoqw0b2>V7qUli z{{qj8zz@5+$wtUE9+YnYtN-ob<8!&RcYPoyd;hGPkQc)K-L9^%`lJ1IfjyLE`jD}W z+FqIO$APsymqR{anC&C0f9MK(f6;u;8V{ATk57ecEiU9x?Z5PoWgkQP@4aQ^RkR@cR z-yi571J?Mm{bb+%g!aigo~WA~4c7A!+X|g%H@`lpPgZ^C3VZ)Do>)`bp6GPQvE~Z) zkmCyc+<>2hI$ao>JMbs-A$cbFcKpfp3)cF{4A09Te*pKel{`C_%Xs5Vr24{GqXp&~ zR)5e<$m$Qa$f_^?$m);l{h7I3>|;);zA(nPz^I$~gKk1rf3QVXeep-eCH>=kS(?km z{*r)^Q?$OwG4`21=q6kx zt3TLE4$9@?@4$c$2>2NRKRw|61Ktllw0+P`$l5;GA{W|6*7m_x^0Zto?JEboZ@~MY zj{1XcLRNpUMK1Uwt3TLE_Ri(v4|z@XWqs|HbJ78QaMFqSavT0+4%{=BN1MS<33v~~ zT<^Q%DxvqCAbwiZb~1(J!}cb;9GDHTgh&@zO;8&u=WSCg#0-4Q`{qu2>%%T zLENLS!n$8|dwvY^5!|zHtp6?WFz(sbT>^i!sqx0#5g!_F%q?=(ALb9TwhwbFS&+*m zzP&k1e8E|Kp_^b2QhO5Lc>&Kg%=pg1rSU~wveuXQQm*lZEz#Hb!d5an*O&Ot0&Dvr zOUO39WQ{LkC2|{I$~C_18(HJaw)B8?KVbeKABFh84%eNY{r;TsV#pqX-f@s)472@! z`5a@D?MKWnWaI^&SEN5=>yNDd?(q8RkBqV9Ue7(3wuIF`?Ne^;k=5SqUat1Ym=h{z z-2&4-<%ko{Te9C_trhH()jroCS?w#^_F>JcK6N?A3idHq3iior|5oUe)xNT|&q-zb zPuBWe!(^?mZ0lq073!0<{w=6a*80k}KE$d|UAoH{P+;^$*u*#fH}tjrSU>T<0{$oJ zd<^4p53Xg9gKhlce+2q}2b=csH&1r{32XmuhCRx)f6B-iJpa;m{MW$#UjqI!*!Jg7 zMt&OV|Isk}_Xn_VU;J^;x<05+xwh{n&)Pm^jn`5yKLhQ(ANTMT|32{dyTBh={Z*h( zR)6pJtp1d(KkBPL_=bkRwjQzJ2UVfz`gs z)xOTJPeK2OXrH#9@%TZ&kAwYqNPNgPK4gv0dr_aP@ljU$91qGhKJXQPAFT0#Oj!GW zh-YoT%5D3MPSfS^dLz z{BGX0a)KYYgz8ae$V4;B2AHU7*GWcB|p&+1>< z`lG)3gRl5&fqk;}?=xQR>&Kt#IHTS8{!xC*v=J z?Rb!FJjiPAIgDPWzT(fJ zzO_&G_T$fcxyI`Yp4Hzqp4A^2=YoPgvfAT#lGPr^ldSfx_N?~EpMqTT6?6-XwiXz% zC@^AMV2pKvG1m%=xmjSWjRIq>78tohSo7!81Aa!p2Lyazzy}3RU$L0<*tX zj=5T3?6n2{QNX|Tto<1V-wpphKGAm1x_&+g{xIaae#jpR7-d=eA&V`euCT@f?@!3_ z9`1dt+~1Yki@0Bqbv)kYS;s?J+j|`3cbfV~fbRgSyw9_aH}f0h@dq$|AHkofEBfm1 zO3&&~S>wg_-5&V6E$~OS{=k_()Qu@ue{c1y{*vt>i^ANU;UGB$nD4L!8pSf{JqEU;gI7@6=}ZRJK%jBXV33@1&nns_5J*hIKI~# z`=^87W$f?iIJ5T@FSqq^=E&rGKn~V?!uL5b&JbBV885Pp7um*(tnqr2*VlNFafT?^ zBda~ehivVU)!rMuTTYF@+_Xb~I z?UAoG@!j2V7T@#0SLOENiyX^;hw&PeZvnqOw@+PR_0N2Z9G0~g?GV;@PJ7n&z25T% z)WKYeRIcr%{7RJT{NVUwj%k16qdjZ98858)f%vB0|!rDH{5hI-sG3IcLJ{K5mC@_2!nDgGwzgOoRzXJ9y4)|4OeeDW4 zSnJDrdL>x*V~0) zjo0De3k-97$=Y7@U0B;rV_k~e+o$aUYkietYzlJhb;7#7>)@JcKjXI*tnuP_k+r`n zUx>Ed?dpo$_W$g_UNx{sR(rd{23hT)Zaf~;A2anieq^nGnrE$#x+2&3zrwS|U)i>I z6!tV;upL`Q+X{?W2>bX&70)`JT3=b~E3-bp@a@laqNF(}w4t9`Byvf97Ev)WhI_Ac@A zWtd+NIA8HusPE-+J|pY=yc{}b26D2MpApE(R(^UQCtLYxxm@0loEk9uqU~qAPYL*B zu-fBzlWly+8lUsMT;rpx_8A}QYkbhQ_@ux-+1e+o{qwxO+E=#rsjv3Y*LVxqwx4Y6 zlhr==KeF0aw)QDk`_PL|1Y7%LYoDz4U+VSMzOuDXeYKCVh&O}1JjS|-2Ls-evyATv zU|p}U6Rb#|QS-fo=TBKK|@WO!o2TSQVJ@uyV%3GUH*m#PbeW$4}XgALYyZ`p4MB zF92)%wtHR#`NOzpe<-*0$yy(=i*W|b>T~^(wf=g~I=^1*S=*;MMKwY(90n`Wg2GJj>hfHRF#xqR@Y`_8)DJ$+mxFjR()0WQ_-T zE!dAo%zU@T@Cxv1u-c;>m;Rnq^vSxPKv(2CzRc&8`}&gaSLQ716FxF~^hZ{E&=t1! zD7W_d!P>ubp-ymm2G{> zZT%xnewl&#mS+asZ^bFieW?JDdX|nfS&`_^#NH-*7zUp zS;vd*d3G)rdx){>3qQ-)WBke19$D?dRtz5+U+NYZZ4uV>LH}%%=11N?6ZN(K9FN0t zfAao=Y~{#`UgNxw*D|Dwf_mcNp4)-THLY^*h??GK*^>>12^fNjY_prsf zS^M_%tp3!d+V{S){&D>rn71e13yc_L_BdW-v_tj>%tK+@KgM*a|DMA8XXN%Io=-Q- zKJ9N9xhY1BGk?qvWbco^2Nl-%PI=b;DQkQ%wxX}R)U&Q1_>P|z_%8?k$?Bi&Bdhj_M>gWy^ucwzgryZe#^i6 zgYu03S!B2?$V;(f9gnyiu=dZ7m#i)JR~d1R85aXcp z{VA(G_K*7N55D5LV3pI~9I*9Aw*JWK?;NkM{*=`o{ZU{2!B;#RtaAFpnX%xHZ2ghd z-=x=9f68i){;041;48)%wcrnD*n&T@^+#5J4b&&AKV|EWa`gvaaTi$S>>tiV1%G7g zkF5UcUSItwt3CFQ`sxq9;u&C-(;sq7!5>-uaek83--KuNr>yqqkNWBlzTytB%IS|u zXEEmXL-@1Lv-L;0`m1@l`cqbW^hbU52VXIAYQZ0JTEQP#{T&W{vijTVS^X(nf7Dlh z%-=xkFG7yD{)CM`VfA-5bg8fYl#M@;t3Rkl|H7qm#4|!pFZd&?Kb5P$s@GS4%4!es z6noyE_`)8N*+)K%{*FuaY5#AydfomL{~7mxHT%t90*0(0XI-mL+tfi$<^C+b$liX$ zy}&b)$36Ll?kXv(J;sZ2jTe3W375(lpFiTV{>auJ zS^bT9ef6iT_UMoL>W{wufJ^1{_j_E{AKCgNtG`jNul|(P9{o{Y{n6L&aH*XBerv{? zu>fb|M_qESn;$ZMzX5CeF2_At+xI!#{~DLI|10o9KOZO~TYJ9@^nVfX&kP@q`=1(S z`+tHm$rwt$=V*;BC9{P=XMm%eKl(jv`-_dt)X?tj! ztnHyKvTe_!VB4N=8#!g)GR*dnwLQb0wLQwVJzs~8wuiRK+8){>+xBoDQu{-=C#!vB zYoBtRud8tXATE`2K9jvYncL(IxN!E3IKRo>zR14{*7}Sm+1r=@R*1aN&42lCjmX;G zir3fnDldcn1K6AX1^HKSS^H#dKi31<+mC+fS?!GjpVvf5kX6!)|0>{L2mG6We;Y9KHQW0z z`lD;dGS{+Y<{Hb)jfUm#GPKP7!!q|W%iPb%Tq_%JaV#t|exJo<$Kx|#9S_RLIvzLU z{?oWch{p0+m{xX*zBDVcbT-G01{T=S*YX3CPYG2vfXMMHLSlofj z+9#`h_J^$YPxY+!m92g1tNr_Me|x^3O6(t4$1nbiXFq;&KE2K8FNGYO>GNz!w)(e% zA9m{@;rzDD{ogXr4wiX-0B7r+`=jOW1>AE{qdfct|!_eFZ1hzw%&ou+P^N~Yr)n& zS?%+lm)fT-vf8JuYj9cn?4$D4xPM#Dd><*S{w@b!8OX_2{#LM`5As`L#=y$S{_jtT zc+X4Q%eIlVJ#3p{Y0n!_rv2qTFKhqxW`2AVGRr)VS$@Q^wwJ%Bj$Vh$+bc0IT$Xe6 zQqMX+s86}(6V=!Ga-Ns79GBR;6!+R*)+Kwn_$I4;v{mHR-fK~&^yQHF)nMLIx4>a_hhxtx@5J_x@@EBzYO;m;j;GF zMwP!9_hhxlx@5J-x@2uH{j-f)pY|`rW$jZ(<+M*$`>ab=`>cCDu3n$d-dJRr&y@S| zmj8ADoaL*pIsJ?uD6;&&5LjQ^_a-OTd|xUD{4~$ZJ(vUH?>yXV`EFsZH^_cJmjCwwSmQ1K?*hy4EBZP< z&jWA6W!p>E{?hgoF5e!}CENOB)o0xn{C^Ph^IrV<5zlvl?*rfMIO}g4+{C5*XZ+4F z%y^KseSMzKfW7;1&$^WR_R0TiitNWvcrurZF1gpQANHTD?PuKvF58~EVYY{C+e6m& zur68KbCPFm4|xKYwO=z#`($gMtoB)#toFBfR{P|wxYYiBxIf!4<6AXMIXOiYwo;YkiI{S^JAv3u}MLD{)zSWNVLX?UB_U z<4ab1WX3@IPnl)5g^al?-`~Fw@E1L6ytKZu*4KD3U-skD_Obtrp^i6YWYy<#Kid^+*4#uT1}B_0O?-x{*Hv_xt0r{>kcJW}_eUzz^Nhavu7 z!=IcRWNi=U#?x@A{(iVG#Kdni)ZFD5TE<;=b4^;eg5W48H?zLlW4y`Q z-jh9Rdru4abkDYZ%o&=`Xv;Fk&NAngWzKcWT#IDQf1e2WlL3D!V8+DO|Fmb_Zz;o- z?JxHQ{Bf_}i}*f*`#n5syykn>`KJ9-*8VAL|CHIkU2v&A=40B__VJ#V=4a}XwLJ@P zKNpwQpNIQ7hH0p@XUa_1D+KybG5b4{B5~6 z;DrJ28t`5L2l-ll8*J@!f3mzJ;N<}y7Vt9zK0M&(2Yh6}*mny4j|sRx;9$Ry|5nAe ze@&pjHsE6e9te0tz$XNJdcbD{d}hFB1jHj9z`_0`f0vH+_wGRdg8_du;2{6W-<@mi1^F#ObvvF( zN5C@z4)T}$UDU?D{N2@-gZw0aces`B6WHG`;DZBR9PqM$gM5=bCy)pEM*iOkwmruL z`ayn4Rt54PzwrM*QHW=dPvrl-Vg0QS^n-kpYz*W<{^9={rQomac{ZL;9>e_{TrsYr zz`E9OW=KB5MnoK4{*%mXO%0u$4!3*K?UT*4)v7jd5Kivq?xp{9&VisY)f`S&Hm2%r znK@8zr*&$#I5C_(xQ?Qp>PT8|SKHOJC7!IMq)RP1BO~c(wGP!rox7p_)6uc1(P$Uy zb<`^pskFJHy<^hdb*)Adn)OPppgCi*(u9AppV#WzFi9^?x3g=Yp4aT`X|*fubOM!J zgQe<>ZI#;8fA2x3s7b%k`USoR^YQ1Ls1Q*MLZqSAe&SC#RYbkh)6;#e>O=)`8*cSA znqv@kbMWH1gYD+jaC@p*sV!dC$33`*<=tI_E7xsd69MwqfX6-SDm&8VQfP5y%%xT` z``AiLv^FDXDCm{aStwmqX;*winFB5I+@LqS;aoh7p)m+VztgD zcaq~-tE!c;W@TdWa%t}j7IyC83;T!L)os=Gj+Kr2hzvZ0GpRA7qn)-mhxuI1i8I&# zj$xkX*`7JCDev&i=UD0}Gx$84&Gd5Wl2y)GM2GWaI_2#m=Vq>M+M8!d=c%+uHZ}xtDWyerjD6u_X z(P-4t3bVlRV&>Qt)%r-QTq(D9Obj(@<>5vh13omx1yx2!u$0Q}MlNqO^Lwk?2aD^( z;$?CFe==5Wm8V+i2#pSpr^8#z)8lD-9A2^}JeiAfYrHX48!4lAndfw*uV%eiR0^fo0&mp`vxTdD^35`NcY*ZW2I;7`|D-NemiQ_p=PDI zqs(+w9z}!4D(nLmitl=BQMuZe_LWx+^!KfDZc%AYIcvsM=hpDl$m^V&za+RK(MUECV3a!3#u)P9zf_YB&y zXG&SGREGELAE+NDqGTBk7s+y`cH(4tbECZM@bW4|d!kZfke7-G?w9f(6fBVf{`bsD zpWOBo^cP84r|3iFP^WzuZVz$Vhgs_fNm&QAp>d#7##WFV;FOnJTx07hLuu`x{q{Rpl&E41oQRzto}VhGgigtg$ka!F_^tfs%A+4V zO#boZ_#@dgJXleZE& z3;wTLGhZ9Prp;4eYvzWnnJon~2CEa3H8dptxA3ClrzVDw)sP${YRGRbEVaq0HkZh% z#uNgmZADU#|K+T>BJe+icU_+%8xOZ!ae0#QZz6fee--gDOh_)fz%~<5n<=P0jwCCo zsh!qpaElBw+^8W2oI7@_$0Qk)$`;@=3vX8h~y?w4|RM1Pq_Nw>iu@@02g9o->O!J!sA zT3SPDtJcdKSFI^GrrH<~rsDV)Vqo58Dy^YX`FL1@;O8R9z5g`e{|Weq!ff3S0?GFz z3^+B!-~Im`s>gW9;Xm+gx%ob0n<#w}DZ(-3P-Fd4| zWNAb!9p{5ymM1J8L8`;3hTK&h#S-3D#d(TGkgw7@Gt~&rapiiWjT2QmTA8Xz2ExOW zq_82e*}b+|9Vri1&*hXpO^Rl3s*a7f%j+vmoH0;(s+7)JmyVjk7fRur6^(Wqr=m>v z6e;f6+?dSEHc8n`r-P$Gyip3~Z>)@^aR_Xqbhn@sqJi}e^GhG^U5p5$fEMei^``gD!*`1 zxgX{ID{wgpthux0Y-$L!Tdmuh{AGn%J-j4^jCm~6;XkYC4g(){r_1tmTE;VlJY?d?R2d$}D!^jl0(TjEePaaA4DQ*s+Gc2X7bgec`Oh~@ z#@1Os$Q|4`NOEGp+soLUH@n&2vU}GOFAx*6<(-U7fI2tO`BI9vQrmE#PDfDUj*zqP zIFH4@xmg+Bib8jcoHJOj$Ro(+>hM-(m>#LEy1uZ>IdTT%7*5q0Qo3M$wT_0eetB@R zGVDgD!^g;JOS@6}CowepVoAJbo z>KNo{ZZa%xC5`-mav~zCy)z;Vv zDOQ&Mr?dT&9qS`^F5UT9AAMYm&RSF5j*&g7I?^78r~9O^gAW0qd(06!x?4mjjjorw zTOyMw5ES%39h2A0<>_jz#?DR~e#ZlT-8pk_vp0Y=pmFYSy zTqG8b$So}53tH5uOitEtw8B|@k<3i`_s<@AlwsgPF>vI6H!zgq1XX8`pU8}R;<`7= z?TFVZcTtQKPrA&jSUlc4_BFTFa}nm_%5$;2g~huqKgFS`!`{cYS~$B^`0i$r>TRqc zv*yYO50|2M{bXMFrWZc?ITTr4Mzkpb`LCZMqK4=lcIruu=GLJU3wKbT&{n&{{OR%) z<0QP~N#!%fBD|yj=p2O7_Xt-c;EUZk~j3^n~jBp1j~6(0jCEqqmA*5$B`Ht3V} z`LKmQThHyGmSWG+GX9ZtTs~;oqNNA-EMvh)W4c~0AGCDQvV(h;v!KR@#_~anMddJ- zOil9NP+1He^x8f0O>?E=Ln_+E122y5d^s)0jaC`&R8csA2>8Q4J_ot?tZ;`KP5-^B zuPmXX0ld&+}h$vCh|GRAs0knU{jT$bgdZi+XI(b{Yv*JOA7a<{%; z59w(7#AKs|8OEe=?&3xhhdX>@!7H&QzOZDCz)^;=t>MruXCz4lu`DLw~olj1bBg4^9a}RF29a}}F4b>=rmYCT+5ap-Z$i3T#X0%*XcMDZFjE=Ta z?&XJ4NxlqnwYYx{49{CnFMMl`w~IX95vpl@_XMz{e~8<`a26dz2AlUdo(b{f%~;CY cknA}KwdY7<4}Fp^Q|+mtR-gaKqHmD?4^(rIWdHyG literal 56467 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 String" + +DIA.ProfileEntryContribution DIA.ProfileEntryContribution.HasEntry --> DIA.ProfileEntry >{ + + protected ProfileEntryContributions(Resource runtimeDiagram) { + super(runtimeDiagram); + } + + @Override + public Collection perform(ReadGraph graph) throws DatabaseException { + + DiagramResource DIA = DiagramResource.getInstance(graph); + + String indexURI = graph.getPossibleRelatedValue(resource, DIA.RuntimeDiagram_HasModelURI); + if (indexURI == null) + return Collections.emptyList(); + + Resource index = graph.getPossibleResource(indexURI); + if (index == null) + return Collections.emptyList(); + + Instances query = graph.adapt(DIA.ProfileEntryContribution, Instances.class); + + ArrayList result = new ArrayList<>(); + for(Resource contribution : query.find(graph, index)) { + result.add(graph.getSingleObject(contribution, DIA.ProfileEntryContribution_HasEntry)); + } + + return result; + + } + +} \ No newline at end of file diff --git a/bundles/org.simantics.scenegraph.profile/src/org/simantics/scenegraph/profile/request/RuntimeProfileActiveEntryResources.java b/bundles/org.simantics.scenegraph.profile/src/org/simantics/scenegraph/profile/request/RuntimeProfileActiveEntryResources.java index 5686024b0..5c438533d 100644 --- a/bundles/org.simantics.scenegraph.profile/src/org/simantics/scenegraph/profile/request/RuntimeProfileActiveEntryResources.java +++ b/bundles/org.simantics.scenegraph.profile/src/org/simantics/scenegraph/profile/request/RuntimeProfileActiveEntryResources.java @@ -36,6 +36,9 @@ public class RuntimeProfileActiveEntryResources extends ResourceRead result = new ArrayList(); + + result.addAll(graph.syncRequest(new ProfileEntryContributions(resource))); + Resource activeProfile = graph.getPossibleObject(resource, DIA.RuntimeDiagram_HasRuntimeProfile); if (activeProfile == null) { @@ -45,12 +48,14 @@ public class RuntimeProfileActiveEntryResources extends ResourceRead