Skip to content

Commit 1828ba2

Browse files
committed
Update GraphQLSettingsConfigurable to the modern UI DSL
1 parent 38001b1 commit 1828ba2

File tree

1 file changed

+40
-39
lines changed

1 file changed

+40
-39
lines changed

src/main/com/intellij/lang/jsgraphql/ui/GraphQLSettingsConfigurable.kt

Lines changed: 40 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ import com.intellij.openapi.options.BoundSearchableConfigurable
1010
import com.intellij.openapi.project.Project
1111
import com.intellij.openapi.ui.DialogPanel
1212
import com.intellij.ui.EditorNotifications
13-
import com.intellij.ui.layout.CellBuilder
14-
import com.intellij.ui.layout.applyToComponent
15-
import com.intellij.ui.layout.panel
13+
import com.intellij.ui.dsl.builder.Cell
14+
import com.intellij.ui.dsl.builder.bindSelected
15+
import com.intellij.ui.dsl.builder.bindText
16+
import com.intellij.ui.dsl.builder.panel
17+
import com.intellij.ui.dsl.gridLayout.HorizontalAlign
1618
import javax.swing.JComponent
1719

1820
private const val CONFIGURABLE_ID = "settings.jsgraphql"
@@ -40,65 +42,64 @@ class GraphQLSettingsConfigurable(private val project: Project) :
4042

4143
override fun createPanel(): DialogPanel {
4244
return panel {
43-
titledRow(message("graphql.settings.introspection")) {
45+
group(message("graphql.settings.introspection")) {
4446
row(message("graphql.settings.introspection.query.label") + ":") {
45-
expandableTextField(settings::getIntrospectionQuery, settings::setIntrospectionQuery)
46-
.constraints(growX)
47+
expandableTextField()
48+
.bindText(settings::getIntrospectionQuery, settings::setIntrospectionQuery)
49+
.horizontalAlign(HorizontalAlign.FILL)
4750
.applyToComponent {
4851
emptyText.text = message("graphql.settings.introspection.query.empty.text")
4952
toolTipText = message("graphql.settings.introspection.query.tooltip")
5053
}
5154
}
5255
row {
53-
checkBox(
54-
message("graphql.settings.introspection.default.values.label"),
55-
settings::isEnableIntrospectionDefaultValues,
56-
settings::setEnableIntrospectionDefaultValues
57-
).applyToComponent { toolTipText = message("graphql.settings.introspection.default.values.tooltip") }
56+
checkBox(message("graphql.settings.introspection.default.values.label"))
57+
.bindSelected(
58+
settings::isEnableIntrospectionDefaultValues,
59+
settings::setEnableIntrospectionDefaultValues
60+
)
61+
.applyToComponent {
62+
toolTipText = message("graphql.settings.introspection.default.values.tooltip")
63+
}
5864
}
5965
row {
60-
checkBox(
61-
message("graphql.settings.introspection.repeatable.directives.label"),
62-
settings::isEnableIntrospectionRepeatableDirectives,
63-
settings::setEnableIntrospectionRepeatableDirectives
64-
).applyToComponent { toolTipText = message("graphql.settings.introspection.repeatable.directives.tooltip") }
66+
checkBox(message("graphql.settings.introspection.repeatable.directives.label"))
67+
.bindSelected(
68+
settings::isEnableIntrospectionRepeatableDirectives,
69+
settings::setEnableIntrospectionRepeatableDirectives
70+
)
71+
.applyToComponent {
72+
toolTipText = message("graphql.settings.introspection.repeatable.directives.tooltip")
73+
}
6574
}
6675
row {
67-
checkBox(
68-
message("graphql.settings.introspection.open.editor.label"),
69-
settings::isOpenEditorWithIntrospectionResult,
70-
settings::setOpenEditorWithIntrospectionResult
71-
)
76+
checkBox(message("graphql.settings.introspection.open.editor.label"))
77+
.bindSelected(
78+
settings::isOpenEditorWithIntrospectionResult,
79+
settings::setOpenEditorWithIntrospectionResult
80+
)
7281
}
7382
}
74-
75-
titledRow(message("graphql.settings.frameworks")) {
83+
group(message("graphql.settings.frameworks")) {
7684
row {
77-
checkBox(
78-
message("graphql.library.relay"),
79-
settings::isRelaySupportEnabled,
80-
settings::setRelaySupportEnabled
81-
)
85+
checkBox(message("graphql.library.relay"))
86+
.bindSelected(settings::isRelaySupportEnabled, settings::setRelaySupportEnabled)
8287
.applyToComponent { toolTipText = message("graphql.settings.frameworks.relay.tooltip") }
8388
.updateLibraries()
8489
}
8590
row {
86-
checkBox(
87-
message("graphql.library.federation"),
88-
settings::isFederationSupportEnabled,
89-
settings::setFederationSupportEnabled
90-
).updateLibraries()
91+
checkBox(message("graphql.library.federation"))
92+
.bindSelected(settings::isFederationSupportEnabled, settings::setFederationSupportEnabled)
93+
.updateLibraries()
9194
}
9295
row {
93-
checkBox(
94-
message("graphql.library.apollokotlin"),
95-
settings::isApolloKotlinSupportEnabled,
96-
settings::setApolloKotlinSupportEnabled
97-
).updateLibraries()
96+
checkBox(message("graphql.library.apollokotlin"))
97+
.bindSelected(settings::isApolloKotlinSupportEnabled, settings::setApolloKotlinSupportEnabled)
98+
.updateLibraries()
9899
}
99100
}
100101
}
101102
}
102103

103-
private fun <T : JComponent> CellBuilder<T>.updateLibraries(): CellBuilder<T> = onApply { shouldUpdateLibraries = true }
104+
private fun <T : JComponent> Cell<T>.updateLibraries(): Cell<T> = onApply { shouldUpdateLibraries = true }
104105
}

0 commit comments

Comments
 (0)