Hi All,
A gentle reminder, please review my code changes as in the webrev below in the
mail trail.
With Regards,
Avik Niyogi
> On 18-Jan-2016, at 3:01 pm, Avik Niyogi <avik.niy...@oracle.com> wrote:
>
> Hi Sergey,
>
> Please review the webrev taking inputs as per the discussion before:
> http://cr.openjdk.java.net/~aniyogi/8146321/webrev.01/
> <http://cr.openjdk.java.net/~aniyogi/8146321/webrev.01/>
>
> With Regards,
> Avik Niyogi
>
>> On 14-Jan-2016, at 12:55 pm, Avik Niyogi <avik.niy...@oracle.com
>> <mailto:avik.niy...@oracle.com>> wrote:
>>
>> Hi Sergey,
>> I have verified it with the test case as well. If a test case overrides
>> these methods to imply a change with icons larger than 16x16 it will show
>> that for ImageIcon and Icon as before. The resize of ImageIcon is only in
>> case it has an image file that it will try to fit. I had a similar query
>> myself and have found out that getImage() exists for ImageIcon class only
>> and not Icon class.
>> Example:
>> private static void createImageIconUI(final String lookAndFeelString)
>> throws Exception {
>> SwingUtilities.invokeAndWait(new Runnable() {
>> @Override
>> public void run() {
>> desktopPane = new JDesktopPane();
>> internalFrame = new JInternalFrame();
>> frame = new JFrame();
>> internalFrame.setTitle(lookAndFeelString);
>> titleImageIcon = new ImageIcon() {
>> @Override
>> public int getIconWidth() {
>> return 16;
>> }
>>
>> @Override
>> public int getIconHeight() {
>> return 16;
>> }
>>
>> @Override
>> public void paintIcon(
>> Component c, Graphics g, int x, int y) {
>> g.setColor(java.awt.Color.black);
>> g.fillRect(x, y, 50, 50);
>> }
>> };
>> internalFrame.setFrameIcon(titleImageIcon);
>> internalFrame.setSize(500, 200);
>> internalFrame.setVisible(true);
>> desktopPane.add(internalFrame);
>>
>> frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>> frame.getContentPane().setLayout(new BorderLayout());
>> frame.getContentPane().add(desktopPane, "Center");
>> frame.setSize(500, 500);
>> frame.setLocationRelativeTo(null);
>> frame.setVisible(true);
>> frame.toFront();
>> }
>> });
>> }
>> In this case the ImageIcon will NOT be resized to 16 x 16 even before my fix
>> was implemented. That resize as shown in code is only for Image files to fit
>> in default ImageIcon size as returned from the getIconHeight() and
>> getIconWidth() methods. If user changes the ImageIcon size as in the
>> example, that is upto to user to choose to do so and no control exists to
>> prevent that. So, with or without my fix, this behaviour will be same for
>> ImageIcon and Icon custom instances.
>> Hope this clarifies the query.
>>
>> With Regards,
>> Avik Niyogi
>>
>>> On 14-Jan-2016, at 11:36 am, Sergey Bylokhov <sergey.bylok...@oracle.com
>>> <mailto:sergey.bylok...@oracle.com>> wrote:
>>>
>>> Hi, Avik.
>>> In the fix you update getIconWidth() and getIconHeight, so now we take the
>>> Icon into account. but it seems if the Icon is bigger that the maximum size
>>> it will not be resided to 16x16, right?
>>>
>>> On 14/01/16 07:49, Avik Niyogi wrote:
>>>> Hi All,
>>>>
>>>> Kindly review the bug fix for JDK 9.
>>>>
>>>> *Bug:*
>>>> https://bugs.openjdk.java.net/browse/JDK-8146321
>>>> <https://bugs.openjdk.java.net/browse/JDK-8146321>
>>>>
>>>> *Webrev:*
>>>> http://cr.openjdk.java.net/~aniyogi/8146321/webrev.00/
>>>> <http://cr.openjdk.java.net/~aniyogi/8146321/webrev.00/>
>>>>
>>>> *Issue:*
>>>> Under the Mac Look&Feel, if an icon type other than an ImageIcon is used
>>>> in JInternalFrame.setFrameIcon(),
>>>> the icon will show up in the wrong position.
>>>>
>>>> *Cause:*
>>>> the "instanceof Icon" was not checked for. Also, customs ImageIcon with
>>>> color fill (and no image URL) which would
>>>> have resulted in null value for resized ImageIcon image was not well
>>>> handled.
>>>>
>>>> *Fix:*
>>>> All places in Aqua LAF where "instanceof Icon” (and not just ImageIcon
>>>> class) is required,
>>>> inputs were added after significant analyses.
>>>> Check for null for getImage was done to remove a Null Pointer Exception.
>>>>
>>>> With Regards,
>>>> Avik Niyogi
>>>
>>>
>>> --
>>> Best regards, Sergey.
>>
>