<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Actually, I was a bit wrong in construing that the button should
      just be disabled for ServiceUI.printDialog if ServiceUIFactory is
      null & getUI(MAIN_ROLE...) is null. <br>
    </p>
    <p>The "properties" dialog is used for another use-case which is for
      cross-platform dialog also ie, when we have a printer job created
      using (in which case also getUI() will be null for windows)<br>
    </p>
    <pre style="background-color:#ffffff;color:#000000;font-family:'Courier New';font-size:7.2pt;">PrintRequestAttributeSet pSet =  <span style="color:#000080;font-weight:bold;">new </span>HashPrintRequestAttributeSet();
pSet.add(DialogTypeSelection.<span style="color:#660e7a;font-weight:bold;font-style:italic;">COMMON</span>);
pj.printDialog(pSet);</pre>
    <p>And, as per JDK-4673406, it  is likely that supporting this <i>"properties"
        sheet will only be possible where there is already a job with
        which</i><i><br>
      </i><i>
        to make the association. ie using
        java.awt.PrinterJob.printDialog(AttributeSet) and not for direct
        uses with javax.print.ServiceUI.printDialog(..)</i>"</p>
    <div class="moz-cite-prefix">So, ideally, we should be checking if
      we have a printer job in addition to ServiceUIFactory being not
      null to allow creation of association between printer properties
      and the printer job <br>
    </div>
    <div class="moz-cite-prefix">so if a PrinterJob cross-platform
      printer-dialog is created, then we should support "Properties"
      dialog. <br>
    </div>
    <div class="moz-cite-prefix">If we directly use
      javax.print.ServiceUI.printDialog(..), then in that case no
      printer job will be created, so properties dialog can be disabled
      for that use-case.</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Modified webrev:
      <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~psadhukhan/8246742/webrev.1/">http://cr.openjdk.java.net/~psadhukhan/8246742/webrev.1/</a></div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Regards</div>
    <div class="moz-cite-prefix">Prasanta<br>
    </div>
    <div class="moz-cite-prefix">On 20-Jul-20 3:53 PM, Jayathirth D v
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:384E7712-4D11-431C-9F4C-FC79188A16F4@ORACLE.COM">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      Hi Prasanta,
      <div class=""><br class="">
      </div>
      <div class="">Is just checking for dialog is null fine or we also
        need to verify DocumentProptiesUI in our case? As done in else
        case when dialog is null at <a
href="http://hg.openjdk.java.net/jdk/client/file/fabf11c3a8ca/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l801"
          class="" moz-do-not-send="true">http://hg.openjdk.java.net/jdk/client/file/fabf11c3a8ca/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l801</a> ?</div>
      <div class=""><br class="">
      </div>
      <div class="">I also see that Win32ServiceUIFactory</div>
      <div class="">.getUI() doesnt return null in some specific
        DocumentsPropertyUI at <a
href="http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/windows/classes/sun/print/Win32PrintService.java#l1692"
          class="" moz-do-not-send="true">http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/windows/classes/sun/print/Win32PrintService.java#l1692</a> </div>
      <div class=""><br class="">
      </div>
      <div class="">Thanks,</div>
      <div class="">Jay<br class="">
        <div><br class="">
          <blockquote type="cite" class="">
            <div class="">On 17-Jul-2020, at 11:22 AM, Prasanta
              Sadhukhan <<a
                href="mailto:prasanta.sadhukhan@oracle.com" class=""
                moz-do-not-send="true">prasanta.sadhukhan@oracle.com</a>>
              wrote:</div>
            <br class="Apple-interchange-newline">
            <div class="">
              <meta http-equiv="Content-Type" content="text/html;
                charset=UTF-8" class="">
              <div class="">
                <p class="">Hi Jay,</p>
                <p class="">I am using the same methodology used to
                  determine whether to show the properties dialog when
                  button-clicked on it (which is not to show if dialog
                  is null) as per<br class="">
                </p>
                <p class=""><a class="moz-txt-link-freetext"
href="http://hg.openjdk.java.net/jdk/client/file/fabf11c3a8ca/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l793"
                    moz-do-not-send="true">http://hg.openjdk.java.net/jdk/client/file/fabf11c3a8ca/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l793</a></p>
                <p class="">So, if we cannot show the dialog using that
                  mechanism, we can enable/disable the button itself
                  beforehand using that check.</p>
                Regards<br class="">
                Prasanta.<br class="">
                <div class="moz-cite-prefix">On 16-Jul-20 9:26 PM,
                  Jayathirth D v wrote:<br class="">
                </div>
                <blockquote type="cite"
                  cite="mid:6FFB1DCE-E1F1-490C-A888-6A1FE3490A94@ORACLE.COM"
                  class="">
                  <meta http-equiv="Content-Type" content="text/html;
                    charset=UTF-8" class="">
                  Hi Prasanta,
                  <div class=""><br class="">
                  </div>
                  <div class="">I tested the fix in Mac and Windows and
                    it works as mentioned.</div>
                  <div class=""><br class="">
                  </div>
                  <div class="">In <a
href="http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/windows/classes/sun/print/Win32PrintService.java#l1688"
                      class="" moz-do-not-send="true">http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/windows/classes/sun/print/Win32PrintService.java#l1688</a> we
                    are returning null when “role <=
                    ServiceUIFactory.MAIN_UIROLE”. So it covers 3 roles
                    “MAIN_UIROLE”, “ADMIN_UIROLE” and “ABOUT_UIROLE”.</div>
                  <div class=""><br class="">
                  </div>
                  <div class="">In your webrev we are checking only for
                    “<font class="">MAIN_UIROLE”. Is creation of <span
                        style="caret-color: rgb(0, 0, 0);" class="">“</span></font>JDIALOG_UI”
                    restricted only to “<span style="caret-color: rgb(0,
                      0, 0);" class="">MAIN_UIROLE</span>”?</div>
                  <div class=""><br class="">
                  </div>
                  <div class="">Thanks,</div>
                  <div class="">Jay</div>
                  <div class="">
                    <div class=""><br class="">
                      <blockquote type="cite" class="">
                        <div class="">On 15-Jul-2020, at 6:27 PM,
                          Prasanta Sadhukhan <<a
                            href="mailto:prasanta.sadhukhan@oracle.com"
                            class="" moz-do-not-send="true">prasanta.sadhukhan@oracle.com</a>>
                          wrote:</div>
                        <br class="Apple-interchange-newline">
                        <div class="">
                          <meta http-equiv="Content-Type"
                            content="text/html; charset=UTF-8" class="">
                          <div class="">
                            <p class="">Any reviewer for this?<br
                                class="">
                            </p>
                            <div class="moz-cite-prefix">On 09-Jul-20
                              1:10 PM, Prasanta Sadhukhan wrote:<br
                                class="">
                            </div>
                            <blockquote type="cite"
                              cite="mid:05a59b29-c359-58a0-daa2-e572e52d3e6b@oracle.com"
                              class="">
                              <meta http-equiv="content-type"
                                content="text/html; charset=UTF-8"
                                class="">
                              <p class="">Hi All,</p>
                              <p class="">Please review a fix for an
                                issue where "Properties" button in
                                ServiceUI.printDialog is enabled in
                                windows but clicking it doesn't show any
                                dialog.</p>
                              <p class="">According to <a
                                  href="https://bugs.openjdk.java.net/browse/JDK-4673406"
                                  title="RFE: Java Printing: Provide a
                                  way to display win32 printer driver's
                                  dialog" class="issue-link"
                                  data-issue-key="JDK-4673406"
                                  moz-do-not-send="true"><strike
                                    class="">JDK-4673406</strike></a>,
                                the properties dialog isn't supported
                                for direct uses with
                                javax.print.ServiceUI.printDialog, so it
                                makes sense to disable this properies
                                button for this usecase.</p>
                              <p class="">This button is disabled in
                                linux,mac already. This is because, as
                                per<br class="">
                              </p>
                              <p class=""><a
                                  class="moz-txt-link-freetext"
href="http://hg.openjdk.java.net/jdk/client/annotate/754ec520eb4a/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l964"
                                  moz-do-not-send="true">http://hg.openjdk.java.net/jdk/client/annotate/754ec520eb4a/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l964</a></p>
                              <p class="">the button is disabled if
                                ServiceUIFactory is null and for
                                linux/mac, it is null</p>
                              <a class="moz-txt-link-freetext"
href="http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/unix/classes/sun/print/IPPPrintService.java#l1637"
                                moz-do-not-send="true">http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/unix/classes/sun/print/IPPPrintService.java#l1637</a><br
                                class="">
                              <a class="moz-txt-link-freetext"
href="http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/share/classes/sun/print/PSStreamPrintService.java#l490"
                                moz-do-not-send="true">http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/share/classes/sun/print/PSStreamPrintService.java#l490</a>
                              <p class="">but for windows, it created
                                "Win32ServiceUIFactory" but it does not
                                handle the properties dialog if "role"
                                requested to be performed by ServiceUI
                                is <= ServiceUIFactory.<span
                                  style="color:#660e7a;font-weight:bold;font-style:italic;"
                                  class="">MAIN_UIROLE</span></p>
                              <p class=""><span
                                  style="color:#660e7a;font-weight:bold;font-style:italic;"
                                  class=""></span>[<a
                                  class="moz-txt-link-freetext"
href="http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/windows/classes/sun/print/Win32PrintService.java#l1688"
                                  moz-do-not-send="true">http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/windows/classes/sun/print/Win32PrintService.java#l1688</a>]<br
                                  class="">
                              </p>
                              <p class="">Proposed fix is to make sure
                                this role is accounted for in the
                                buttonProperties enabling check.</p>
                              <p class="">Bug: <a
                                  class="moz-txt-link-freetext"
                                  href="https://bugs.openjdk.java.net/browse/JDK-8246742"
                                  moz-do-not-send="true">https://bugs.openjdk.java.net/browse/JDK-8246742</a></p>
                              <p class="">webrev: <a
                                  class="moz-txt-link-freetext"
                                  href="http://cr.openjdk.java.net/~psadhukhan/8246742/webrev.0/"
                                  moz-do-not-send="true">http://cr.openjdk.java.net/~psadhukhan/8246742/webrev.0/</a></p>
                              Regards<br class="">
                              Prasanta<br class="">
                              <span style="color: rgb(102, 14, 122);"
                                class=""></span> </blockquote>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                    <br class="">
                  </div>
                </blockquote>
              </div>
            </div>
          </blockquote>
        </div>
        <br class="">
      </div>
    </blockquote>
  </body>
</html>