#KT-19799: Add initialDirectory to KotlinAwareMoveFilesOrDirectoriesDialog

This commit is contained in:
Vadim Brilyantov
2019-02-11 21:14:39 +03:00
parent 0c1e7e1d63
commit c7acd89fad
3 changed files with 9 additions and 3 deletions
@@ -113,7 +113,7 @@ class MoveKotlinDeclarationsHandler : MoveHandlerDelegate() {
else -> null
}
val initialTargetDirectory = MoveFilesOrDirectoriesUtil.resolveToDirectory(project, initialTargetElement)
val dialog = KotlinAwareMoveFilesOrDirectoriesDialog(project) {
val dialog = KotlinAwareMoveFilesOrDirectoriesDialog(project, initialTargetDirectory) {
invokeMoveFilesOrDirectoriesRefactoring(it, project, elements, initialTargetDirectory, callback)
}
dialog.setData(elements, initialTargetDirectory, "refactoring.moveFile")
@@ -42,6 +42,7 @@ import javax.swing.JComponent
class KotlinAwareMoveFilesOrDirectoriesDialog(
private val project: Project,
private val initialDirectory: PsiDirectory?,
private val callback: (KotlinAwareMoveFilesOrDirectoriesDialog?) -> Unit
) : DialogWrapper(project, true) {
companion object {
@@ -163,7 +164,12 @@ class KotlinAwareMoveFilesOrDirectoriesDialog(
project.executeCommand(RefactoringBundle.message("move.title"), null) {
runWriteAction {
val directoryName = targetDirectoryField.childComponent.text.replace(File.separatorChar, '/')
val directoryName = targetDirectoryField.childComponent.text.replace(File.separatorChar, '/').let {
when {
it.startsWith(".") -> (initialDirectory?.virtualFile?.path ?: "") + "/" + it
else -> it
}
}
try {
targetDirectory = DirectoryUtil.mkdirs(PsiManager.getInstance(project), directoryName)
}
@@ -123,7 +123,7 @@ fun moveFilesOrDirectories(
return
}
with(KotlinAwareMoveFilesOrDirectoriesDialog(project, ::doRun)) {
with(KotlinAwareMoveFilesOrDirectoriesDialog(project, initialTargetDirectory, ::doRun)) {
setData(elements, initialTargetDirectory, "refactoring.moveFile")
show()
}