Skip to content

Commit 0926879

Browse files
committed
feat: add git exclude path (#90)
1 parent 905d5ac commit 0926879

File tree

2 files changed

+29
-11
lines changed

2 files changed

+29
-11
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
package com.huayi.intellijplatform.gitstats.components
22

3+
import com.huayi.intellijplatform.gitstats.models.SettingModel
34
import com.intellij.icons.AllIcons
45
import com.intellij.openapi.actionSystem.AnActionEvent
56
import com.intellij.openapi.project.DumbAwareAction
67
import org.jetbrains.annotations.Nls
78
import java.util.function.Supplier
89

9-
class SettingAction(text: @Nls String, defaultMode: String, private val onSelectedModeChanged: (String) -> Unit) :
10+
class SettingAction(text: @Nls String, defaultSettingModel: SettingModel, private val onSettingChanged: (SettingModel) -> Unit) :
1011
DumbAwareAction(Supplier { text }, AllIcons.General.Settings) {
11-
private var selectedMode: String = defaultMode
12+
private var settingModel: SettingModel = defaultSettingModel
1213
set(value) {
1314
field = value
14-
onSelectedModeChanged.invoke(value)
15+
onSettingChanged.invoke(value)
1516
}
1617

1718
override fun actionPerformed(e: AnActionEvent) {
18-
val dialogWrapper = SettingDialogWrapper(selectedMode)
19+
val dialogWrapper = SettingDialogWrapper(settingModel)
1920
dialogWrapper.showAndGet()
2021
if (dialogWrapper.isOK) {
21-
selectedMode = dialogWrapper.selectedMode
22+
settingModel = dialogWrapper.settingModel
2223
}
2324
}
2425
}
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.huayi.intellijplatform.gitstats.components
22

33
import com.huayi.intellijplatform.gitstats.MyBundle
4+
import com.huayi.intellijplatform.gitstats.models.SettingModel
45
import com.intellij.openapi.ui.ComboBox
56
import com.intellij.openapi.ui.DialogWrapper
7+
import com.intellij.ui.components.JBTextField
68
import com.intellij.ui.components.JBLabel
79
import com.intellij.ui.components.JBPanel
810
import java.awt.Dimension
@@ -11,17 +13,18 @@ import javax.swing.BoxLayout
1113
import 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

Comments
 (0)