<Swing Dev> Review request for 8015748: JProgressbar with Aqua LaF ignores JProgressbar#applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT) call

Alexander Scherbatiy alexandr.scherbatiy at oracle.com
Thu Jan 14 09:48:32 UTC 2016


On 1/14/2016 8:18 AM, Avik Niyogi wrote:
> Hi All,
> Please find changes as provided with incorporation of inputs:
> http://cr.openjdk.java.net/~aniyogi/8015748/webrev.04/ 
> <http://cr.openjdk.java.net/%7Eaniyogi/8015748/webrev.04/>

    It is better to restore the graphics transform after the progress 
bar is painted and before the paintString call because the a method that 
calls AquaProgressBarUI.paint(Graphics) can rely that the graphics 
transform is unchanged.
   In your fix the graphics transform is not restored if 
progressBar.isStringPainted() returns false.

   Thanks,
   Alexandr.

>
> With Regards,
> Avik Niyogi
>> On 13-Jan-2016, at 7:02 pm, Alexander Scherbatiy 
>> <alexandr.scherbatiy at oracle.com 
>> <mailto:alexandr.scherbatiy at oracle.com>> wrote:
>>
>> On 1/13/2016 9:28 AM, Avik Niyogi wrote:
>>> Hi All,
>>> Please find changes as provided with incorporation of inputs:
>>> http://cr.openjdk.java.net/~aniyogi/8015748/webrev.03/ 
>>> <http://cr.openjdk.java.net/%7Eaniyogi/8015748/webrev.03/> 
>>> <http://cr.openjdk.java.net/%7Eaniyogi/8015748/webrev.03/>
>>>
>>
>>  It looks like a string on a vertical progress bar with the right to 
>> left orientation will be mirrored.
>>  Did you try just restore the scale/translate transform after the 
>> painter.paint() call? Will it help in such case?
>>
>>  Thanks,
>>  Alexandr.
>>
>>> With Regards,
>>> Avik Niyogi
>>>> On 12-Jan-2016, at 11:49 pm, Alexander Scherbatiy 
>>>> <alexandr.scherbatiy at oracle.com 
>>>> <mailto:alexandr.scherbatiy at oracle.com> 
>>>> <mailto:alexandr.scherbatiy at oracle.com>> wrote:
>>>>
>>>>
>>>> - there was the comment below that it is better to revert the 
>>>> transform back after the painter.paint() call
>>>> - according to the comment from the 
>>>> http://mail.openjdk.java.net/pipermail/swing-dev/2016-January/005262.html
>>>>
>>>> It is true that a filled progress bar has different colors because 
>>>> of animation under Aqua L&F.
>>>> However, it is possible to compare colors before a progress bar was 
>>>> filled and after that to check that the progress bar is filled from 
>>>> the correct side.
>>>> For example let's set a progress bar value to 0 and get its color 
>>>> from 5/6 of the progress bar width
>>>>     progress bar: [_________o__]  // get a color at point o
>>>> Now set the progress bar value to 30 and get a color at the same point.
>>>> If colors are the same then  the progress bar is filled from left 
>>>> to the right [||||_____o__].
>>>> If colors are different then the progress bar is filled from the 
>>>> right to the left [________|o||] .
>>>>
>>>> Thanks,
>>>> Alexandr.
>>>>
>>>>
>>>> On 12/01/16 13:34, Avik Niyogi wrote:
>>>>> Hi All,
>>>>>
>>>>> Please find the code changes in fix as with the inputs received 
>>>>> for the same.
>>>>> http://cr.openjdk.java.net/~aniyogi/8015748/webrev.02/ 
>>>>> <http://cr.openjdk.java.net/%7Eaniyogi/8015748/webrev.02/> 
>>>>> <http://cr.openjdk.java.net/%7Eaniyogi/8015748/webrev.02/>
>>>>>
>>>>> With Regards,
>>>>> Avik Niyogi
>>>>>
>>>>>> On 11-Jan-2016, at 3:55 pm, Semyon Sadetsky 
>>>>>> <semyon.sadetsky at oracle.com <mailto:semyon.sadetsky at oracle.com> 
>>>>>> <mailto:semyon.sadetsky at oracle.com>> wrote:
>>>>>>
>>>>>> Hi Avik,
>>>>>>
>>>>>> Shouldn't the graphics transformation be restored before the 
>>>>>> paintString() call?
>>>>>>
>>>>>> It seems to me that left/right insets need to be swapped for 
>>>>>> right-to-left painting with mirroring graphics transformation.
>>>>>>
>>>>>> --Semyon
>>>>>>
>>>>>> On 1/5/2016 1:22 PM, Avik Niyogi wrote:
>>>>>>> Hi All,
>>>>>>> Please find webrev with inputs as provided: 
>>>>>>> http://cr.openjdk.java.net/~aniyogi/8015748/webrev.01/ 
>>>>>>> <http://cr.openjdk.java.net/%7Eaniyogi/8015748/webrev.01/>
>>>>>>> With Regards,
>>>>>>> Avik Niyogi
>>>>>>>
>>>>>>>> On 23-Dec-2015, at 7:29 pm, Alexander Scherbatiy 
>>>>>>>> <alexandr.scherbatiy at oracle.com 
>>>>>>>> <mailto:alexandr.scherbatiy at oracle.com>> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>  - please check that the progress bar string 
>>>>>>>> (progressBar.setString()/setStringPainted()) is painted correctly.
>>>>>>>>  - is it possible to write an automated test for the fix?
>>>>>>>>
>>>>>>>>  Thanks,
>>>>>>>>  Alexandr.
>>>>>>>>
>>>>>>>> On 12/21/2015 11:47 AM, Avik Niyogi wrote:
>>>>>>>>> Hi All,
>>>>>>>>>
>>>>>>>>> Kindly review the bug fix for JDK 9.
>>>>>>>>>
>>>>>>>>> *Bug:*
>>>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8015748
>>>>>>>>>
>>>>>>>>> *Webrev:*
>>>>>>>>> http://cr.openjdk.java.net/~aniyogi/8015748/webrev.00/ 
>>>>>>>>> <http://cr.openjdk.java.net/%7Eaniyogi/8015748/webrev.00/>
>>>>>>>>>
>>>>>>>>> *Issue:*
>>>>>>>>> The manual test: 
>>>>>>>>> Swing_JProgressbar/Manual/ProgressBarLAFTests/ProgressBarLAFTest1
>>>>>>>>> in testsuite 
>>>>>>>>> http://sqe-hg.us.oracle.com/hg/index.cgi/testbase/javase/functional/7/swing 
>>>>>>>>> fails
>>>>>>>>>
>>>>>>>>> *Cause:*
>>>>>>>>> Due to not honouring of RIGHT_TO_LEFT parameter for 
>>>>>>>>> setOrientation method applied for a JProgressBar for the 
>>>>>>>>> AquaLookAndFeel only,
>>>>>>>>> the progressBar does not have the ability to grow from right 
>>>>>>>>> to left. This issue was verified to exist only in 
>>>>>>>>> AquaLookAndFeel for JProgressBar.
>>>>>>>>>
>>>>>>>>> *Fix:*
>>>>>>>>> Added implementation for the check of RIGHT_TO_LEFT 
>>>>>>>>> ComponentOrientation and verified with other combination 
>>>>>>>>> orientation with available
>>>>>>>>> Horizontal and Vertical orientations as provided from before.
>>>>>>>>>
>>>>>>>>> With Regards,
>>>>>>>>> Avik Niyogi
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>




More information about the swing-dev mailing list