[OpenJDK 2D-Dev] RFR JDK-8246742: ServiceUI.printDialog does not support properties dialog
Jayathirth D v
JAYATHIRTH.D.V at ORACLE.COM
Thu Jul 23 09:18:10 UTC 2020
Hi Prasanta,
I again tested updated webrev in Windows and Linux and it works as expected.
webrev.1 looks good to me.
Thanks,
Jay
> On 20-Jul-2020, at 8:45 PM, Prasanta Sadhukhan <prasanta.sadhukhan at oracle.com> wrote:
>
> 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.
>
> 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)
>
> PrintRequestAttributeSet pSet = new HashPrintRequestAttributeSet();
> pSet.add(DialogTypeSelection.COMMON);
> pj.printDialog(pSet);
> And, as per JDK-4673406, it is likely that supporting this "properties" sheet will only be possible where there is already a job with which
> to make the association. ie using java.awt.PrinterJob.printDialog(AttributeSet) and not for direct uses with javax.print.ServiceUI.printDialog(..)"
>
> 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
> so if a PrinterJob cross-platform printer-dialog is created, then we should support "Properties" dialog.
> 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.
>
> Modified webrev: http://cr.openjdk.java.net/~psadhukhan/8246742/webrev.1/ <http://cr.openjdk.java.net/~psadhukhan/8246742/webrev.1/>
>
> Regards
> Prasanta
> On 20-Jul-20 3:53 PM, Jayathirth D v wrote:
>> Hi Prasanta,
>>
>> 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 http://hg.openjdk.java.net/jdk/client/file/fabf11c3a8ca/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l801 <http://hg.openjdk.java.net/jdk/client/file/fabf11c3a8ca/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l801> ?
>>
>> I also see that Win32ServiceUIFactory
>> .getUI() doesnt return null in some specific DocumentsPropertyUI at http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/windows/classes/sun/print/Win32PrintService.java#l1692 <http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/windows/classes/sun/print/Win32PrintService.java#l1692>
>>
>> Thanks,
>> Jay
>>
>>> On 17-Jul-2020, at 11:22 AM, Prasanta Sadhukhan <prasanta.sadhukhan at oracle.com <mailto:prasanta.sadhukhan at oracle.com>> wrote:
>>>
>>> Hi Jay,
>>>
>>> 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
>>>
>>> http://hg.openjdk.java.net/jdk/client/file/fabf11c3a8ca/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l793 <http://hg.openjdk.java.net/jdk/client/file/fabf11c3a8ca/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l793>
>>> So, if we cannot show the dialog using that mechanism, we can enable/disable the button itself beforehand using that check.
>>>
>>> Regards
>>> Prasanta.
>>> On 16-Jul-20 9:26 PM, Jayathirth D v wrote:
>>>> Hi Prasanta,
>>>>
>>>> I tested the fix in Mac and Windows and it works as mentioned.
>>>>
>>>> In http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/windows/classes/sun/print/Win32PrintService.java#l1688 <http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/windows/classes/sun/print/Win32PrintService.java#l1688> we are returning null when “role <= ServiceUIFactory.MAIN_UIROLE”. So it covers 3 roles “MAIN_UIROLE”, “ADMIN_UIROLE” and “ABOUT_UIROLE”.
>>>>
>>>> In your webrev we are checking only for “MAIN_UIROLE”. Is creation of “JDIALOG_UI” restricted only to “MAIN_UIROLE”?
>>>>
>>>> Thanks,
>>>> Jay
>>>>
>>>>> On 15-Jul-2020, at 6:27 PM, Prasanta Sadhukhan <prasanta.sadhukhan at oracle.com <mailto:prasanta.sadhukhan at oracle.com>> wrote:
>>>>>
>>>>> Any reviewer for this?
>>>>>
>>>>> On 09-Jul-20 1:10 PM, Prasanta Sadhukhan wrote:
>>>>>> Hi All,
>>>>>>
>>>>>> 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.
>>>>>>
>>>>>> According to JDK-4673406 <https://bugs.openjdk.java.net/browse/JDK-4673406>, 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.
>>>>>>
>>>>>> This button is disabled in linux,mac already. This is because, as per
>>>>>>
>>>>>> http://hg.openjdk.java.net/jdk/client/annotate/754ec520eb4a/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l964 <http://hg.openjdk.java.net/jdk/client/annotate/754ec520eb4a/src/java.desktop/share/classes/sun/print/ServiceDialog.java#l964>
>>>>>> the button is disabled if ServiceUIFactory is null and for linux/mac, it is null
>>>>>>
>>>>>> http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/unix/classes/sun/print/IPPPrintService.java#l1637 <http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/unix/classes/sun/print/IPPPrintService.java#l1637>
>>>>>> http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/share/classes/sun/print/PSStreamPrintService.java#l490 <http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/share/classes/sun/print/PSStreamPrintService.java#l490>
>>>>>> but for windows, it created "Win32ServiceUIFactory" but it does not handle the properties dialog if "role" requested to be performed by ServiceUI is <= ServiceUIFactory.MAIN_UIROLE
>>>>>>
>>>>>> [http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/windows/classes/sun/print/Win32PrintService.java#l1688 <http://hg.openjdk.java.net/jdk/client/file/754ec520eb4a/src/java.desktop/windows/classes/sun/print/Win32PrintService.java#l1688>]
>>>>>>
>>>>>> Proposed fix is to make sure this role is accounted for in the buttonProperties enabling check.
>>>>>>
>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8246742 <https://bugs.openjdk.java.net/browse/JDK-8246742>
>>>>>> webrev: http://cr.openjdk.java.net/~psadhukhan/8246742/webrev.0/ <http://cr.openjdk.java.net/~psadhukhan/8246742/webrev.0/>Regards
>>>>>> Prasanta
>>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/2d-dev/attachments/20200723/c5e81ee0/attachment-0001.htm>
More information about the 2d-dev
mailing list