<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>