79 lines
2.2 KiB
Kotlin
Raw Normal View History

2021-12-31 13:59:27 +03:00
package space.kscience.visionforge.examples
2022-12-02 22:38:37 +03:00
import io.ktor.server.cio.CIO
import io.ktor.server.engine.embeddedServer
2022-12-03 13:53:34 +03:00
import io.ktor.server.http.content.resources
2022-12-02 22:38:37 +03:00
import io.ktor.server.routing.routing
2021-12-31 13:59:27 +03:00
import kotlinx.html.*
import space.kscience.dataforge.context.Global
import space.kscience.dataforge.context.fetch
import space.kscience.visionforge.VisionManager
2022-11-17 21:49:14 +03:00
import space.kscience.visionforge.html.VisionPage
2022-01-02 14:28:24 +03:00
import space.kscience.visionforge.html.formFragment
2021-12-31 13:59:27 +03:00
import space.kscience.visionforge.onPropertyChange
2022-12-03 13:53:34 +03:00
import space.kscience.visionforge.server.EngineConnectorConfig
import space.kscience.visionforge.server.close
import space.kscience.visionforge.server.openInBrowser
2022-12-02 22:38:37 +03:00
import space.kscience.visionforge.server.visionPage
2021-12-31 13:59:27 +03:00
fun main() {
val visionManager = Global.fetch(VisionManager)
2022-12-03 13:53:34 +03:00
val connector = EngineConnectorConfig("localhost", 7777)
val server = embeddedServer(CIO, connector.port, connector.host) {
2022-12-02 22:38:37 +03:00
routing {
2022-12-03 13:53:34 +03:00
resources()
}
2021-12-31 13:59:27 +03:00
2022-12-03 13:53:34 +03:00
visionPage(connector, visionManager, VisionPage.scriptHeader("js/visionforge-playground.js")) {
val form = formFragment("form") {
label {
htmlFor = "fname"
+"First name:"
}
br()
input {
type = InputType.text
id = "fname"
name = "fname"
value = "John"
}
br()
label {
htmlFor = "lname"
+"Last name:"
}
br()
input {
type = InputType.text
id = "lname"
name = "lname"
value = "Doe"
}
br()
br()
input {
type = InputType.submit
value = "Submit"
2022-12-02 22:38:37 +03:00
}
2021-12-31 13:59:27 +03:00
}
2022-12-03 13:53:34 +03:00
vision("form") { form }
form.onPropertyChange {
println(this)
}
2021-12-31 13:59:27 +03:00
}
2022-12-03 13:53:34 +03:00
2022-12-02 22:38:37 +03:00
}.start(false)
2021-12-31 13:59:27 +03:00
server.openInBrowser()
while (readln() != "exit") {
}
server.close()
}