<AWT Dev> Review-request for 8143227: Platform-Specific Desktop Features

Mandy Chung mandy.chung at oracle.com
Tue Dec 1 23:33:52 UTC 2015


Alexander,

Since there are existing applications using com.apple.eawt and com.apple.eio internal APIs, I propose to deprecate them in JDK 9 and remove these two packages in JDK 10 to give time to existing applications to migrate to this new API.

Mandy

> On Nov 24, 2015, at 7:02 AM, Alexander Zvegintsev <alexander.zvegintsev at oracle.com> wrote:
> 
> Please review the updated fix:
> http://cr.openjdk.java.net/~azvegint/jdk/9/8143227/03/
> 
> removed fullscreen related code (moved to JDK-8143914 [0])
> fix serialization in AppEvent 
> 
> [0] https://bugs.openjdk.java.net/browse/JDK-8143914
> 
> Thanks,
> 
> Alexander.
> 
> On 11/21/2015 03:33 AM, Alexander Zvegintsev wrote:
>> Hi Phil, 
>> 
>>> Can someone explain why this is needed given the existing support of 
>>> GraphicsDevice.setFullScreenWindow(Window) ?
>> 
>> GraphicsDevice.setFullScreenWindow is used for an exclusive full screen mode. 
>> Mac OS has another option to create a virtual desktop with provided window in it. 
>> You can switch between them by three-finger horizontal swipe. 
>> 
>>> Why does it have to be a RootPaneContainer ? Why is this tied to Swing ? 
>>> This appears to narrow it to JDialog and JWindow.
>> It reuses swing code to set native windows style bits. 
>> 
>> 
>> Please see updated webrev: 
>> http://cr.openjdk.java.net/~azvegint/jdk/9/8143227/02/ 
>> updated permission 
>> added missing @throws @since and @implNote 
>> browseFileDirectory is now return void 
>> RootPaneContainer -> JDialog and JWindow 
>> 
>> -- 
>> Thanks, 
>> Alexander. 
>> 
>> On 11/20/2015 09:03 PM, Phil Race wrote: 
>>> On 11/20/2015 09:12 AM, Sergey Bylokhov wrote: 
>>>> 
>>>> I am worried about setWindowCanFullScreen and requestToggleFullScreen. 
>>>> On the latest osx this functionality was merged with maximize button. So probably it will be better to change behavior of window.setExtendedState() + MAXIMIZED_BOTH? 
>>> 
>>> Can someone explain why this is needed given the existing support of 
>>> GraphicsDevice.setFullScreenWindow(Window) ? 
>>> 
>>> And what happens if you use *both* ? They still need to play well together 
>>> if there is some reason the new one is needed. 
>>> 
>>> Other comments : 
>>> >   * Note, Aqua Look and Feel should be active to support this on Mac OS. 
>>> 
>>> 
>>> Needs @implNote 
>>> 
>>> There seems to be lots of missing SecurityException tags given all the checkAWTPermission() calls. 
>>> is checkAWTPermission() really the right call for all of these actions ? 
>>> Does it "cover" being able to delete files and quit the app ? I am not sure it is 
>>> correct in all cases. 
>>> 
>>> And also there are missing @since tags. 
>>> 
>>> 
>>>  Opens a folder containing the {@code file} in a default system file manager. 
>>>  933      * @param file the file 
>>>  934      * @return returns true if successfully opened 
>>>  935      * @throws NullPointerException if {@code file} is {@code null} 
>>>  936      * @throws IllegalArgumentException if the specified file doesn't 
>>>  937      * exist 
>>>  938      */ 
>>>  939     public boolean browseFileDirectory(File file) { 
>>> 
>>> So what happens if there is no "support" for this ? Exception or "false" ? 
>>> Are you comfortable that all these APIs that return "true" if successful are 
>>> implementable on all platforms. i.e I mean that does the platform return 
>>> a value you can pass on as success/failure. 
>>> 
>>> --- 
>>> 
>>> 861      * Attaches a {@link FullScreenListener} to the specified top-level 
>>>  862      * {@link Window}. 
>>>  863      * 
>>>  864      * @param window to attach the {@link FullScreenListener} to 
>>>  865      * @param listener to be notified when a full screen event occurs 
>>>  866      * @throws IllegalArgumentException if window is not a 
>>>  867      * {@link javax.swing.RootPaneContainer} 
>>>  868      */ 
>>>  869     public void addWindowFullScreenListener(final Window window, 
>>>  870                                               final FullScreenListener listener) { 
>>> 
>>> ------- 
>>> 
>>> Why does it have to be a RootPaneContainer ? Why is this tied to Swing ? 
>>> This appears to narrow it to JDialog and JWindow. 
>>> 
>>> -phil. 
>>> 
>> 
> 



More information about the awt-dev mailing list