FileSaverDialog
[fedora-idea.git] / platform-impl / src / com / intellij / openapi / fileChooser / impl / FileChooserFactoryImpl.java
blob3e19fc0837071e2c5970139597cafb8d5168af6f
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;
13 import javax.swing.*;
14 import java.awt.*;
15 import java.util.HashMap;
16 import java.util.Map;
17 import java.util.Set;
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);
31 return 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));
56 return map;
59 public FileSaverDialog createSaveFileDialog(FileSaverDescriptor descriptor, Project project) {
60 return new FileSaverDialogImpl(descriptor, project);