1
1
package com.huayi.intellijplatform.gitstats.components
2
2
3
3
import com.huayi.intellijplatform.gitstats.MyBundle
4
+ import com.huayi.intellijplatform.gitstats.models.SettingModel
4
5
import com.intellij.openapi.ui.ComboBox
5
6
import com.intellij.openapi.ui.DialogWrapper
7
+ import com.intellij.ui.components.JBTextField
6
8
import com.intellij.ui.components.JBLabel
7
9
import com.intellij.ui.components.JBPanel
8
10
import java.awt.Dimension
@@ -11,17 +13,18 @@ import javax.swing.BoxLayout
11
13
import javax.swing.JComponent
12
14
13
15
14
- class SettingDialogWrapper (defaultMode : String ) : DialogWrapper(true ) {
15
- var selectedMode : String = defaultMode
16
+ class SettingDialogWrapper (defaultSettingModel : SettingModel ) : DialogWrapper(true ) {
17
+ var settingModel : SettingModel = defaultSettingModel
16
18
private lateinit var modeComboBox: ComboBox <String >
19
+ private lateinit var excludeField: JBTextField
17
20
init {
18
21
title = " Git Stats Setting"
19
22
init ()
20
23
}
21
24
override fun createCenterPanel (): JComponent {
22
25
val dialogPanel = JBPanel <JBPanel <* >>().apply {
23
- layout = GridLayout (1 , 1 )
24
- preferredSize = Dimension (260 , 30 )
26
+ layout = GridLayout (2 , 1 , 0 , 5 )
27
+ preferredSize = Dimension (260 , 60 )
25
28
}
26
29
val modeFieldPanel = JBPanel <JBPanel <* >>().apply {
27
30
layout = BoxLayout (this , BoxLayout .X_AXIS )
@@ -31,16 +34,30 @@ class SettingDialogWrapper(defaultMode: String) : DialogWrapper(true) {
31
34
modeComboBox = ComboBox <String >().apply {
32
35
addItem(" Top-speed" )
33
36
addItem(" Advanced" )
34
- selectedItem = selectedMode
37
+ selectedItem = settingModel.mode
35
38
}
36
39
add(modeComboBox)
37
40
}
38
41
dialogPanel.add(modeFieldPanel)
42
+
43
+ val excludeFieldPanel = JBPanel <JBPanel <* >>().apply {
44
+ layout = BoxLayout (this , BoxLayout .X_AXIS )
45
+ add(JBLabel (MyBundle .message(" settingDialogExcludeLabel" , " " )).apply {
46
+ preferredSize = Dimension (50 , 30 )
47
+ })
48
+ excludeField = JBTextField ().apply {
49
+ text = settingModel.exclude
50
+ }
51
+ add(excludeField)
52
+ }
53
+ dialogPanel.add(excludeFieldPanel)
54
+
39
55
return dialogPanel
40
56
}
41
57
42
58
override fun doOKAction () {
43
- selectedMode = modeComboBox.selectedItem as String
59
+ settingModel.mode = modeComboBox.selectedItem as String
60
+ settingModel.exclude = excludeField.text
44
61
super .doOKAction()
45
62
}
46
63
}
0 commit comments