blob: 3e30d74bcfd2b0cf561cc08844aaeaf2959a8b84 [file] [log] [blame]
package com.intellij.ui;
import com.intellij.openapi.actionSystem.LangDataKeys;
import com.intellij.openapi.components.PathMacroManager;
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.TextBrowseFolderListener;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class MacroAwareTextBrowseFolderListener extends TextBrowseFolderListener {
public MacroAwareTextBrowseFolderListener(@NotNull FileChooserDescriptor fileChooserDescriptor,
@Nullable Project project) {
super(fileChooserDescriptor, project);
}
@NotNull
@Override
protected String expandPath(@NotNull String path) {
Project project = getProject();
if (project != null) {
path = PathMacroManager.getInstance(project).expandPath(path);
}
Module module = myFileChooserDescriptor.getUserData(LangDataKeys.MODULE_CONTEXT);
if (module == null) {
module = myFileChooserDescriptor.getUserData(LangDataKeys.MODULE);
}
if (module != null) {
path = PathMacroManager.getInstance(module).expandPath(path);
}
return super.expandPath(path);
}
}