Cleanup, update kotlin version
This commit is contained in:
@@ -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)
|
||||
|
||||
52
src/main/kotlin/nl/astraeus/komp/SizedKomponent.kt
Normal file
52
src/main/kotlin/nl/astraeus/komp/SizedKomponent.kt
Normal 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
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user