Skip to content

Commit 2136c43

Browse files
feat: Add support for double default values
- Add doubleDefaultValue field and doubleFieldDefaultValue() method to Settings - Add double case in ClassDefinition field generation logic - Add UI input field for double default values in JsonInputDialog - Fix existing bugs where bool/int checks used stringFieldDefaultValue() Fixes issue where double fields didn't get default values when 'set default' option was enabled, causing inconsistent behavior compared to other primitive types.
1 parent ebbdeae commit 2136c43

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

src/main/kotlin/com/github/zhangruiyu/flutterjsonbeanfactory/action/jsontodart/ClassDefinition.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,12 @@ class ClassDefinition(private val name: String, private val privateFields: Boole
118118
} else if (f.subtype == null) {
119119
if (f.name == "String" && settings.stringFieldDefaultValue()?.isNotEmpty() == true) {
120120
sb.append(" = ${settings.stringFieldDefaultValue()}")
121-
} else if (f.name == "bool" && settings.stringFieldDefaultValue()?.isNotEmpty() == true) {
121+
} else if (f.name == "bool" && settings.boolFieldDefaultValue()?.isNotEmpty() == true) {
122122
sb.append(" = ${settings.boolFieldDefaultValue()}")
123-
} else if (f.name == "int" && settings.stringFieldDefaultValue()?.isNotEmpty() == true) {
123+
} else if (f.name == "int" && settings.intFieldDefaultValue()?.isNotEmpty() == true) {
124124
sb.append(" = ${settings.intFieldDefaultValue()}")
125+
} else if (f.name == "double" && settings.doubleFieldDefaultValue()?.isNotEmpty() == true) {
126+
sb.append(" = ${settings.doubleFieldDefaultValue()}")
125127
}
126128
}
127129
}

src/main/kotlin/com/github/zhangruiyu/flutterjsonbeanfactory/setting/Settings.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ data class Settings(
1313
var boolDefaultValue: String = "false",
1414
var stringDefaultValue: String = "''",
1515
var intDefaultValue: String = "0",
16+
var doubleDefaultValue: String = "0.0",
1617
var listDefaultValue: String = "[]",
1718
) : PersistentStateComponent<Settings> {
1819

@@ -52,6 +53,14 @@ data class Settings(
5253
}
5354
}
5455

56+
fun doubleFieldDefaultValue(): String? {
57+
return if (setDefault == true && doubleDefaultValue.isNotEmpty()) {
58+
doubleDefaultValue
59+
} else {
60+
null
61+
}
62+
}
63+
5564
fun listFieldDefaultValue(): String? {
5665
return if (setDefault == true && listDefaultValue.isNotEmpty()) {
5766
listDefaultValue

src/main/kotlin/com/github/zhangruiyu/flutterjsonbeanfactory/ui/JsonInputDialog.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,11 @@ open class JsonInputDialog(
173173
}, settings.intDefaultValue).forEach {
174174
defaultContainer.add(it)
175175
}
176+
buildDefaultItem("double", { newText ->
177+
settings.doubleDefaultValue = newText
178+
}, settings.doubleDefaultValue).forEach {
179+
defaultContainer.add(it)
180+
}
176181
buildDefaultItem("bool", { newText ->
177182
settings.boolDefaultValue = newText
178183
}, settings.boolDefaultValue).forEach {

0 commit comments

Comments
 (0)