import de.unixwork.ui.EventWrapper.eventHandler
import de.unixwork.ui.ListValueConverter
import de.unixwork.ui.ListView
+import de.unixwork.ui.SubListValueConverter
+import de.unixwork.ui.Text
+import de.unixwork.ui.TextFieldBuilder
import de.unixwork.ui.ToggleBuilder
import de.unixwork.ui.UiInteger
import de.unixwork.ui.UiList
import de.unixwork.ui.UiObject
+import de.unixwork.ui.UiSourceList
+import de.unixwork.ui.UiString
import de.unixwork.ui.UiWidget
+import java.awt.TextField
import java.lang.foreign.MemorySegment
class Toplevel(obj: UiObject) {
}
return list.create()
}
+
+ fun <T>sourcelist(
+ varname: String? = null,
+ sourceList: UiSourceList? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ getvalue: SubListValueConverter<T>? = null
+ ): UiWidget {
+ val list = ListView.sourcelist<T>(obj)
+ varname?.let {
+ list.varname(varname)
+ }
+ sourceList?.let {
+ list.dynamicSublists(sourceList)
+ }
+ if(fill) {
+ list.fill(true)
+ }
+ if(hexpand) {
+ list.hexpand(true)
+ }
+ if(vexpand) {
+ list.vexpand(true)
+ }
+ if(hfill) {
+ list.hfill(true)
+ }
+ if(vfill) {
+ list.vfill(true)
+ }
+ if(overrideDefaults) {
+ list.overrideDefaults(true)
+ }
+ if(colspan > 0) {
+ list.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ list.rowspan(rowspan)
+ }
+ name?.let {
+ list.name(it)
+ }
+ styleClass?.let {
+ list.styleClass(it)
+ }
+ getvalue?.let {
+ list.getvalue(it)
+ }
+ return list.create()
+ }
+
+ private fun createTextField(
+ textfield: TextFieldBuilder,
+ varname: String? = null,
+ value: UiString? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ onChange: EventHandler? = null
+ ): UiWidget {
+ varname?.let {
+ textfield.varname(it)
+ }
+ value?.let {
+ textfield.value(it)
+ }
+ if(fill) {
+ textfield.fill(fill);
+ }
+ if(hexpand) {
+ textfield.hexpand(true)
+ }
+ if(vexpand) {
+ textfield.vexpand(true)
+ }
+ if(hfill) {
+ textfield.hfill(true)
+ }
+ if(vfill) {
+ textfield.vfill(true)
+ }
+ if(colspan > 0) {
+ textfield.colspan(colspan)
+ }
+ if(rowspan > 0) {
+ textfield.rowspan(rowspan)
+ }
+ if(overrideDefaults) {
+ textfield.overrideDefaults(true)
+ }
+ name?.let {
+ textfield.name(it)
+ }
+ styleClass?.let {
+ textfield.styleClass(it)
+ }
+ onChange?.let {
+ textfield.onChange(onChange)
+ }
+ return textfield.create()
+ }
+
+ fun textfield(
+ varname: String? = null,
+ value: UiString? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ onChange: EventHandler? = null
+ ): UiWidget {
+ val textfield = Text.textfield(obj)
+ return createTextField(
+ textfield = textfield,
+ varname = varname,
+ value = value,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ onChange = onChange
+ )
+ }
+
+ fun passwordField(
+ varname: String? = null,
+ value: UiString? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ onChange: EventHandler? = null
+ ): UiWidget {
+ val textfield = Text.passwordfield(obj)
+ return createTextField(
+ textfield = textfield,
+ varname = varname,
+ value = value,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ onChange = onChange
+ )
+ }
+
+ fun framelessTextfield(
+ varname: String? = null,
+ value: UiString? = null,
+ fill: Boolean = false,
+ hexpand: Boolean = false,
+ vexpand: Boolean = false,
+ hfill: Boolean = false,
+ vfill: Boolean = false,
+ overrideDefaults: Boolean = false,
+ colspan: Int = -1,
+ rowspan: Int = -1,
+ name: String? = null,
+ styleClass: String? = null,
+ onChange: EventHandler? = null
+ ): UiWidget {
+ val textfield = Text.framelessTextfield(obj)
+ return createTextField(
+ textfield = textfield,
+ varname = varname,
+ value = value,
+ fill = fill,
+ hexpand = hexpand,
+ vexpand = vexpand,
+ hfill = hfill,
+ vfill = vfill,
+ overrideDefaults = overrideDefaults,
+ colspan = colspan,
+ rowspan = rowspan,
+ name = name,
+ styleClass = styleClass,
+ onChange = onChange
+ )
+ }
}
\ No newline at end of file