<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

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Tue Jun 6 08:17:54 UTC 2017


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




More information about the swing-dev mailing list