<AWT Dev> Second patch for 6927978 (Directory Selection standard dialog support)

Anthony Petrov Anthony.Petrov at Sun.COM
Wed May 26 01:50:52 PDT 2010

Hi Costantino, Damjan,

The webrev for the second version is published at:


On 5/19/2010 1:57 AM Costantino Cerbo wrote:
>> here is my second patch for the new DirectoryDialog.
>> In this new patch I take care of your previous annotations and I've
>> also implemented the XDirectoryDialogPeer as we've discussed.
>> XDirectoryDialogPeer is largely based on the XFileDialogPeer (there is
>> no inheritance because for several reasons, for example the
>> constructor, it wasn't a good option).

Actually even the constructors (not counting other methods) share quite 
a bit of code between the XDir and XFile dialogs. The code might  easily 
be factored out in a separate method (like createGUI() or whatever) 
which is invoked in the constructor.  A common base class of the two 
could only create the components related to choosing a directory. The 
DirDlg would just call the super implementation, and the FileDlg would 
also add its own components (like the filter, the file names listbox, 
etc.) Moreover, all this could be just left out in the constructor w/o 
introducing the createGUI() method.

Reducing code duplication would really simplify further maintenance of 
the classes.

>  152         if (peer != null) {
>  153             ((DirectoryDialogPeer) this.peer).setDirectory(this.dir);
>  154         }

We use another idiom across the AWT:

DirectoryDialogPeer peer = (DirectoryDialogPeer)this.peer;
if (peer != null) {
    // blah-blah-blah

This way we avoid NPEs should the peer be released and GC'ed just after 
the if () but before the actual actions.

>> We have now the DirectoryDialog for both GTK and X11 but not yet for MS Windows!
>> @Damjan: Are you still going to implement the DirectoryDialog for MS
>> Windows? We didn't hear from you for weeks... it would be great if you
>> could do it!

Damjan: we look forward to reviewing your implementation of the 
DirectoryDialog on MS Windows. Thanks in advance!

best regards,

More information about the awt-dev mailing list