docs: public void setDirectory( File file ) {
  
  		List<File> roots = null;
  		if( file == null ) {
  			// Create a list of roots with something in them.  Windows list to list non-existant devices
  			roots = new ArrayList<>(Arrays.asList(File.listRoots()));
  			for (int i = roots.size()-1; i >= 0; i--) {
  				File[]files = roots.get(i).listFiles();
  				if( files == null || files.length == 0) {
  					roots.remove(i);
  				}
  			}
  
  			if( roots.size() == 1 ) {
  				file = roots.get(0);
  				roots = null;
  			}
  		}
  
  		if( roots == null ) {
  			setDirectoryNormal(file);
  		} else {
  			// Present the user with a list of file system roots
  			fileName.setText("");
  
  			listModel.clear();
  			for (File f : roots) {
  				listModel.addElement(f);
  			}
  
  			directoryPath.removeActionListener(directoryListener);
  			directoryPath.removeAllItems();
  			directoryPath.addActionListener(directoryListener);
  
  			listener.handleSelectedFile(null);
  		}
  	}