381 |
* An array of selected files. |
* An array of selected files. |
382 |
* @see #setSelectedFiles(File[]) |
* @see #setSelectedFiles(File[]) |
383 |
*/ |
*/ |
384 |
private File[] selectedFiles; |
private File[] selectedFiles = new File[0]; |
385 |
|
|
386 |
/** |
/** |
387 |
* The selected file. |
* The selected file. |
407 |
*/ |
*/ |
408 |
public JFileChooser(String currentDirectoryPath) |
public JFileChooser(String currentDirectoryPath) |
409 |
{ |
{ |
410 |
setup(null); |
this(currentDirectoryPath, null); |
|
setCurrentDirectory(fsv.createFileObject(currentDirectoryPath)); |
|
411 |
} |
} |
412 |
|
|
413 |
/** |
/** |
423 |
public JFileChooser(String currentDirectoryPath, FileSystemView fsv) |
public JFileChooser(String currentDirectoryPath, FileSystemView fsv) |
424 |
{ |
{ |
425 |
setup(fsv); |
setup(fsv); |
426 |
setCurrentDirectory(fsv.createFileObject(currentDirectoryPath)); |
File dir = null; |
427 |
|
if (currentDirectoryPath != null) |
428 |
|
dir = getFileSystemView().createFileObject(currentDirectoryPath); |
429 |
|
setCurrentDirectory(dir); |
430 |
} |
} |
431 |
|
|
432 |
/** |
/** |
527 |
*/ |
*/ |
528 |
public void setSelectedFile(File file) |
public void setSelectedFile(File file) |
529 |
{ |
{ |
530 |
if (selectedFile != file) |
if (selectedFile == null || !selectedFile.equals(file)) |
531 |
{ |
{ |
532 |
File old = selectedFile; |
File old = selectedFile; |
533 |
selectedFile = file; |
selectedFile = file; |
536 |
} |
} |
537 |
|
|
538 |
/** |
/** |
539 |
* Returns the selected file or files. |
* Returns the selected file or files in an array. If no files are selected, |
540 |
|
* an empty array is returned. |
541 |
* |
* |
542 |
* @return An array of the selected files, or <code>null</code> if there are |
* @return An array of the selected files (possibly empty). |
|
* no selected files. |
|
543 |
*/ |
*/ |
544 |
public File[] getSelectedFiles() |
public File[] getSelectedFiles() |
545 |
{ |
{ |
559 |
*/ |
*/ |
560 |
public void setSelectedFiles(File[] selectedFiles) |
public void setSelectedFiles(File[] selectedFiles) |
561 |
{ |
{ |
562 |
|
if (selectedFiles == null) |
563 |
|
selectedFiles = new File[0]; |
564 |
|
if (selectedFiles.length > 0) |
565 |
|
setSelectedFile(selectedFiles[0]); |
566 |
|
else |
567 |
|
setSelectedFile(null); |
568 |
if (this.selectedFiles != selectedFiles) |
if (this.selectedFiles != selectedFiles) |
569 |
{ |
{ |
570 |
File[] old = this.selectedFiles; |
File[] old = this.selectedFiles; |
572 |
firePropertyChange(SELECTED_FILES_CHANGED_PROPERTY, old, selectedFiles); |
firePropertyChange(SELECTED_FILES_CHANGED_PROPERTY, old, selectedFiles); |
573 |
} |
} |
574 |
|
|
|
if (selectedFiles != null) |
|
|
setSelectedFile(selectedFiles[0]); |
|
575 |
} |
} |
576 |
|
|
577 |
/** |
/** |
613 |
*/ |
*/ |
614 |
public void changeToParentDirectory() |
public void changeToParentDirectory() |
615 |
{ |
{ |
616 |
if (fsv.getParentDirectory(currentDir) != null) |
setCurrentDirectory(fsv.getParentDirectory(currentDir)); |
|
setCurrentDirectory(fsv.getParentDirectory(currentDir)); |
|
617 |
} |
} |
618 |
|
|
619 |
/** |
/** |
963 |
* {@link #CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY}) to all registered |
* {@link #CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY}) to all registered |
964 |
* listeners. |
* listeners. |
965 |
* |
* |
966 |
* @param filter the filter. |
* @param filter the filter (<code>null</code> permitted). |
967 |
*/ |
*/ |
968 |
public void addChoosableFileFilter(FileFilter filter) |
public void addChoosableFileFilter(FileFilter filter) |
969 |
{ |
{ |
970 |
FileFilter[] old = getChoosableFileFilters(); |
if (filter != null) |
971 |
choosableFilters.add(filter); |
{ |
972 |
FileFilter[] newFilters = getChoosableFileFilters(); |
FileFilter[] old = getChoosableFileFilters(); |
973 |
firePropertyChange(CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY, old, newFilters); |
choosableFilters.add(filter); |
974 |
|
FileFilter[] newFilters = getChoosableFileFilters(); |
975 |
|
firePropertyChange(CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY, old, |
976 |
|
newFilters); |
977 |
|
} |
978 |
|
setFileFilter(filter); |
979 |
} |
} |
980 |
|
|
981 |
/** |
/** |
991 |
*/ |
*/ |
992 |
public boolean removeChoosableFileFilter(FileFilter f) |
public boolean removeChoosableFileFilter(FileFilter f) |
993 |
{ |
{ |
994 |
|
if (f == currentFilter) |
995 |
|
setFileFilter(null); |
996 |
FileFilter[] old = getChoosableFileFilters(); |
FileFilter[] old = getChoosableFileFilters(); |
997 |
if (! choosableFilters.remove(f)) |
if (! choosableFilters.remove(f)) |
998 |
return false; |
return false; |
1049 |
if (isAcceptAll != b) |
if (isAcceptAll != b) |
1050 |
{ |
{ |
1051 |
isAcceptAll = b; |
isAcceptAll = b; |
1052 |
|
if (b) |
1053 |
|
addChoosableFileFilter(getAcceptAllFileFilter()); |
1054 |
|
else |
1055 |
|
removeChoosableFileFilter(getAcceptAllFileFilter()); |
1056 |
firePropertyChange(ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY, |
firePropertyChange(ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY, |
1057 |
! isAcceptAll, isAcceptAll); |
! isAcceptAll, isAcceptAll); |
1058 |
} |
} |
1224 |
* property name {@link #FILE_FILTER_CHANGED_PROPERTY}) to all registered |
* property name {@link #FILE_FILTER_CHANGED_PROPERTY}) to all registered |
1225 |
* listeners. |
* listeners. |
1226 |
* |
* |
1227 |
* @param filter the filter. |
* @param filter the filter (<code>null</code> permitted). |
1228 |
*/ |
*/ |
1229 |
public void setFileFilter(FileFilter filter) |
public void setFileFilter(FileFilter filter) |
1230 |
{ |
{ |
1231 |
if (currentFilter != filter) |
if (currentFilter != filter) |
1232 |
{ |
{ |
1233 |
FileFilter old = currentFilter; |
if (filter != null && !choosableFilters.contains(filter)) |
1234 |
currentFilter = filter; |
addChoosableFileFilter(filter); |
1235 |
firePropertyChange(FILE_FILTER_CHANGED_PROPERTY, old, currentFilter); |
FileFilter old = currentFilter; |
1236 |
|
currentFilter = filter; |
1237 |
|
firePropertyChange(FILE_FILTER_CHANGED_PROPERTY, old, currentFilter); |
1238 |
} |
} |
1239 |
} |
} |
1240 |
|
|
1374 |
public boolean accept(File f) |
public boolean accept(File f) |
1375 |
{ |
{ |
1376 |
if (f == null) |
if (f == null) |
1377 |
return false; |
return true; |
1378 |
return getFileFilter().accept(f); |
FileFilter ff = getFileFilter(); |
1379 |
|
if (ff != null) |
1380 |
|
return ff.accept(f); |
1381 |
|
else |
1382 |
|
return true; |
1383 |
} |
} |
1384 |
|
|
1385 |
/** |
/** |