@@ -2,10 +2,11 @@ package com.github.ramonvermeulen.dbtToolkit.ui.settings
2
2
3
3
import com.github.ramonvermeulen.dbtToolkit.services.DbtToolkitSettingsService
4
4
import com.intellij.openapi.components.service
5
+ import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory
5
6
import com.intellij.openapi.options.Configurable
6
7
import com.intellij.openapi.project.Project
8
+ import com.intellij.openapi.ui.TextFieldWithBrowseButton
7
9
import com.intellij.ui.JBIntSpinner
8
- import com.intellij.ui.components.JBTextField
9
10
import com.intellij.ui.table.JBTable
10
11
import com.intellij.util.ui.JBUI
11
12
import java.awt.BorderLayout
@@ -23,13 +24,34 @@ import javax.swing.table.DefaultTableModel
23
24
24
25
class DbtToolkitSettingsConfigurable (project : Project ) : Configurable {
25
26
private var dbtToolkitSettingsService = project.service<DbtToolkitSettingsService >()
26
- private var dbtProjectDirField = JBTextField ()
27
- private var dbtTargetDirField = JBTextField ()
28
- private var dotEnvFilePathField = JBTextField ()
27
+ private var dbtProjectDirField = TextFieldWithBrowseButton ()
28
+ private var dbtTargetDirField = TextFieldWithBrowseButton ()
29
+ private var dotEnvFilePathField = TextFieldWithBrowseButton ()
29
30
private var dbtCommandTimeoutField = JBIntSpinner (0 , 0 , 3600 )
30
31
private var envVarsTable = JBTable ()
31
32
private var settingsPanel = JPanel ()
32
33
34
+ init {
35
+ dbtProjectDirField.addBrowseFolderListener(
36
+ " Select dbt Project Directory" ,
37
+ null ,
38
+ project,
39
+ FileChooserDescriptorFactory .createSingleFolderDescriptor(),
40
+ )
41
+ dbtTargetDirField.addBrowseFolderListener(
42
+ " Select dbt Target Directory" ,
43
+ null ,
44
+ project,
45
+ FileChooserDescriptorFactory .createSingleFolderDescriptor(),
46
+ )
47
+ dotEnvFilePathField.addBrowseFolderListener(
48
+ " Select .env File" ,
49
+ null ,
50
+ project,
51
+ FileChooserDescriptorFactory .createSingleFileDescriptor(),
52
+ )
53
+ }
54
+
33
55
override fun getDisplayName (): String {
34
56
return " dbtToolkit Settings"
35
57
}
@@ -113,8 +135,8 @@ class DbtToolkitSettingsConfigurable(project: Project) : Configurable {
113
135
}
114
136
115
137
override fun reset () {
116
- dbtProjectDirField.text = dbtToolkitSettingsService.state.dbtProjectsDir
117
- dbtTargetDirField.text = dbtToolkitSettingsService.state.dbtTargetDir
138
+ dbtProjectDirField.text = dbtToolkitSettingsService.state.settingsDbtProjectDir
139
+ dbtTargetDirField.text = dbtToolkitSettingsService.state.settingsDbtTargetDir
118
140
dbtCommandTimeoutField.value = dbtToolkitSettingsService.state.settingsDbtCommandTimeout
119
141
dotEnvFilePathField.text = dbtToolkitSettingsService.state.settingsDotEnvFilePath
120
142
0 commit comments