def createFileChooserDialog(filters, filename, prefs, prefkey, multiselect): """ Creates a file chooser dialog that remembers its last directory. """ fileChooser = JFileChooser() # Add filters if not hasattr(filters, '__iter__'): filters = (filters, ) if filters: for filter in filters: fileChooser.addChoosableFileFilter(filter) fileChooser.fileFilter = filters[0] # Enable/disable multiple file select fileChooser.setMultiSelectionEnabled(multiselect) # Restore the last directory if prefs and prefkey: defaultDirName = prefs.get(prefkey, None) if defaultDirName: defaultDirectory = File(defaultDirName) if defaultDirectory.exists(): fileChooser.currentDirectory = defaultDirectory # Preset the file name if filename: fileChooser.selectedFile = File(fileChooser.currentDirectory, filename) return fileChooser
def createFileChooserDialog(filters, filename, prefs, prefkey, multiselect): """ Creates a file chooser dialog that remembers its last directory. """ fileChooser = JFileChooser() # Add filters if not hasattr(filters, '__iter__'): filters = (filters,) if filters: for filter in filters: fileChooser.addChoosableFileFilter(filter) fileChooser.fileFilter = filters[0] # Enable/disable multiple file select fileChooser.setMultiSelectionEnabled(multiselect) # Restore the last directory if prefs and prefkey: defaultDirName = prefs.get(prefkey, None) if defaultDirName: defaultDirectory = File(defaultDirName) if defaultDirectory.exists(): fileChooser.currentDirectory = defaultDirectory # Preset the file name if filename: fileChooser.selectedFile = File(fileChooser.currentDirectory, filename) return fileChooser
def saveFileDialog(parent, startingDir=None, title=None, extension=None): # type: (java.awt.Component, str, str, str) -> (java.io.File, str) """Creates a fileChooser.showSaveDialog and returns the selected file. Args: * parent (java.awt.Component): Parent component. * startingDir (str): Starting directory. * title (str): Title of the dialog. * fileFilter (str): Extension (without the dot) of the file to look for. E.g., "json" Returns java.io.File and a string containing the last used directory.""" fileChooser = JFileChooser() if startingDir is not None: startingPath = File(startingDir) fileChooser.setCurrentDirectory(startingPath) if title is not None: fileChooser.dialogTitle = title # FileNameExtensionFilter # https://docs.oracle.com/javase/8/docs/api/javax/swing/filechooser/FileNameExtensionFilter.html if extension is not None: extensionFilterString = "%s Files (*.%s)" % (extension.upper(), extension) extensionFilterList = [extension] fil = FileNameExtensionFilter(extensionFilterString, extensionFilterList) fileChooser.fileFilter = fil fileChooser.addChoosableFileFilter(fil) fileChooser.fileSelectionMode = JFileChooser.FILES_ONLY returnVal = fileChooser.showSaveDialog(parent) if returnVal != JFileChooser.APPROVE_OPTION: # export cancelled or there was an error return None, "" # store the used directory lastDir = fileChooser.getCurrentDirectory().toString() # get file path selectedFile = fileChooser.getSelectedFile() return selectedFile, lastDir