Cleanup, update kotlin version

This commit is contained in:
2018-02-28 13:19:13 +01:00
parent 70d5c2ac27
commit 9b66633230
9 changed files with 156 additions and 123 deletions

View File

@@ -1,51 +1,24 @@
package nl.astraeus.komp
import kotlinx.html.*
import kotlinx.html.HtmlBlockTag
import kotlinx.html.TagConsumer
import kotlinx.html.dom.create
import org.w3c.dom.Element
import org.w3c.dom.HTMLElement
import kotlin.browser.document
fun SPAN.include(component: Komponent) {
fun HtmlBlockTag.include(component: Komponent) {
val result = component.render(this.consumer as TagConsumer<HTMLElement>)
component.element = result
Komponent.define(result, component)
}
fun DIV.include(component: Komponent) {
val result = component.render(this.consumer as TagConsumer<HTMLElement>)
component.element = result
Komponent.define(result, component)
}
fun FORM.include(component: Komponent) {
val result = component.render(this.consumer as TagConsumer<HTMLElement>)
component.element = result
Komponent.define(result, component)
}
fun TD.include(component: Komponent) {
val result = component.render(this.consumer as TagConsumer<HTMLElement>)
component.element = result
Komponent.define(result, component)
}
fun TABLE.include(component: Komponent) {
val result = component.render(this.consumer as TagConsumer<HTMLElement>)
component.element = result
Komponent.define(result, component)
nl.astraeus.komp.Komponent.define(result, component)
}
abstract class Komponent {
var element: Element? = null
var rendered = false
fun create(): HTMLElement {
open fun create(): HTMLElement {
var elem =element
if (elem != null) {
remove(elem)

View File

@@ -0,0 +1,52 @@
package nl.astraeus.komp
import kotlinx.html.dom.create
import kotlinx.html.js.div
import kotlinx.html.style
import org.w3c.dom.HTMLElement
import kotlin.browser.document
/**
* User: rnentjes
* Date: 31-1-18
* Time: 15:58
*/
enum class SizeType {
HBAR,
VBAR
}
abstract class SizedKomponent(
val left: Int,
val top: Int,
val width: Int,
val height: Int
): Komponent() {
var parent: SizedKomponent? = null
var type: SizeType = SizeType.HBAR
var size: Int = 0
constructor(
parent: SizedKomponent,
type: SizeType,
size: Int
) :this(0,0,0,0) {
this.parent = parent
this.type = type
this.size = size
}
override fun create(): HTMLElement {
val innerResult = super.create()
val result = document.create.div {
style = "left: ${left}px; top: ${top}px; width: ${width}px; height: ${height}px;" // sizing here
}
result.appendChild(innerResult)
this.element = result
return result
}
}