<Swing Dev> [10] RFR JDK-8178025:HiDPI with non-integer scale factor - SPANs in HTML are rendered overlapping each other
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Thu Nov 16 05:53:26 UTC 2017
> That is a step in the right direction, but the idea that this public and
> supported property can only be discovered using a tool seems wrong to me.
This is not a separate tool, it is a class which can operates on java
beans. And the notification which was added in the fix is related to
java beans: java.beans.PropertyChangeListener
https://docs.oracle.com/javase/tutorial/javabeans/writing/index.html
"Writing beans is simply a matter of following certain coding
conventions. All you have to do is make your class look like a bean —
tools that use beans will be able to recognize and use your bean."
Here is an example of the properties and the beans:
https://docs.oracle.com/javase/tutorial/javabeans/writing/properties.html
>
> The existing properties are documented under
> Component.addPropertyChangeListener(listener) and
> Component.addPropertyChangeListener(name, listener), although
> unfortunately the lists are not identical.
It is not fully correct because it mention a bound properties like
"minimumSize"/"maximumSize" which formally are not a "public" properties.
Information about properties can be obtained from the class itself or
from the special bean info class.
We have a special com.sun.beans.infos.ComponentBeanInfo class which
contains a list of properties for the Component and I assume it simply
was not updated when implementation of Component was updated(or updated
in one place but not other, etc).
>
> Alan
>
>
>> On Nov 15, 2017, at 5:10 PM, Sergey Bylokhov
>> <Sergey.Bylokhov at oracle.com <mailto:Sergey.Bylokhov at oracle.com>> wrote:
>>
>> On 15/11/2017 08:42, Alan Snyder wrote:
>>> If the solution is to listen for changes to the graphicsConfiguration
>>> property, then that property needs to be documented.
>>> If the solution is something else, then what is it?
>>
>> This new notification is related to the existed old property
>> "graphicsConfiguration". This is an old property because we have
>> getGraphicsConfiguration() method for some time. This fix just make
>> this property "bound".
>> But for some reason we made public only a few properties in the
>> Component class like:
>> name,background,foreground,font,enabled,visible,focusable. This can be
>> checked using Introspector class from JavaBeans. I'll take care about
>> this separately, and when it will be reported as a "bound property"
>> the user can assume that this is supported notification.
>>
>>> Alan
>>>> On Nov 15, 2017, at 8:20 AM, Semyon Sadetsky
>>>> <semyon.sadetsky at oracle.com <mailto:semyon.sadetsky at oracle.com>> wrote:
>>>>
>>>> +1
>>>>
>>>> --Semyon
>>>>
>>>>
>>>> On 11/14/2017 09:57 PM, Prasanta Sadhukhan wrote:
>>>>> Hi Sergey,
>>>>>
>>>>> Ok. Updated test to move to 1st screen and then to 2nd screen
>>>>> http://cr.openjdk.java.net/~psadhukhan/8178025/webrev.09/
>>>>>
>>>>> Regards
>>>>> Prasanta
>>>>> On 11/15/2017 1:38 AM, Sergey Bylokhov wrote:
>>>>>> Hi, Prasanta.
>>>>>> I checked the test and it fails on my environment, and the reason
>>>>>> is that I have the main screen on the right and the second screen
>>>>>> on the left, which means that the test moves the window outside of
>>>>>> any screens. But it should move the window to one screen and then
>>>>>> to another screen.
>>>>>> Small issues "f.dispose();" is called on non-EDT thread.
>>>>>>
>>>>>> On 13/11/2017 23:58, Prasanta Sadhukhan wrote:
>>>>>>> Hi Sergey,
>>>>>>>
>>>>>>> Updated webrev to use setBounds() instead of robot in test
>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8178025/webrev.08/
>>>>>>>
>>>>>>> Regards
>>>>>>> Prasanta
>>>>>>> On 11/14/2017 4:13 AM, Sergey Bylokhov wrote:
>>>>>>>> Hi, Prasanta.
>>>>>>>> I have only comment about the test. Why it uses robot, I think
>>>>>>>> that the setBounds() to another screen should be enough?
>>>>>>>>
>>>>>>>> On 08/11/2017 23:13, Prasanta Sadhukhan wrote:
>>>>>>>>> Hi Sergey,
>>>>>>>>>
>>>>>>>>> Please find updated webrev which changes "graphicsConfig"
>>>>>>>>> notification to "graphicsConfiguration". Added auto test for
>>>>>>>>> this property and also fire the notification after the change.
>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8178025/webrev.07/
>>>>>>>>>
>>>>>>>>> Regards
>>>>>>>>> Prasanta
>>>>>>>>> On 11/8/2017 11:11 AM, Prasanta Sadhukhan wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 11/8/2017 2:01 AM, Sergey Bylokhov wrote:
>>>>>>>>>>> On 07/11/2017 02:55, Prasanta Sadhukhan wrote:
>>>>>>>>>>>> AFAIK, all client property are by default "public" and I do
>>>>>>>>>>>> not see any documentation of any other property too. Do you
>>>>>>>>>>>> see any other property being documented in our javadoc?
>>>>>>>>>>>
>>>>>>>>>>> They are "public" but it does not mean that all of them are
>>>>>>>>>>> specified. Of-course it is unlikely to change, but it should
>>>>>>>>>>> be taken into account.
>>>>>>>>>>>
>>>>>>>>>>> Small comments about the fix:
>>>>>>>>>>> - Why we fire the notification before the actual change? I
>>>>>>>>>>> suggest to create at least one auto test to check the
>>>>>>>>>>> behavior of new property.
>>>>>>>>>> I guess I am firing after the graphicsConfig has been changed
>>>>>>>>>> from what it was last time ie, after
>>>>>>>>>> if (graphicsConfig == gc) {
>>>>>>>>>> return false;
>>>>>>>>>> }
>>>>>>>>>> If the graphicsConfig has not changed, it will not fire the
>>>>>>>>>> notification.
>>>>>>>>>> Also, I amnot sure how to go about this auto test as I am not
>>>>>>>>>> sure how to change graphicsConfig automatically.
>>>>>>>>>>> - What about other classes which call
>>>>>>>>>>> BasicHTML.updateRenderer() in a propertyChange? for example:
>>>>>>>>>>> BasicToolTipUI, SynthToolTipUI, BasicButtonListener.
>>>>>>>>>> Yes, these needs to be updated as well.
>>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8178025/webrev.06/
>>>>>>>>>>
>>>>>>>>>> Regards
>>>>>>>>>> Prasanta
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Regards
>>>>>>>>>>>> Prasanta
>>>>>>>>>>>> On 11/7/2017 7:37 AM, Alan Snyder wrote:
>>>>>>>>>>>>> Is “graphicsConfig” a new public client property? I don’t
>>>>>>>>>>>>> see it documented anywhere.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I think it should be public, or some public equivalent is
>>>>>>>>>>>>> needed, because there are cases where applications need to
>>>>>>>>>>>>> recompute a layout after the graphics configuration changes.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Alan
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Oct 30, 2017, at 11:12 PM, Prasanta Sadhukhan
>>>>>>>>>>>>>> <prasanta.sadhukhan at oracle.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Ok. Modified webrev to make sure data is recalculated by
>>>>>>>>>>>>>> listening to "graphicsConfig" change
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> http://cr.openjdk.java.net/~psadhukhan/8178025/webrev.03/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Regards
>>>>>>>>>>>>>> Prasanta
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>
>>
>> --
>> Best regards, Sergey.
>
--
Best regards, Sergey.
More information about the swing-dev
mailing list