1 package com
.intellij
.openapi
.fileChooser
.impl
;
3 import com
.intellij
.openapi
.Disposable
;
4 import com
.intellij
.openapi
.application
.ApplicationManager
;
5 import com
.intellij
.openapi
.application
.PathMacros
;
6 import com
.intellij
.openapi
.fileChooser
.*;
7 import com
.intellij
.openapi
.fileChooser
.ex
.FileChooserDialogImpl
;
8 import com
.intellij
.openapi
.fileChooser
.ex
.FileTextFieldImpl
;
9 import com
.intellij
.openapi
.fileChooser
.ex
.FileSaverDialogImpl
;
10 import com
.intellij
.openapi
.project
.Project
;
11 import com
.intellij
.openapi
.util
.Disposer
;
15 import java
.util
.HashMap
;
19 public class FileChooserFactoryImpl
extends FileChooserFactory
{
20 public FileChooserDialog
createFileChooser(FileChooserDescriptor descriptor
, Project project
) {
21 return new FileChooserDialogImpl(descriptor
, project
);
24 public FileChooserDialog
createFileChooser(FileChooserDescriptor descriptor
, Component parent
) {
25 return new FileChooserDialogImpl(descriptor
, parent
);
28 public FileTextField
createFileTextField(final FileChooserDescriptor descriptor
, final boolean showHidden
, Disposable parent
) {
29 FileTextFieldImpl
.Vfs field
= new FileTextFieldImpl
.Vfs(descriptor
, showHidden
, new JTextField(), getMacroMap());
30 Disposer
.register(parent
, field
);
34 public FileTextField
createFileTextField(final FileChooserDescriptor descriptor
, Disposable parent
) {
35 return createFileTextField(descriptor
, true, parent
);
38 public void installFileCompletion(final JTextField field
, final FileChooserDescriptor descriptor
, final boolean showHidden
,
39 final Disposable parent
) {
40 if (ApplicationManager
.getApplication().isUnitTestMode() || ApplicationManager
.getApplication().isHeadlessEnvironment()) return;
42 FileTextFieldImpl
.Vfs vfsField
= new FileTextFieldImpl
.Vfs(descriptor
, showHidden
, field
, getMacroMap());
43 if (field
.getClientProperty(FileTextFieldImpl
.KEY
) == vfsField
) {
44 Disposer
.register(parent
, vfsField
);
48 public static Map
<String
, String
> getMacroMap() {
49 final PathMacros macros
= PathMacros
.getInstance();
50 final Set
<String
> allNames
= macros
.getAllMacroNames();
51 final HashMap
<String
, String
> map
= new HashMap
<String
, String
>();
52 for (String eachMacroName
: allNames
) {
53 map
.put("$" + eachMacroName
+ "$", macros
.getValue(eachMacroName
));
59 public FileSaverDialog
createSaveFileDialog(FileSaverDescriptor descriptor
, Project project
) {
60 return new FileSaverDialogImpl(descriptor
, project
);