From d59c3d303be95d38320f94b5d7cde068824d81fd Mon Sep 17 00:00:00 2001 From: Anna Koskinen Date: Tue, 1 Dec 2020 11:34:32 +0200 Subject: [PATCH] Ensure Composite's contents gets re-measured on resize. (#12154) Fixes: #12153 --- .../ui/composite/CompositeConnector.java | 2 + ...emeTest-testTheme_ANY_Chrome__labels_1.png | Bin 0 -> 33079 bytes ...emeTest-testTheme_ANY_Chrome__labels_1.png | Bin 0 -> 31335 bytes .../CompositeVerticalLayoutGridResize.java | 82 ++++++++++++++++++ ...mpositeVerticalLayoutSplitPanelResize.java | 59 +++++++++++++ ...CompositeVerticalLayoutGridResizeTest.java | 43 +++++++++ ...iteVerticalLayoutSplitPanelResizeTest.java | 44 ++++++++++ 7 files changed, 230 insertions(+) create mode 100644 uitest/reference-screenshots/chrome/BaseThemeTest-testTheme_ANY_Chrome__labels_1.png create mode 100644 uitest/reference-screenshots/chrome/RunoThemeTest-testTheme_ANY_Chrome__labels_1.png create mode 100644 uitest/src/main/java/com/vaadin/tests/components/composite/CompositeVerticalLayoutGridResize.java create mode 100644 uitest/src/main/java/com/vaadin/tests/components/composite/CompositeVerticalLayoutSplitPanelResize.java create mode 100644 uitest/src/test/java/com/vaadin/tests/components/composite/CompositeVerticalLayoutGridResizeTest.java create mode 100644 uitest/src/test/java/com/vaadin/tests/components/composite/CompositeVerticalLayoutSplitPanelResizeTest.java diff --git a/client/src/main/java/com/vaadin/client/ui/composite/CompositeConnector.java b/client/src/main/java/com/vaadin/client/ui/composite/CompositeConnector.java index 3093eaff4a..221a64db6c 100644 --- a/client/src/main/java/com/vaadin/client/ui/composite/CompositeConnector.java +++ b/client/src/main/java/com/vaadin/client/ui/composite/CompositeConnector.java @@ -114,6 +114,8 @@ public class CompositeConnector extends AbstractHasComponentsConnector } else if (childConnector instanceof DirectionalManagedLayout) { ((DirectionalManagedLayout) childConnector).layoutHorizontally(); ((DirectionalManagedLayout) childConnector).layoutVertically(); + } else { + getLayoutManager().setNeedsMeasureRecursively(childConnector); } } diff --git a/uitest/reference-screenshots/chrome/BaseThemeTest-testTheme_ANY_Chrome__labels_1.png b/uitest/reference-screenshots/chrome/BaseThemeTest-testTheme_ANY_Chrome__labels_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e9624f11d00cf579eed3814fe4f3586889086caf GIT binary patch literal 33079 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 E0nCns(*OVf literal 0 HcmV?d00001 diff --git a/uitest/reference-screenshots/chrome/RunoThemeTest-testTheme_ANY_Chrome__labels_1.png b/uitest/reference-screenshots/chrome/RunoThemeTest-testTheme_ANY_Chrome__labels_1.png new file mode 100644 index 0000000000000000000000000000000000000000..302afa72b13dc021627de950231d34039b0184a2 GIT binary patch literal 31335 zcmbrmXIN8P6E>`mk8;kDqM{-opmG!h5eZGHDhSehZwiFoTR;f0f^?PMrFW2$Le0@o zq)RUeL_lgt5HJZOB>A?U=hW+Z-}lFtA6y|>d(YZyX3g9)_pHPi>T7cR!uQLeLx(uD z?yDOgI&>6w=+F`4pN;{az#P~qhYmfuuBCp*G<0^eeKq;C1(FoTd@d#B;BskY{v0=V z;FfLC|moS%W6A-#vEtKNs6>{O97r^V^RPU2Ho!AHLO2y%4d~PW5(o zJIHz@*B&=_&mzRkM9)GV?a+C|F4fE`Q(PKCiU=U4vJ6day?(m*{KVZq|2&dr9JzD* z&wsyvaRYbqukV3(?2x}-aQ7#Sz(4MA_Z;aTmm9ipQ0eumf0F^+k=)^yHwzh7#gjSOKJ4*i58B@LTEIk@-;d; zdo_`+b5EM#+LRhOc6t7ndI z@Zpk8$DB@|DFkRnsveeG2W3W1M>?|U*t8#Dk+kDfl-Rkfyhw6vB z=9ECMOnILuD^82dmWc z2CmwaO$WGVIc`bMB!f}DN$q9Bk+{z~o)Zg-ihgVNzXaf#(>=)@wAlnp!-%0Av|+cK zV)(+F;Pw4R=uBa%tj~4=$9cI?Xip9O?Zx_FAp+&N1iExv+9yE2{Q-L^?-k7{e=?pe>#%0YhLxR2+K(tAF?E^>$qMs3FSs`f-`Mzt*# zc$eb0cPF;Lpo=Wm;T=U8DUi0I9OMm3xE^s#lE0OK-+~y`$Im*X*V=mHgXtq03E7_) z-!6Glp56m%h>EUQ&l@dWv5p>^^P1U!|4b)b4&Pcbm=islkY{uNXYDPme;zq6-*OLY z&|f`G7Lxe}4>qwWV%X=8as0wd;`@1*-q}k+sxWrMvl}1yXIA^@O@VZ(VNET|IMzkv}j#$sDiugzz|ddlKu8-lK{umEt;-X%MOa9JZT&P0s^WHp*n4#Uh&| zIE54iS@SVtuDFic5G60ROW5CDg7v{Lc(=tocVQ4vrKQ|R!bMJ%P^ zQNbP~9YxDIH_aBLlKylVrbX;jtua@H-Sw5+RuWt{Nf1hJMr#^m*p_~YXP+vmnna<& zl~<&ToU73+cV*W^vEx&&O3_xitW((?VRU_}b$25BKvl_=#DR`^G;@X7;ZI1EPKp$e z+X1H$6ZlDuJl7p!vLAy=+Wg0>San02S~56rV(+zyRUdr&>f}uN(UDc~>0ESBGmiYa z0AD)BMRIwsbcr#tyZBBVQU^vB6N)*IyVZSJM*311c?dDy!@(QbK2)Bh7> z%u?`J0tZ7v*izoEX)}gU1|Ey}zz*Ti;nfsz$Lu@lSy@9nsDYq?Uu)UUwlILYCYaCq{ac_`%_AOhl1FtojV{g z%_6)prJjP_aU_<2k0+UBE`p}T|EF(rWd4LB7K zz>AgNUdTs@fpBV9!|h8u8fK@`U7l2$KJObU|5c+ZF*m1|)$<1Ii0uSS4F) zB+G|k*sXYrVrI$;7HUzU7=_&B`!1*|=VvQK%|oHmdds2*E#m!hXQZvbcb%=pTFs)G z8oJC>?ngC9N}9Z05X^cTGp5%2++_baG0xfo+*9g^vT(5}K2_w$y5HkBwY{t<{`?rS zVaslCCj@^bH)&FJM*62hM_zdTuajC_dcLV?Mx_yZiY@D}2K>16Eb)RLZ%#CQb;)YT zF_Fb3OJpY=2iHXRyqi6YPb-;qF_jSlJ9vgyeTmbMy=K{RZGG(s_)*ohSjXxCVnw5i zMX2s&ACtM;S}v%vS*8a%)xT!RQ2sa5Sh0F9vp-bxOVTZYXA3IDZ*DOgnW3ENcY30Q zz;8A){sNqpMp3QoJRHQjwQw=n3uDV=4m1llRR5krnB2+6#wf;EnM zy>Y@~(vM5}8<>-J&D9s>Ib&z;f7d-b^osw}nH15v(}rPez8@<)@4BHxTn0SGAOF}d zRwW=oXhqx(J0#QP;jso?dEO6wpakng=crat0=IPQ8R5*;bv_cP+)P8=>QkSO`TE(+ z$CVILLa#0_$^V%GVxFc)lzdb(i&LqZNyq)nLGAO3)9n`ZS3Xna_ur^tnY0n>5w*K^ z$0A<^Uwejiwb$$dd8o#K;Ad3xC$^}{b8Xr^epG+T@RL`O8(3BX2PDgas`o1*o;aX8fz?Sk z*!g&Vm;6c`gi9rEG~O_qze`xr1M}+k4OwV3*?TsBvktCp-(TZ!`eKSASmWBWBOEk=2M5AVayr00b7!wPSxPctfYqBR6UZO z`$Xhag9sm~gFPO0zh+j(TLeF;E?^>tEdr1EmJ`S1^nfif#%ziH5A2{K996rq0}NhA zJX!c2d`dh}TQjiV68N^gU#yfctmsDLQgy?UTzw*cCILTz;S1M`tTo~UEk$|_l|yBE z^pZ!4`Ou(GruKKZ22=bi+(F~c-B-imZ3AYRHK6yVg13(~H2eyc@J!8ktyLRV`Rg-X zgG?Pz&9|=~f;b>x+rDoj0ge?8tc)@lQq?@5=fTqy{J}?;i|m)hSXGW z<$zCS2rW-OBQ@cgu=TEm1R-5xL?_vz-eVHcE?t|lur7VCUmDk5P{n^LHoBpjDsa#Rm41Y>@HhgqMWyCN2b>(vM z&*j1T6Mh!Q>gOR~Wyft(_7A}$9mV)h3Rk%&r`ll2-mmrJPdN#IQ3Q>&NX`DDM>rrK zh{>)x!%KRz5lZNOObMH7`+CLK^jZ-mS=7X)?u-G{!s>I&!rP@j)$ogFFmw2fksWua z?4>)U4T)RM#MhLo%Fb{g>`2vFZ!1Jjm|xAt`l5qoVjb}Nq2zH+&> zqI^l6{zlNe3Ti;OsHVJ;F?#>Z#LCo;sLHG=>)=jqfY5Y~54|c|{UHZa9iyBpcf)oi zmQrTQ0nw734{j49DMTG~oCzMN@=A$J(m(uX{An2VtMmSaqh!O-?S_ch$bC((I4=v! z9{V@z=hO5n1|m$)YI0q=++ij@hs(I-d$|6u#Q%d|j~_64BTak#`LcORMQt@ve9E_2 zRtPL3?r94X7j^)v%Xwq(#8(;eohf?#YvqK#(x1o|C>coMPGT<|FLq@sSBewAI9i$D zJ>4Kd3|o8BE2g)sQ?PdHWG7;ycy=>(m*U~Y_E&-7|5XNP55_>>KRqhvzo`DaQnx={ za`o-Kzts^YA~Dd3O0y6;#T)oqL_a6A2>OjO7ap?sjhFhhN6!X1vk^@2?#hCf|57|H z)*TCXteqbFeCbcXb&;Ja!%kgXbObI>mBno>FWU^oBqPGGA&PGT2d>+9cu@laiQ7v( z$ILKAmR?(P{qVT->#Z5$lpaUyZS2!1p1*b!kla2%9WlL}DuvrxS(zD94)Y%Ao-`lPJCbYXg+6@L#zLo+}8Ahc9v2kZ9K0%^hu@B?6Dq$ z+yJaPHtN{9ze{mKsd3!E?H-TwnrI;-AgsgTw1ZoHm)x`6ux|V#KmD!n!46@EdgM${wAff z)VXlWrL#5OJ@ZhXthDft<@mXsNzc&%8ke94RY=KiOl7aFqhD?dS5!8^YRUA*wG1BP z&039c&`PgK?}i zWGO1#;7UC+ecOIDE{Y_d!cg%YIYqA@mh_pO6i}?u8P2zJiMWa8NBUwl$$XaE&)7(c zp7LHzFZ$E4$z=vL>+;0Syar2I5|(>Gii+=SK37D&xKFV>SYVVkPT8QP*R(X#ox`zG>)B0Py6{H3WJrx ziO=)64rcp8c6V%#LBQm%3u-n^Ud>Q!b9Vo2-^tS48f?>y-Wa{_80-W+-hP$m?5u-o zC4re^j(FQK5eh4;cU z#%{Mm4@@#bA{mYUd~vb?%H}yyp9~#+SFe{V3qXX0$b}s+m6~^itvWb*YjO9Ll&a_Z z4}dj#MZgpO;mrT%PgEcams~9^LL5{e+l7E3!w16qHq9%}fy?Xck@Eml9ZoghJ_UL` zmCgrD-NI_lAYTP8VvskzchzJmACUL?>+8K$8V8@_n9Fdm>|#>B!t#7}qhCEx82fPD zu6bjC@fCR)oKtlzfjvYu|0_H`5b6M53+7%xE(qr=)VhOk@FAK_@B|n|54(whGQV#f zuN-(nQ;plpzucc;jTG*iWcrMBJoBD|D>7#UTB*}K4)PE(c8iCnmD;vY`wTIG6tJraZig+; z1`{S&78b%x%Zm4;RqhVbjPK(?t9Kt6xq&;y6G?-xf#O~gTpA~7>j&G~U*d8Fo-h=n zya5sCcl8$buF{3y`CF(oL*Bp@O!AVjA*3MQjpn0AQ;j9PSO3G!sjw<5q+7{1Ou(U@v*T8c zb}@X)DAPLdPXB-NZ+bsEpf~bdYjB88@Pj$D1ax%}M+f<2ynPa~kPVl`EdW<2sJg%& z!pi+hUdTD`IbHn%I?<9qW_Z8zo@?%(XEo)8`&CvgL^9jxxFKWA+_2N9k0WwUKQsq8 zy?-k1_qbI7j2^uVR0Rv{+5#p>%c~aJeQS}lO{=z`Sf+Vzh99kQI(#@^6*A`BNr3Y9 zJ~F^-<&+6pSGqG5K?~%LzJ{Na%g12|ttz>Yjm?=oPdyWfFopz%)jL+^qawy-a`5>{ zxWjI^;DOJcb^oer-M*WheM;Kv0ZSd!QZ_`rDx9Hw+(ev9~m2#1Z)q^ZH|! z*PTM=O7#%VUD~ZsYVF+MV2zPA%BwkeV;%!;nQ8(X+?%};mtOY{aF8hPdus9jgjg4K zI3VjEN^}qpdX2G&!1StYdy{d5i7Qa<&K1WSC#NY2de$wdcob%br zuqWR0h`CyP+d8PK(as=GDa>lLM25RfPKzsh?j5)adnGzau;j4DU#4@8bdF?b!VZ}* zVJ&^WnBD64deEV*Q$I(+8%e_5nYhqpkG(T0H-aem=S5mg-dH);mzPXawIS&7BMMvs z${qkkQ19NjiZZ^!kMw~biB6h+(Vq^)T`U040;GUKUVVZMV)jExzwIWRgLCyuTf|H8 zf5Iir@)a$v6(zu#5NDCYlRmgFg44HL7cON>L29L+8m*N4j`BJb&xU&+5quN-*9v+d z7wk{dj}$;|Q+IZVI}@HEv;nLBTah0)1yvmBT!MGaE_9honOC0)?8<|l_zQ4Ng#4RK z`a65^eVP8n68)Qt`hPKK|K_6p;YIm3lkW(Tpznz!#hdI(!f*5pr`5UR*7J%8a(;2k?v z-aPW*Yk|JrdNs|!Yx0uA^Ou`CtbJ?Hi@$M3{k4840Nnj0#NWItg*SofE@df2T7s^aS^0 z{yA=G^??}GOL<;A>fhsP;mAc&=i{5gi|Sr41-36-saBQJ=#0-0UNlgexegGtnA|rY z_9|e^p_8tEjk(nQzcDAVFW!LuCF){G=d-`d+E)LctOU+W-(_)&I6nJB*6$Ce{zDcZ z>E%P&&fIe+To-TWyyU1C7VLaZ7U_POaWYW-AVvgxbYk`mXulo?0=5AN*W9lOtm&np zzt&VeK89CHvok;R5<*80_kB%S7tuE;n#aB;3;IQB|CiwjGC1ik$*!pjdHBx`Gs({g zV@&()muVC~^Q|T{^?(BIuiDMeRu0$J;*FX(0df4Tzq1ZPdRmM(s@cP7X3loQLAqzfWM8!7&`CZuoV-9xy9l(X5 z(7w19Zy@ihoxpgUt{YOOcYo92ZCwN8HxyhSdF*VRrBmaI zq<(l_^Zq^sV*n*?BxGBigrM`8<6H9lAdeggoAx2n%1X&M#>TunUgj8g>0s=Z=j@d? zuo^}=XjdtWR-LN=nP)(02QNUo?7=|g2ip-|mvBz8;zO8yN66fu2>RW-K1x~T{8VjM zn(u7R(aG@7hJ+d4R{);K01{alMBQ@72(7FVSzp(YaPtLS*VG2`)h$tRYrJ&#Ipqm= z*>D?$>5G9OC0Z$M6M<@#t1(`xJwCG?ySe;*HZvirmF+|7{ASpp7u76+H8RZ8?;w?t z>u`*t?%ORxymG{5Xu=wSfJ@<^>*}p>o8GfY)mBxTdaI_9G#sk*f$6U&N`6aFvg2RQ zQ8FXaJwper%%GWGFIlhfJ=l!|o4z)A-|YZ`e5iURb*Q_xU_5HREwF5q=zt(6S2fHD zNcp@ub2=63;N6*bBzn|G91~h+iyVpEP!&bMYW4TCZP8usE+|i2;^G(ZDQ`nq){iAuV-!sVn2GB|E)v@6t3`fOaN>0Lg z`I)GM%o8?4(PtvjE!08X`G=E_uGu2Kw<5?-N~P?Vq9yH{HxO_{SXh3$!@+Mmzx*PW zvkLfoT!dg+is=l~bi$trT{N{h9k<0;bfnUT+HLujA8Kp&7>@s`XJU-qPf2{LT@1Su zib*_O3g?ywHG6_t(_zJOxgt$mIqiPia4K8EId0XJ`N`&s6T9l(NI)xq5MS@cwn5fq&@e-`MIn2F4nA<7zjSv{<_`KUtjk~a>4$^1xDl$XSN z*9F1Ev9w;Z8PZ1gQ}*qzQ20r<#4p8j=26>Bi4aaKY|qVls;L5Tl1oRhIs36QN*II_ zW~Y`#%Uc`OaoK5Qd>CTo_ghO^$$T;6ppI@re24n)!y<`Ib1e9iY~MS(EZN!vNtR-G z8#Ho;k0fb7T|_piF7Lr#tDA>8QQ0CE;^|&M!PVK(2ix4ksL|M>#?{kNxhM_mo_ZnACgO!Pz*tD1oiNlw&y81B`Tgw z;8UFmE|wtPR{>k-4hH9vTdexJw0+*4~xVP+KipaUvLuX zPDt5JzmENEw1lHx(a$I9|I)F$`}tvvgbkbm_Hq)C@mBLTfqk%Siby330A%?qPpoUv zf*>ibFJz`Z+~MHAl^J5!A35;K1Bh^QJhQQmm<@5F&!$Yb&~JXkjdGM#&ax_Z9Itp} zZ#2&K+!gkvd?-OYB!tKp-m_BEv8b*118AjizwT#yHE?+EWN&BDNlUqDZk}h~s z&H44YWp)|V?AX^?J)3^p`|4eY@chF*_=%$li3?r{dSX$niGxS`&1Z|JZy92(dmj6; zFrgK8W81Z46Wi0R*+`$B)#ir;P9(GM3vXqZEh=R+?2;$7>X)JV*NoU{6?kNS$P|;X zsOz0O8QzV1K~kK}*Uwk;!7!aiS|J(b?T>Agdcg?gkR(bp@Bl3-UtNcP}Q z9rO-LsV~b|%aIeEL{tiy8!1*V-GhEQTtZlv{OGx;@_L<|1i~f56(d=rkhc9|uqo`q zh@ZhSvaw#k_{~U0ue7~jcs+T_-*{)O1u2~9ztdYmn*X9Qy$3E$WE0z zdP>*DvF0VC!><-

E5w96tCB?(Ck)3$>{;RBn3Dj9_5b1MAJ4(l13SN21$Ze)XBJ zCxE>i$ASilPIXSfxbe(M&)*&(?PF6}iAsmM^o()(c`C_GLT7^qc`0C@?vASU4#^@< zZWwc-`B87ItPg$!-dIWq9g&f!qbW0V>Uyu}XWNyk+S_eg!1RRc7#v5*{Y@-)29gv3 z=c>%F4;f3FnnjBW{aTryQ*9vXj@_fIx>YM1+eBOqfv&F3kXIwkErV36=rA@XC^C=1 zmMZm54Wm3mONTJNEGdVr*dj?Dbr#iD4l6YEsrDVWAc@lTS*~`WSAhq`t&tN5vakDH!UtJMh3A55$5oNnow9SThlNd-%n9t``}mCw7^`vQ?Lx(0npD8LSIS-KpQT; zu5kdP@a;4Zru}Q4a>gE}|IwDak_@?v5g{&!>x^ZS9m;wGikx=7WAs`eM)tbL+I743 zmHDw4>x4I~gPK-|T~T3y(R_r3Q>{CnTxkJ}6j;BWMSWt)rcr06aTjx#OGt6Sp6jLT zuL|29blSp8v6F@9=pOy+SncS!DyNc*?qXp^+)9o3z2TQ`j1uej;GZ& z-Kyt&DdbU>jOpsPz!A>Wa~AQrey?W)RTte7Rnb!`9)Gub=5))&G#Upu%yYKG(p3i| z2dy|XsD^n$Mn+orQ!(@)C+F$u7*cWV)UJ~VZ|=))RA71ST&X~TmqaeKj8@Io?n~i; zpj<_qPQNreZ{@q?BQ9_1LanmPh}lXQFs< zSBgK;pTmO0ZId6Ijhx8@n)*~u=^F$yid4#mW|E+6-H6_PieaW!R_WFYdgXPQATK&) zsgKMrr!v{Bi^y%bs^6>KH;`cWQZF7(rL|2O2%8-k&Xi|db-G_a!K_^mA~rIp10y z=q1L8^-~TySx0T^s4dp7&K=jg4p*Fw4!T$p7$Vmr9M+nD5K-o2pz(P2LHpzjq`hbU zeRx9OikyO#?t$FYJp|(6J?~hG2>E?TdbbwV;aGlrN*2n%Ie>u)s~n`&H2GQ^wJuR5 ziQ)>~<39bm6ndf1V*ZA&tCM1JwK*I^vpE(!>Ev*&R-tS?=Ukf1Cvq|^?F`&bfoJU| z89xSpibp)me|tqRJ=MF)c-{5muW8%MXxPnFl(=%m5>=1Fcn8ZNN~JfKlPL^XSD(RH zgJ&)reKn-z?6)blmPxA)muHIllAVslBSbM+A=H>&>Z=xXel66(;c~r@`G~CRbh;6` zOGw^BGuUg75DB+gAU~aaPYq0~wzVm}HnPEyZJXcRvQ$T&8vJGM>(|H_3Y2`cyN8DA z;HqPcqznG6lcTfqOj9is{l2)lV}rydj#V6{h)J1dCNr!tBf9j`Et3EBh4`Fy)0+RfV%Wa z2iD*(iU&QTe5BU7rd3F7O4erjCiAzbdagN1CzR^BxkSFh;~8t6>syF>0P(4x$D~{a2k~IJmW_%^ll}H=HXdK~RD%(Qauv!Wvq(2L^ifQ6 zN+#)nIQ=)*E@zX;xVp=N+G^bqrFSxZE^f_O@YCdNR;ZvUvNlro-1`p9lqS~16mJW> z`icx*{A6d`B_V}q5w9A!mwW9%=|F}NH7vK5|ElY4>xbDDzJL;9k$z-GSMne)X*4Ur z1{X8x`Y2kBCz#C|(!ovD6LQU!!4PF0eHa(RvMNF0q8{0_f|sC7+wS}8b|LvvuPlvA zmDX=^H6AXc41T>18)p`CzF>ECWr8o5Tu$~k$Cf$i<|>1g)-LH1!jUq&zfO?r*3K~{ z+(f=*_o*1A*`n$^SjkrPN|W!|qsu3s-@M%KCn*^>?n+Yc(w(_ZLP-pghE}GF-z<jaF`jKvtg z8?~*P4#W?hD)GQp@!ULMg02o7=jaxM}I@<{Jz=5Fg92m^|H8! zNzk>Aoj;Yi3t7Q^OcHP+pk}5KFUg3Qh)4VUS85Ej*YSAxrY;%TD21`(O?!A%O#q_6 zw72i~@?&VKzA>IM>$_Q7PSj3Y$eV`M#Poo{*h*6xuY!D(@Rx}7yJYTpXFL}WK+gxl z^{lxBk{>~DA*vT5O9$-c&i_QUOLsG!O)^AFpTG5X_o<3dVmz6F06Kyl2+?LigX?q< zO@P{bA#%31Wu1tX5a5c;(uk_6`8xAK0V$*$IhuNUuyoIp5fKqAtR^4XR6FYs#8JwB zpU>(u(ja3&aQT@!Ik|}T-1=<7&KO-yGYR=jGpTub)D!+bD~-rd%~ec!Q5Uk{=FWfK z1*KU7n>J75@x7dP**<@babr>exqfpSM)ww3S6bC9jPh2WuG3!L+ZN`vt?2Pjwnf9Q ze7kjmmvohv6eh&tNwc7$<8_vuI-hCTT|=*<>pvv2kjgm|J%YYj>)L3gc~DPmv>co* zxwWN*bhL(x<(D-d(Nlp2@!^?uqienJRw+lN=KjA|e+NgEu>Ze8jlodTQf(K~$G{ z>55e_I|PE^*NIM|X(-3%FW&Om5XV4gDuclacVo*yisQ{e@Bv4WQmz%iIPpdE6N_G~P`$N5%C?>-z%lx54}t zi3=pB)7`h#tk}{+4k{g4Ref=p<=%XJ&`3rhKx_a$ikSVdtf-Ko#iJZ)KWkq$lsDX$ z_=1uS^se?uvX5G^f)W>YX79r8l*FA3RtbJsGLV;bq73L`qD;Musskw=yihkCh|n|> z*!D_FNHZB$ySkMrGJnEc*OVYLB5G)^b561b7FwjMk)&$ib`vox0uRIJG$MnKOy@om z{v#-916Y)KIxFd6{27Z0J91rchb0ebNw- z&XMiJqHD_qCbv)Nk2R0;i^_WEfBZ%hk;WCx3ZP;8#wR5`73u=%9&V3|Y1o-*&Wg?$ zZOuy4$BDwGrK#@Eoe?98!w^R0XQ&vazg&;)6r`o1XnDst zty%-Izl3gEeV+oUSu1HsiIMMc{-rX))ls#&&{H3uzRmlaO6G9(MqdYP!l#Bq`+8o; z6qtDoKV*rmdVN{@M9Pz#7}q=COH7c*1Z;vPPGM@iqFFyGFYWV)8ir}R91;;+{XMFv zlohMYeHlA|+tT#94CNgo!ZN)`tT2Q1Pa{q~Gr`vZP*+Z_i(kk)M*u;GEENkzj(Q{q z;Rw?^y)wOkN)z+H9&^5#pB2y^eFKNTTIn%e95uWKl}`y;?eFe3NalS76u|7p=?mNT zErc3<%f(N5J5h(j+~*avyyiQqG*VKGO1Ixxu1a02I+6BegoMV0mXG>kDY=|%|6mlYT<_)T>ZxjB!t`>h97W2wM4~v z?B&^WCDv|o!05`Sp~0($^9xzJ*S9Z#?P^sFrC!_@Y9&XFoz zt;}+$^m+624Q6p-LDZDHn@h0J(#Gc6IsFI+%pGWiu^p>?`0DXe*e4Yax5}s;kMh6< zgrTwP2-q?ut-5dJ=4J7#Mf$};d>d2)RZ}@J7cqy=px*)m8x`c<^xfQVFtu;FopN%i z|EJ3cRtItNQPj4voWVIy)~(d2?`JL)5oTxm(;vNxF&qiIl*V_WencX6{zd=K5XfgAP@av3F4eJfXI{I2O?yHAOX#|L& z&A2HsmDa4zH=rNR`@oOZ*--*OBmK?B3IXHRDx=y;>GNqBKVx5?ECHW4{m_@5U0zOn zv%NOVF*Nb87~{}swBhSwZP zNZy&1fS(k*{OyrdbE^;YVe{(^+$t2UPk)F~tw=Ck=O*Jn5E`8?>z_*6EsqQ^%{P>% zIbR^~IfbmtnbN=L90${z2h&rw>&(nGvX)lx^qEf`4g+*BUDG?H^cc?uad^AJU58p~tzKbDz?BSp(6b(T+$4*J!( z;p5W_Vy5$Dl#F@qcG!&^Q8&XhwIulq#8u9eE%k8OO&D4UR8{h34AC^9`ne#ETV`{5 z`In0}#h{Wn3%F2a%vtZGjJXI}{TUZySeDyZJBNrg&4@w@&PfCSX z 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 persons = new ArrayList<>(); + for (int i = 0; i < 100; i++) { + persons.add(new Person("Firstname" + i, "Lastname" + i)); + } + + Grid grid = new Grid(Person.class); + grid.setItems(persons); + grid.setSizeFull(); + return grid; + } + } + + public class Person { + private String firstName, lastName; + + public Person(String firstName, String lastName) { + this.firstName = firstName; + this.lastName = lastName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + } + + @Override + protected String getTestDescription() { + return "Composite contents should resize without a delay when the" + + " browser is resized, not only when interacted with."; + } + + @Override + protected Integer getTicketNumber() { + return 12153; + } +} diff --git a/uitest/src/main/java/com/vaadin/tests/components/composite/CompositeVerticalLayoutSplitPanelResize.java b/uitest/src/main/java/com/vaadin/tests/components/composite/CompositeVerticalLayoutSplitPanelResize.java new file mode 100644 index 0000000000..a9e4ab4c6f --- /dev/null +++ b/uitest/src/main/java/com/vaadin/tests/components/composite/CompositeVerticalLayoutSplitPanelResize.java @@ -0,0 +1,59 @@ +package com.vaadin.tests.components.composite; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Composite; +import com.vaadin.ui.HorizontalSplitPanel; +import com.vaadin.ui.VerticalLayout; +import com.vaadin.ui.VerticalSplitPanel; + +public class CompositeVerticalLayoutSplitPanelResize extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + addComponent(new CompositeVSP()); + + getLayout().setSizeFull(); + getLayout().getParent().setSizeFull(); + } + + public class CompositeVSP extends Composite { + public CompositeVSP() { + VerticalSplitPanel verticalSplitPanel = new VerticalSplitPanel(); + verticalSplitPanel.setSecondComponent(new CompositeHSP()); + + VerticalLayout root = new VerticalLayout(); + root.setId("root"); + root.setMargin(false); + root.addComponent(verticalSplitPanel); + + setCompositionRoot(root); + setSizeFull(); + } + } + + public class CompositeHSP extends Composite { + public CompositeHSP() { + HorizontalSplitPanel horizontalSplitPanel = new HorizontalSplitPanel(); + + VerticalLayout root = new VerticalLayout(); + root.setSizeFull(); + root.setMargin(false); + root.addComponent(horizontalSplitPanel); + + setCompositionRoot(root); + setSizeFull(); + } + } + + @Override + protected String getTestDescription() { + return "Composite contents should resize without a delay when the" + + " browser is resized, not only when interacted with."; + } + + @Override + protected Integer getTicketNumber() { + return 12153; + } +} diff --git a/uitest/src/test/java/com/vaadin/tests/components/composite/CompositeVerticalLayoutGridResizeTest.java b/uitest/src/test/java/com/vaadin/tests/components/composite/CompositeVerticalLayoutGridResizeTest.java new file mode 100644 index 0000000000..41adf85dd0 --- /dev/null +++ b/uitest/src/test/java/com/vaadin/tests/components/composite/CompositeVerticalLayoutGridResizeTest.java @@ -0,0 +1,43 @@ +package com.vaadin.tests.components.composite; + +import org.junit.Test; +import org.openqa.selenium.By; +import org.openqa.selenium.Dimension; +import org.openqa.selenium.WebElement; + +import com.vaadin.testbench.elements.GridElement; +import com.vaadin.testbench.elements.GridElement.GridCellElement; +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class CompositeVerticalLayoutGridResizeTest extends MultiBrowserTest { + + @Test + public void testResize() { + getDriver().manage().window().setSize(new Dimension(600, 400)); + openTestURL(); + + WebElement root = findElement(By.id("root")); + Dimension oldRootSize = root.getSize(); + + GridElement grid = $(GridElement.class).first(); + // inner level element that is expected to resize + GridCellElement content = grid.getHeaderCell(0, 0); + Dimension oldContentSize = content.getSize(); + + // resize + getDriver().manage().window().setSize(new Dimension(500, 500)); + waitUntilLoadingIndicatorNotVisible(); + + Dimension newRootSize = root.getSize(); + Dimension newContentSize = content.getSize(); + + assertGreater("Unexpected vertical root size.", newRootSize.getHeight(), + oldRootSize.getHeight()); + assertGreater("Unexpected horizontal root size.", + oldRootSize.getWidth(), newRootSize.getWidth()); + + // header height is not expected to change, only test width + assertGreater("Unexpected horizontal content size.", + oldContentSize.getWidth(), newContentSize.getWidth()); + } +} diff --git a/uitest/src/test/java/com/vaadin/tests/components/composite/CompositeVerticalLayoutSplitPanelResizeTest.java b/uitest/src/test/java/com/vaadin/tests/components/composite/CompositeVerticalLayoutSplitPanelResizeTest.java new file mode 100644 index 0000000000..362a81ed8a --- /dev/null +++ b/uitest/src/test/java/com/vaadin/tests/components/composite/CompositeVerticalLayoutSplitPanelResizeTest.java @@ -0,0 +1,44 @@ +package com.vaadin.tests.components.composite; + +import org.junit.Test; +import org.openqa.selenium.By; +import org.openqa.selenium.Dimension; +import org.openqa.selenium.WebElement; + +import com.vaadin.testbench.elements.HorizontalSplitPanelElement; +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class CompositeVerticalLayoutSplitPanelResizeTest + extends MultiBrowserTest { + + @Test + public void testResize() { + getDriver().manage().window().setSize(new Dimension(600, 400)); + openTestURL(); + + WebElement root = findElement(By.id("root")); + Dimension oldRootSize = root.getSize(); + + // inner level element that is expected to resize + HorizontalSplitPanelElement content = $( + HorizontalSplitPanelElement.class).first(); + Dimension oldContentSize = content.getSize(); + + // resize + getDriver().manage().window().setSize(new Dimension(500, 500)); + waitUntilLoadingIndicatorNotVisible(); + + Dimension newRootSize = root.getSize(); + Dimension newContentSize = content.getSize(); + + assertGreater("Unexpected vertical root size.", newRootSize.getHeight(), + oldRootSize.getHeight()); + assertGreater("Unexpected horizontal root size.", + oldRootSize.getWidth(), newRootSize.getWidth()); + + assertGreater("Unexpected vertical content size.", + newContentSize.getHeight(), oldContentSize.getHeight()); + assertGreater("Unexpected horizontal content size.", + oldContentSize.getWidth(), newContentSize.getWidth()); + } +} -- 2.39.5