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


Reply via email to