<Swing Dev> [9] Review request for JDK-8147521 [macosx] Internal API Usage: setPopupType used to force creation of heavyweight popup

Alexandr Scherbatiy alexandr.scherbatiy at oracle.com
Tue May 10 11:49:51 UTC 2016


On 5/10/2016 2:36 PM, Rajeev Chamyal wrote:

> Hello Alexandr,
>
> Please review the updated webrev.
>
> http://cr.openjdk.java.net/~rchamyal/8147521/webrev.01/ 
> <http://cr.openjdk.java.net/%7Erchamyal/8147521/webrev.01/>
>
> Update : Implemented review comments.
>

     What should be results of the 
PopupFactory.setHeavyWeightPopupEnabled(false) call in case if the 
current popup factory type is heavy-weight? Is it correct to leave it as 
heavy weight or it should be changed to another type?

   It is better to use {@code } tag instead of <code> in a javadoc 
description.
   The test extends JPanel and is created on main thread. It is better 
to move its creation to EDT to avoid possible race conditions between 
using the JPanel on both main and EDT threads.

   Thanks,
   Alexandr.
>
> Regards,
>
> Rajeev Chamyal
>
> *From:*Alexandr Scherbatiy
> *Sent:* 10 May 2016 16:07
> *To:* Rajeev Chamyal; Sergey Bylokhov; swing-dev at 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
>
> 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 at openjdk.java.net
>     <mailto:swing-dev at 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
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20160510/b6fdb3bf/attachment.html>


More information about the swing-dev mailing list