Skip to content

Commit fde2eb4

Browse files
committed
refactor(devtools): optimize layout and code structure of planner window
#352 - Remove unnecessary empty lines and improve code readability- Extract common logic into a reusable function (withPlannerWindow) - Adjust spacing in EditPlanPanel and IssueInputPanel for better visual consistency - Remove unused border in IssueInputPanel
1 parent a1ba0dd commit fde2eb4

File tree

3 files changed

+27
-38
lines changed

3 files changed

+27
-38
lines changed

core/src/main/kotlin/cc/unitmesh/devti/gui/planner/AutoDevPlannerToolWindow.kt

Lines changed: 21 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,8 @@ class AutoDevPlannerToolWindow(val project: Project) : SimpleToolWindowPanel(tru
8787

8888
private fun switchToView(view: PlannerView) {
8989
if (currentView?.viewType == view.viewType) return
90-
9190
contentPanel.removeAll()
92-
91+
9392
currentView = view
9493
view.initialize(this)
9594

@@ -130,7 +129,6 @@ class AutoDevPlannerToolWindow(val project: Project) : SimpleToolWindowPanel(tru
130129

131130
inner class PlanView : PlannerView {
132131
override val viewType = PlannerViewType.PLAN
133-
134132
override fun initialize(window: AutoDevPlannerToolWindow) {
135133
val planPanel = panel {
136134
row {
@@ -147,7 +145,6 @@ class AutoDevPlannerToolWindow(val project: Project) : SimpleToolWindowPanel(tru
147145

148146
inner class EditorView : PlannerView {
149147
override val viewType = PlannerViewType.EDITOR
150-
151148
override fun initialize(window: AutoDevPlannerToolWindow) {
152149
val editPlanPanel = EditPlanPanel(
153150
project = project,
@@ -209,39 +206,34 @@ class AutoDevPlannerToolWindow(val project: Project) : SimpleToolWindowPanel(tru
209206
}
210207

211208
companion object {
212-
fun showPlanEditor(project: Project, planText: String, callback: (String) -> Unit) {
213-
val toolWindow =
214-
ToolWindowManager.Companion.getInstance(project)
215-
.getToolWindow(AutoDevPlannerToolWindowFactory.Companion.PlANNER_ID)
216-
if (toolWindow != null) {
217-
val content = toolWindow.contentManager.getContent(0)
218-
val plannerWindow = content?.component as? AutoDevPlannerToolWindow
219-
220-
plannerWindow?.let {
221-
it.currentCallback = callback
222-
if (planText.isNotEmpty() && planText != it.content) {
223-
it.content = planText
224-
}
225-
226-
it.switchToView(it.EditorView())
227-
toolWindow.show()
228-
}
229-
}
230-
}
231-
232-
fun showIssueInput(project: Project) {
233-
val toolWindow = ToolWindowManager.Companion.getInstance(project).getToolWindow(
234-
AutoDevPlannerToolWindowFactory.Companion.PlANNER_ID
235-
)
209+
private fun withPlannerWindow(project: Project, action: (AutoDevPlannerToolWindow) -> Unit) {
210+
val toolWindow = ToolWindowManager.getInstance(project)
211+
.getToolWindow(AutoDevPlannerToolWindowFactory.Companion.PlANNER_ID)
236212
if (toolWindow == null) return
237213

238214
val content = toolWindow.contentManager.getContent(0)
239215
val plannerWindow = content?.component as? AutoDevPlannerToolWindow
240216

241217
plannerWindow?.let {
242-
it.switchToView(it.IssueInputView())
218+
action(it)
243219
toolWindow.show()
244220
}
245221
}
222+
223+
fun showPlanEditor(project: Project, planText: String, callback: (String) -> Unit) {
224+
withPlannerWindow(project) { plannerWindow ->
225+
plannerWindow.currentCallback = callback
226+
if (planText.isNotEmpty() && planText != plannerWindow.content) {
227+
plannerWindow.content = planText
228+
}
229+
plannerWindow.switchToView(plannerWindow.EditorView())
230+
}
231+
}
232+
233+
fun showIssueInput(project: Project) {
234+
withPlannerWindow(project) { plannerWindow ->
235+
plannerWindow.switchToView(plannerWindow.IssueInputView())
236+
}
237+
}
246238
}
247239
}

core/src/main/kotlin/cc/unitmesh/devti/gui/planner/EditPlanPanel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ class EditPlanPanel(
2727
onSave(newContent)
2828
}
2929
})
30-
add(Box.createHorizontalStrut(10))
30+
add(Box.createHorizontalStrut(8))
3131
add(JButton("Cancel").apply {
3232
addActionListener {
3333
onCancel()
3434
}
3535
})
3636
}
3737
buttonPanel.add(buttonsBox, BorderLayout.EAST)
38-
buttonPanel.border = JBUI.Borders.empty(5)
38+
buttonPanel.border = JBUI.Borders.empty(4)
3939

4040
add(JBScrollPane(markdownEditor), BorderLayout.CENTER)
4141
add(buttonPanel, BorderLayout.SOUTH)

core/src/main/kotlin/cc/unitmesh/devti/shadow/IssueInputPanel.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import cc.unitmesh.devti.inline.AutoDevLineBorder
88
import cc.unitmesh.devti.sketch.AutoSketchMode
99
import com.intellij.openapi.project.Project
1010
import com.intellij.ui.components.JBScrollPane
11-
import com.intellij.ui.JBColor
1211
import com.intellij.util.ui.JBUI
1312
import java.awt.BorderLayout
1413
import javax.swing.BorderFactory
@@ -24,10 +23,8 @@ class IssueInputPanel(
2423
private var textArea: MarkdownLanguageField? = null
2524

2625
init {
27-
textArea = MarkdownLanguageField(project, "", "Enter Issue Description", "issue.md").apply {
28-
border = AutoDevLineBorder(JBColor.namedColor("Focus.borderColor", JBColor.BLUE), 1, true, 4)
29-
}
30-
26+
textArea = MarkdownLanguageField(project, "", "Enter Issue Description", "issue.md")
27+
3128
val buttonPanel = JPanel(BorderLayout())
3229
val buttonsBox = Box.createHorizontalBox().apply {
3330
add(JButton("Submit").apply {
@@ -41,15 +38,15 @@ class IssueInputPanel(
4138
}
4239
}
4340
})
44-
add(Box.createHorizontalStrut(10))
41+
add(Box.createHorizontalStrut(8))
4542
add(JButton("Cancel").apply {
4643
addActionListener {
4744
onCancel()
4845
}
4946
})
5047
}
5148
buttonPanel.add(buttonsBox, BorderLayout.EAST)
52-
buttonPanel.border = JBUI.Borders.empty(5)
49+
buttonPanel.border = JBUI.Borders.empty(4)
5350

5451
add(JBScrollPane(textArea), BorderLayout.CENTER)
5552
add(buttonPanel, BorderLayout.SOUTH)

0 commit comments

Comments
 (0)