RFR: 8257810: Only First page are printed in JTable.scrollRectToVisible [v6]
Prasanta Sadhukhan
psadhukhan at openjdk.java.net
Mon May 9 05:50:40 UTC 2022
On Fri, 8 Apr 2022 12:41:29 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
>> Issue was when printing a JTable which sits inside a JScrollPane and the table is scrolled down to the end to about 1000th row, only the first page is printed.
>> This is because when the table is scrolled down to last page, the bounds.y becomes -ve
>> [x=0,y=-15260,width=968,height=16000]
>> so the check `if (!((table.getBounds()).intersects(clip)))` is satisfied only for 1st page where bounds just intersects the clip [x=0,y=0,width=968,height=1296]
>> but subsequent pages clip
>> [[x=0,y=1296,width=968,height=1296],
>> [x=0,y=2592,width=968,height=1296],
>> [x=0,y=3888,width=968,height=1296] etc is not intesecting so they are not printed
>>
>> This is a regression of JDK-8081491 which was **reworked** in JDK-8236907 where the bounds calculation and usage is made same as in BasicTableUI
>> We need to use the same resetted bounds for this intersection calculation too as was done for JDK-8236907
>>
>> Tested against JDK-8081491, 8170349, JDK-8236907 testcases along with other regression tests and all are OK (link in JBS)
>
> Prasanta Sadhukhan has updated the pull request incrementally with one additional commit since the last revision:
>
> Test fix
> > I will rather not make the test more complicated...it's not a test fix..it just to verify the product fix..
> > I am not able to close in windows using ALT+F4 anyway...
> > Other suggestions accepted...
>
> It doesn't make the code _too_ complicated. And it makes it complete so that it can be used as the start for other tests.
>
> Would you be able to apply the following patch?
>
@aivanov-jdk Thanks for your suggestions. I have updated the test
-------------
PR: https://git.openjdk.java.net/jdk/pull/8141
More information about the client-libs-dev
mailing list