<Swing Dev> [10] RFR: JDK-8075918:The regression-swing case failed as the long Tab titles are not clipped with dots at the end with NimbusLookAndFeel
Sergey Bylokhov
sergey.bylokhov at oracle.com
Thu Jun 8 07:29:06 UTC 2017
But in this version the clip operation still not executed in methods mentioned here:
http://mail.openjdk.java.net/pipermail/swing-dev/2017-June/007419.html <http://mail.openjdk.java.net/pipermail/swing-dev/2017-June/007419.html>
http://mail.openjdk.java.net/pipermail/swing-dev/2017-May/007406.html
>
> Please find the modified webrev incorporating your review comment
>
> http://cr.openjdk.java.net/~psadhukhan/8075918/webrev.04/
>
> Regards
> Prasanta
> On 6/2/2017 12:33 AM, Sergey Bylokhov wrote:
>> - There is a problem in your algorithm which merges the old and new clips. The getClipBounds() returns a rectangle which is a bounds of the current clip(which is not necessary a rectangle but can be a shape). you can use the Graphics2D.clip(Shape) method which will intersect the passed shape and a current clip of the graphics.
>> - In this version you forgot to restore the changed clip.
>> - Also can you try to move the code which change a clip to the methods which currently ignore the passed clip(see below):
>>>>> BasicTabbedPaneUI.paintIcon() as well as
>>>>> SynthGraphicsUtils.paintText() are called in SynthTabbedPaneUI.
>>>>> - paintText() at line 681
>>>>> - paintIcon() at line 634
>>>>> Both methods have a rectangle as a parameter, but it is ignored.
>>
>> ----- prasanta.sadhukhan at oracle.com wrote:
>>
>>> I tried to incorporate your comments. Please find modified webrev
>>>
>>> http://cr.openjdk.java.net/~psadhukhan/8075918/webrev.03/
>>>
>>> Regards
>>> Prasanta
>>> On 5/28/2017 8:01 AM, Sergey Bylokhov wrote:
>>>> Note that you shouldn't replace the clip, but should apply the new
>>> clip on top of the old. This is necessary if the old clip is smaller
>>> than new.
>>>> ----- sergey.bylokhov at oracle.com wrote:
>>>>
>>>>> Hi, Prasanta.
>>>>>
>>>>> BasicTabbedPaneUI.paintIcon() as well as
>>>>> SynthGraphicsUtils.paintText() are called in SynthTabbedPaneUI.
>>>>> - paintText() at line 681
>>>>> - paintIcon() at line 634
>>>>> Both methods have a rectangle as a parameter, but it is ignored.
>>>>>
>>>>> ----- prasanta.sadhukhan at oracle.com wrote:
>>>>>
>>>>>> Hi Sergey,
>>>>>>
>>>>>> I could get your concern for paintText() but could not find
>>>>>> paintIcon()
>>>>>> in SynthGraphicsUtils() so not sure how icon drawing contradicts
>>>>>> spec.
>>>>>> Modified webrev:
>>>>>> http://cr.openjdk.java.net/~psadhukhan/8075918/webrev.01/
>>>>>>
>>>>>> Also, if we are not calling
>>> SwingUtilities2.clipStringIfNecessary()
>>>>>> then
>>>>>> we are not going to get "..." at the end which this test expects.
>>>>> But
>>>>>> I
>>>>>> could not find anything in spec, that mandates ending with "..."
>>> for
>>>>>> long tab outside
>>>>>> tab bounds. If source change is ok, I guess we then need to
>>> modify
>>>>> the
>>>>>> html file modifying the expected result for NimbusL&F.
>>>>>>
>>>>>> Regards
>>>>>> Prasanta
>>>>>> On 5/25/2017 3:11 AM, Sergey Bylokhov wrote:
>>>>>>> Hi, Prasanta.
>>>>>>> Please take a look to my comments at:
>>>>>>>
>>> http://mail.openjdk.java.net/pipermail/swing-dev/2016-November/006931.html
>>> http://mail.openjdk.java.net/pipermail/swing-dev/2016-November/006902.html
>>>>>>> The two methods paintText() and paintIcon() are contradict the
>>>>> spec
>>>>>> and draw the text and icons outside of the tab.
>>>>>>> ----- prasanta.sadhukhan at oracle.com wrote:
>>>>>>>
>>>>>>>> Hi All,
>>>>>>>>
>>>>>>>> Please review a fix for an issue where long Tab titiles are not
>>>>>>>> clipped
>>>>>>>> with dots at end for NimbusLookAndFeel L&F.
>>>>>>>> Other L&Fs works ok.
>>>>>>>>
>>>>>>>> Issue was in SynthTabbedPaneUI#paintTab(), the title is not
>>>>>> clipped
>>>>>>>> but
>>>>>>>> passed to paintText() as it is received.
>>>>>>>> Other L&F such as Metal, Motif, Windows which uses
>>>>>>>> BasicTabbedPaneUI#paintTab(), the title is clipped
>>>>>>>>
>>> http://hg.openjdk.java.net/jdk9/client/jdk/file/e748c6a2d2e6/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java#l950
>>>>>>>> before it is passed to paintText().
>>>>>>>>
>>>>>>>> Proposed fix is to do the same for
>>> SynthTabbedPaneUI#paintTab().
>>>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8075918
>>>>>>>> webrev:
>>>>> http://cr.openjdk.java.net/~psadhukhan/8075918/webrev.00/
>>>>>>>> Regards
>>>>>>>> Prasanta
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20170608/f898e7c7/attachment.html>
More information about the swing-dev
mailing list