On 5/10/2016 1:10 PM, Rajeev Chamyal wrote:
Hello Alexandr,
Thanks for the review.
Please review the updated webrev.
http://cr.openjdk.java.net/~rchamyal/8147521/webrev.00/
<http://cr.openjdk.java.net/%7Erchamyal/8147521/webrev.00/>
Updates: Added a boolean field heavyWeightPopupEnabled and
corresponding property methods.
Applications can set this property to true for forcing popup to be
heavyweight.
Is it possible to implement setHeavyWeightPopupEnabled() method body
as setPopupType(HEAVY_WEIGHT_POPUP) and the isHeavyWeightPopupEnabled()
as checking that current popup factory type is HEAVY_WEIGHT_POPUP?
Thanks,
Alexandr.
I am not sure about applications using MEDIUM_WEIGHT_POPUP, but in JDK
source ToolTipManager.java /showTipWindow/ method sets popup to be
MEDIUM_WEIGHT_POPUP.
Regards,
Rajeev Chamyal
*From:*Alexandr Scherbatiy
*Sent:* 10 May 2016 12:02
*To:* Rajeev Chamyal; Sergey Bylokhov; swing-dev@openjdk.java.net
*Subject:* Re: <Swing Dev> [9] Review request for JDK-8147521 [macosx]
Internal API Usage: setPopupType used to force creation of heavyweight
popup
The first approach implies that a user should change all
PopupFactory.getPopup(owner, contents, x, y) calls to
OverridenPopupFactory.getPopup(owner, contents, x, y, true) to get a
heavy-weight popup in his code.
The second one looks better to me. It may have sense to restrict it
only to 2 possibilities: heavy-weight and light-weight popup if the
medium-weight popup is not really required to be used by users
applications.
Something like:
setHeavyWeightPopupEnabled(boolean)/isHeavyWeightPopupEnabled().
Thanks,
Alexandr.
On 5/6/2016 2:44 PM, Rajeev Chamyal wrote:
Hello All,
Please review the below 2 webrevs.
Webrev:
http://cr.openjdk.java.net/~rchamyal/8147521/webrev.app.00/
<http://cr.openjdk.java.net/%7Erchamyal/8147521/webrev.app.00/>
http://cr.openjdk.java.net/~rchamyal/8147521/webrev.app.01/
<http://cr.openjdk.java.net/%7Erchamyal/8147521/webrev.app.01/>
Bug : https://bugs.openjdk.java.net/browse/JDK-8147521
Approach 1:
http://cr.openjdk.java.net/~rchamyal/8147521/webrev.app.00/
<http://cr.openjdk.java.net/%7Erchamyal/8147521/webrev.app.00/>
A new protected API is provided in PopupFactory.java.
protected Popup getPopup(Component owner, Component contents, int
x, int y,
boolean isHeavyWeightPopup)
Applications can override the new protected method and pass true
value to isHeavyWeightPopup for forcing popup to be heavy weight.
Passing false will result in default behaviour.
Approach 2:
http://cr.openjdk.java.net/~rchamyal/8147521/webrev.app.01/
<http://cr.openjdk.java.net/%7Erchamyal/8147521/webrev.app.01/>
In this approach access level of existingmethodssetPopupType
andgetPopupType has been changed to protected.
Applications can override these methods to set or return different
types of popups.
Following values can be passed to setPopupType.
0 : LIGHT_WEIGHT_POPUP
1 : MEDIUM_WEIGHT_POPUP
2: HEAVY_WEIGHT_POPUP
Regards,
Rajeev Chamyal