11package com.huayi.intellijplatform.gitstats.components
22
33import com.huayi.intellijplatform.gitstats.MyBundle
4+ import com.huayi.intellijplatform.gitstats.models.SettingModel
45import com.intellij.openapi.ui.ComboBox
56import com.intellij.openapi.ui.DialogWrapper
7+ import com.intellij.ui.components.JBTextField
68import com.intellij.ui.components.JBLabel
79import com.intellij.ui.components.JBPanel
810import java.awt.Dimension
@@ -11,17 +13,18 @@ import javax.swing.BoxLayout
1113import javax.swing.JComponent
1214
1315
14- class SettingDialogWrapper (defaultMode : String ) : DialogWrapper(true ) {
15- var selectedMode : String = defaultMode
16+ class SettingDialogWrapper (defaultSettingModel : SettingModel ) : DialogWrapper(true ) {
17+ var settingModel : SettingModel = defaultSettingModel
1618 private lateinit var modeComboBox: ComboBox <String >
19+ private lateinit var excludeField: JBTextField
1720 init {
1821 title = " Git Stats Setting"
1922 init ()
2023 }
2124 override fun createCenterPanel (): JComponent {
2225 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 )
2528 }
2629 val modeFieldPanel = JBPanel <JBPanel <* >>().apply {
2730 layout = BoxLayout (this , BoxLayout .X_AXIS )
@@ -31,16 +34,30 @@ class SettingDialogWrapper(defaultMode: String) : DialogWrapper(true) {
3134 modeComboBox = ComboBox <String >().apply {
3235 addItem(" Top-speed" )
3336 addItem(" Advanced" )
34- selectedItem = selectedMode
37+ selectedItem = settingModel.mode
3538 }
3639 add(modeComboBox)
3740 }
3841 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+
3955 return dialogPanel
4056 }
4157
4258 override fun doOKAction () {
43- selectedMode = modeComboBox.selectedItem as String
59+ settingModel.mode = modeComboBox.selectedItem as String
60+ settingModel.exclude = excludeField.text
4461 super .doOKAction()
4562 }
4663}
0 commit comments