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

Phil Race philip.race at oracle.com
Fri Nov 20 18:03:25 UTC 2015

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.


More information about the awt-dev mailing list