@@ -4,19 +4,21 @@ import com.emberjs.configuration.serve.EmberServeConfiguration
4
4
import com.emberjs.configuration.serve.EmberServeOptions
5
5
import com.emberjs.project.EmberModuleType
6
6
import com.intellij.application.options.ModulesComboBox
7
+ import com.intellij.javascript.nodejs.interpreter.NodeJsInterpreterField
8
+ import com.intellij.javascript.nodejs.interpreter.NodeJsInterpreterRef
7
9
import com.intellij.openapi.options.SettingsEditor
10
+ import com.intellij.openapi.project.Project
8
11
import com.intellij.ui.CollectionComboBoxModel
9
12
import com.intellij.ui.EditorTextField
10
13
import com.intellij.ui.HideableDecorator
11
14
import com.intellij.ui.IdeBorderFactory
12
15
import org.jetbrains.annotations.NotNull
13
16
import java.util.*
14
- import javax.swing.JCheckBox
15
- import javax.swing.JComboBox
16
- import javax.swing.JComponent
17
- import javax.swing.JPanel
17
+ import javax.swing.*
18
18
19
- class EmberServeSettingsEditor : SettingsEditor <EmberServeConfiguration >() {
19
+ class EmberServeSettingsEditor (
20
+ val project : Project
21
+ ) : SettingsEditor<EmberServeConfiguration>() {
20
22
private var myPanel: JPanel ? = null
21
23
private var advancedSettings: JPanel ? = null
22
24
private var advancedSettingsWrapper: JPanel ? = null
@@ -43,6 +45,8 @@ class EmberServeSettingsEditor : SettingsEditor<EmberServeConfiguration>() {
43
45
private var sslCheckBox: JCheckBox ? = null
44
46
45
47
private var myModulesComboBox: ModulesComboBox ? = null
48
+ private var myNodeSettingsPanel: JPanel ? = null
49
+ private var myNodeInterpreterField: NodeJsInterpreterField ? = null
46
50
47
51
private val bundle: ResourceBundle = ResourceBundle .getBundle(" com.emberjs.locale.EmberServeConfigurationEditor" )
48
52
@@ -79,13 +83,19 @@ class EmberServeSettingsEditor : SettingsEditor<EmberServeConfiguration>() {
79
83
null -> myModulesComboBox?.selectedModule = myModulesComboBox?.model?.getElementAt(0 )
80
84
else -> myModulesComboBox?.selectedModule = module
81
85
}
86
+
87
+ myNodeInterpreterField?.interpreterRef = when (configuration.nodeInterpreter) {
88
+ is String -> NodeJsInterpreterRef .create(configuration.nodeInterpreter)
89
+ else -> NodeJsInterpreterRef .createProjectRef()
90
+ }
82
91
}
83
92
84
93
override fun applyEditorTo (configuration : EmberServeConfiguration ) {
85
94
mappings.forEach { (first, second) ->
86
95
first?.let { second.get(configuration.options).readFrom(it) }
87
96
}
88
97
configuration.module = myModulesComboBox?.selectedModule
98
+ configuration.nodeInterpreter = myNodeInterpreterField?.interpreterRef?.referenceName
89
99
}
90
100
91
101
@NotNull
@@ -98,6 +108,12 @@ class EmberServeSettingsEditor : SettingsEditor<EmberServeConfiguration>() {
98
108
setOn(false )
99
109
}
100
110
111
+ // Add interpreter field to editor
112
+ myNodeInterpreterField = NodeJsInterpreterField (project, false )
113
+ .apply { interpreterRef = NodeJsInterpreterRef .createProjectRef() }
114
+ myNodeSettingsPanel?.layout = BoxLayout (myNodeSettingsPanel, BoxLayout .PAGE_AXIS )
115
+ myNodeSettingsPanel?.add(myNodeInterpreterField)
116
+
101
117
val comboBoxModel = CollectionComboBoxModel <String >().apply {
102
118
add(" development" )
103
119
add(" production" )
0 commit comments