<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 23-Mar-2016, at 3:31 pm, Alexander Scherbatiy <<a href="mailto:alexandr.scherbatiy@oracle.com" class="">alexandr.scherbatiy@oracle.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
<meta content="text/html; charset=windows-1252" http-equiv="Content-Type" class="">
<div bgcolor="#FFFFFF" text="#000000" class="">
On 21/03/16 09:19, Avik Niyogi wrote:<br class="">
<blockquote cite="mid:A1DDAF33-ECE2-4388-B903-A25E0CBAD5AC@oracle.com" type="cite" class="">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252" class="">
Hi Alexander,
<div class="">I agree with what you said regarding the look and
feel looking different. But this bug arrises due to setting of
TabbedPaneScrollLayout only. If Scroll Layout is not meant for
Aqua look and feel should not the setting of this parameter
instead throw a helpful error saying this parameter is not
accepted</div>
</blockquote>
According to the JTabbedPane.setTabLayoutPolicy(int
tabLayoutPolicy) javadoc: <br class="">
"Some look and feels might only support a subset of the possible
layout policies, in which case the value of this property may be
ignored."<br class="">
<br class="">
Aqua L&F ignores WRAP_TAB_LAYOUT for JTabbedPane tabs
layouting and always use SCROLL_TAB_LAYOUT. No exception should be
thrown in this case.<br class=""></div></div></blockquote><div><br class=""></div>Actually, it is doing the other way around for Aqua L&F. It is defaulting WRAP_TAB_LAYOUT and setting SCROLL_TAB_LAYOUT is still setting a subclass of TabbedPaneLayout and not TabbedPaneScrollLayout.</div><div><br class=""><blockquote type="cite" class=""><div class=""><div bgcolor="#FFFFFF" text="#000000" class="">
Thanks,<br class="">
Alexandr.<br class="">
<br class="">
<blockquote cite="mid:A1DDAF33-ECE2-4388-B903-A25E0CBAD5AC@oracle.com" type="cite" class="">
<div class=""> instead of absorbing this parameter and letting it
render itself into a dummy node which does not proceed further
with this parameter? Maybe we need to discuss what the expected
behaviour may be. Also, thank you for the inputs regarding how
to proceed with removing duplicate code.</div>
<div class=""><br class="">
</div>
<div class="">With Regards,</div>
<div class="">Avik Niyogi<br class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On 19-Mar-2016, at 1:52 am, Alexander
Scherbatiy <<a moz-do-not-send="true" href="mailto:alexandr.scherbatiy@oracle.com" class="">alexandr.scherbatiy@oracle.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta content="text/html; charset=windows-1252" http-equiv="Content-Type" class="">
<div bgcolor="#FFFFFF" text="#000000" class=""> <br class="">
I would think about something like:<br class="">
-------------<br class="">
public class TabbedPaneLayout implements
LayoutManager {<br class="">
<br class="">
protected int basePreferredTabAreaWidth(final
int tabPlacement, final int height) {<br class="">
// TabbedPaneLayout preferredTabAreaWidth
implementation<br class="">
}<br class="">
<br class="">
protected int
truncatingPreferredTabAreaWidth(final int tabPlacement,
final int height) {<br class="">
if (tabPlacement == SwingConstants.LEFT ||
tabPlacement == SwingConstants.RIGHT) {<br class="">
return
basePreferredTabAreaWidth(tabPlacement, height);<br class="">
}<br class="">
<br class="">
return
basePreferredTabAreaWidth(tabPlacement, height);<br class="">
}<br class="">
<br class="">
protected int preferredTabAreaWidth(final int
tabPlacement, final int height) {<br class="">
return
basePreferredTabAreaWidth(tabPlacement, height);<br class="">
}<br class="">
<br class="">
}<br class="">
<br class="">
class TabbedPaneScrollLayout extends
TabbedPaneLayout {<br class="">
@Override<br class="">
protected int basePreferredTabAreaWidth(int
tabPlacement, int height) {<br class="">
// TabbedPaneScrollLayout
preferredTabAreaWidth implementation<br class="">
}<br class="">
}<br class="">
<br class="">
protected class AquaTruncatingTabbedPaneLayout
extends AquaTabbedPaneCopyFromBasicUI.TabbedPaneLayout {<br class="">
<br class="">
@Override<br class="">
protected int preferredTabAreaWidth(final int
tabPlacement, final int height) {<br class="">
return
truncatingPreferredTabAreaWidth(tabPlacement, height);<br class="">
}<br class="">
}<br class="">
<br class="">
protected class AquaTruncatingTabbedScrollPaneLayout
extends
AquaTabbedPaneCopyFromBasicUI.TabbedPaneScrollLayout {<br class="">
<br class="">
@Override<br class="">
protected int preferredTabAreaWidth(final int
tabPlacement, final int height) {<br class="">
return
truncatingPreferredTabAreaWidth(tabPlacement, height);<br class="">
}<br class="">
}<br class="">
-------------<br class="">
<br class="">
I just have one more question. The
TabbedPaneScrollLayout is only created in
AquaTabbedPaneCopyFromBasicUI. AquaLookAndFeel only use
AquaTabbedPaneUI or AquaTabbedPaneContrastUI which do
not return TabbedPaneScrollLayout. <br class="">
<br class="">
Are there any real cases when the TabbedPaneScrollLayout
is created?<br class="">
<br class="">
When you enabled the
AquaTruncatingTabbedScrollPaneLayout in the
AquaTabbedPaneUI the JTabbedPane L&F with
SCROLL_TAB_LAYOUT does not look similar to Aqua L&F:<br class="">
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/%7Ealexsch/8137169/aqua-scrolled-tabbed-pane.png">http://cr.openjdk.java.net/~alexsch/8137169/aqua-scrolled-tabbed-pane.png</a><br class="">
<br class="">
The AquaTruncatingTabbedPaneLayout already contains
arrows for hidden tabs navigation.<br class="">
May be the fix should update the
AquaTruncatingTabbedPaneLayout only?<br class="">
<br class="">
Thanks,<br class="">
Alexandr.<br class="">
<br class="">
<div class="moz-cite-prefix">On 18/03/16 14:21, Avik
Niyogi wrote:<br class="">
</div>
<blockquote cite="mid:824DE39E-9174-4461-9B16-E4027DE92B8A@oracle.com" type="cite" class="">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252" class="">
Hi Alexander,
<div class="">Thank you for the inputs. I agree with
you and did feel the need for removing duplicate
code as well. But as per an earlier review input,
changes to the super call lay outing is not
accepted. This was the only other feasible solution.
Created redundant code in this process, but would be
maintaining with requirements with code impact to
superclasses.</div>
<div class="">Please provide any insight to a probable
compensate to mitigate this dichotomy of code
expectation. Thank you in advance.</div>
<div class=""><br class="">
</div>
<div class="">With Regards,</div>
<div class="">Avik Niyogi<br class="">
<div class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On 18-Mar-2016, at 2:42 pm,
Alexander Scherbatiy <<a moz-do-not-send="true" href="mailto:alexandr.scherbatiy@oracle.com" class=""></a><a class="moz-txt-link-abbreviated" href="mailto:alexandr.scherbatiy@oracle.com">alexandr.scherbatiy@oracle.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta content="text/html;
charset=windows-1252" http-equiv="Content-Type" class="">
<div bgcolor="#FFFFFF" text="#000000" class=""> <br class="">
It is not usually a good idea to have a
duplicated code which should be updated
every time in several places.<br class="">
<br class="">
Is it possible to move the methods used
both in
<meta http-equiv="content-type" content="text/html;
charset=windows-1252" class="">
AquaTruncatingTabbedPaneLayout and
AquaTruncatingTabbedScrollPaneLayout to
TabbedPaneLayout with different names and
then reused?<br class="">
<br class="">
Thanks,<br class="">
Alexandr.<br class="">
<br class="">
<div class="moz-cite-prefix">On 17/03/16
17:17, Avik Niyogi wrote:<br class="">
</div>
<blockquote cite="mid:44EA4FCD-0A5B-4718-8C82-2DFE8AD6AB22@oracle.com" type="cite" class="">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252" class="">
Hi Alexander,
<div class="">The issue only applies for
ScrollingTabbedPane and hence this
fix.</div>
<div class=""><br class="">
</div>
<div class="">With Regards,</div>
<div class="">Avik Niyogi</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On 16-Mar-2016, at
4:51 pm, Alexander Scherbatiy
<<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:alexandr.scherbatiy@oracle.com">alexandr.scherbatiy@oracle.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta content="text/html;
charset=windows-1252" http-equiv="Content-Type" class="">
<div bgcolor="#FFFFFF" text="#000000" class=""> <br class="">
Does the same issue affects
the AquaTabbedPaneContrastUI?<br class="">
<br class="">
Thanks,<br class="">
Alexandr.<br class="">
<br class="">
<div class="moz-cite-prefix">On
14/03/16 09:04, Avik Niyogi
wrote:<br class="">
</div>
<blockquote cite="mid:26FBE1E8-5917-43DB-BD8E-9FC6181698B7@oracle.com" type="cite" class="">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252" class="">
Hi All,
<div class="">A gentle
reminder, please review
code changes.</div>
<div class=""><br class="">
</div>
<div class="">With Regards,</div>
<div class="">Avik Niyogi</div>
<div class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On
08-Mar-2016, at 9:51
pm, Avik Niyogi <<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:avik.niyogi@oracle.com"></a><a class="moz-txt-link-abbreviated" href="mailto:avik.niyogi@oracle.com">avik.niyogi@oracle.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252" class="">
<div style="word-wrap:
break-word;
-webkit-nbsp-mode:
space;
-webkit-line-break:
after-white-space;" class="">Hi All,
<div class=""><br class="">
</div>
<div class="">Please
review code
changes done as
with inputs
provided.</div>
<div class=""><a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/%7Eaniyogi/8137169/webrev.01/"></a><a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~aniyogi/8137169/webrev.01/">http://cr.openjdk.java.net/~aniyogi/8137169/webrev.01/</a></div>
<div class=""><br class="">
</div>
<div class="">Also,
albeit the title
of issue
mentioned is as
above, the
injection of
issue occurs
because <b class="">pane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);</b>
is not honoured.</div>
<div class="">In
the new fix as
provided,
references to
base class
layout manager
is removed in
current
solution.</div>
<div class=""><br class="">
</div>
<div class="">With
Regards,</div>
<div class="">Avik
Niyogi</div>
<div class=""><br class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On
02-Mar-2016,
at 7:50 pm,
Alexander
Potochkin <<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:alexander.potochkin@oracle.com"></a><a class="moz-txt-link-abbreviated" href="mailto:alexander.potochkin@oracle.com">alexander.potochkin@oracle.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta content="text/html;
charset=windows-1252" http-equiv="Content-Type" class="">
<div bgcolor="#FFFFFF" text="#000000" class="">
Hello Avik<br class="">
<br class="">
Let me make it
clear I don't
approve the
proposed fix<br class="">
and ask you to
do additional
evaluation.<br class="">
<br class="">
Every
LookAndFeel is
different and
it doesn't
make much
sense<br class="">
to compare
Metal LaF with
AquaLaf.<br class="">
<br class="">
The AquaLaf
mimics the
native MacOS
controls and
therefore look
quite
different from
any other
Lafs.<br class="">
<br class="">
The bug you
are fixing has
the following
subject <br class="">
"Incorrect
minimal heigh
of JTabbedPane
with more
tabs"<br class="">
<br class="">
Could you
please fix
exactly the
problem with
the minimal
heights,<br class="">
without
changing the
UI delegate
class.<br class="">
<br class="">
Thanks<br class="">
alexp<br class="">
<div class="moz-cite-prefix"><br class="">
</div>
<blockquote cite="mid:4ED353CF-E409-4348-9313-AC74CC653D6A@oracle.com" type="cite" class="">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252" class="">
Gentle
reminder.
Please review
this fix.
<div class=""><br class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On
26-Feb-2016,
at 10:39 am,
Avik Niyogi
<<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:avik.niyogi@oracle.com"></a><a class="moz-txt-link-abbreviated" href="mailto:avik.niyogi@oracle.com">avik.niyogi@oracle.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252" class="">
<div style="word-wrap:
break-word;
-webkit-nbsp-mode:
space;
-webkit-line-break:
after-white-space;" class="">The issue is with setting of TabbedPane<b class="">Scroll</b>Layout()
for the
option JTabbedPane.SCROLL_TAB_LAYOUT
as is enabled
in the test
code
<div class=""> and
<b class="">not</b>
TabbedPaneLayout()
as which is
the default.</div>
<div class=""><br class="">
<div class="">The
minimum size
fixes itself
because the <b class="">ScrollLayout</b>
check fails
in <b class="">setTabLayoutPolicy</b>()
for the pane.
So the issue
is with the
call to set
layout
manager.</div>
<div class="">There
are only two
configurations
that the <b class="">JTabbedPane</b>
can exist in
of which <b class="">SCROLL_TAB_LAYOUT</b>
is one of
them.</div>
<div class=""><br class="">
</div>
<div class="">Fixing
the minimum
size in <b class="">AquaTabbedPaneUI</b>
will fix it
for <b class="">TabbedPaneLayout</b>()
only which is
the <b class="">WRAP_TAB_LAYOUT</b>.</div>
<div class=""><br class="">
</div>
<div class="">Also,
I have checked
other
implementations
such as for <b class="">Metal</b>
and <b class="">Motif</b>
and <span style="font-size:
13px;" class=""><b class="">they
have similar
code for doing
this process</b></span>.</div>
<div class="">Hence,
with in-depth
analysis, this
fix has no
other impact
apart from
this fix.</div>
<div class=""><br class="">
</div>
<div class="">In
case the
impact caused
by this change
has caused
some
definitive
regressions,
please mention
them so they
can be
addressed.
Thank you.</div>
<div class=""><br class="">
</div>
<div class="">With
Regards,</div>
<div class="">Avik
Niyogi</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On
25-Feb-2016,
at 6:45 pm,
Alexander
Potochkin <<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:alexander.potochkin@oracle.com"></a><a class="moz-txt-link-abbreviated" href="mailto:alexander.potochkin@oracle.com">alexander.potochkin@oracle.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta content="text/html;
charset=windows-1252" http-equiv="Content-Type" class="">
<div bgcolor="#FFFFFF" text="#000000" class="">
Hello Avik<br class="">
<br class="">
AquaTruncatingTabbedPaneLayout
has a lot of
code which is
specific for
the
AquaTabbedPaneUI.<br class="">
I don't think
setting the
layout manager
from the base
class is the
right solution
here.<br class="">
<br class="">
If there is a
problem with
minimum size
it should be
fixed inside
the
AquaTabbedPaneUI<br class="">
<br class="">
Thanks<br class="">
alexp<br class="">
<br class="">
<div class="moz-cite-prefix">On
2/24/2016
12:07, Avik
Niyogi wrote:<br class="">
</div>
<blockquote cite="mid:7CBB4FD2-C4A5-4B84-829B-FA681330C016@oracle.com" type="cite" class="">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252" class="">
Hi All,
<div class=""><br class="">
</div>
<div class="">Kindly
review the bug
fix for JDK 9.</div>
<div class=""><br class="">
</div>
<div class=""><b class="">Bug:</b></div>
<div class=""><a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8137169"></a><a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8137169">https://bugs.openjdk.java.net/browse/JDK-8137169</a></div>
<div class=""><br class="">
</div>
<div class=""><b class="">Webrev:</b></div>
<div class=""><br class="">
</div>
<div class=""><a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/%7Eaniyogi/8137169/webrev.00/"></a><a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~aniyogi/8137169/webrev.00/">http://cr.openjdk.java.net/~aniyogi/8137169/webrev.00/</a></div>
<div class=""><br class="">
</div>
<div class=""><b class="">Issue:</b></div>
<div class="">For
Aqua
Look&Feel,
multiple calls
to pane.getMinimumSize().height
causes
incremental
return of
values.</div>
<div class=""><br class="">
</div>
<div class=""><b class="">Cause:</b></div>
<div class="">The
impact was
caused by a
major broken
code within
AquaTabbedPaneUI.java
for
createLayoutManager()</div>
<div class=""><br class="">
</div>
<div class=""><b class="">Fix:</b></div>
<div class="">Major
linking calls
to super class
fix done
within
createLayoutManager().</div>
<div class=""><br class="">
</div>
<div class="">With
Regards,</div>
<div class="">Avik
Niyogi</div>
</blockquote>
<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</blockquote>
<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</blockquote>
<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</blockquote>
<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</blockquote>
<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</blockquote>
<br class="">
</div>
</div></blockquote></div><br class=""></body></html>