package io.karat.entrevista import com.teamdev.jxbrowser.chromium.Browser import com.teamdev.jxbrowser.chromium.BrowserCore import com.teamdev.jxbrowser.chromium.BrowserType import com.teamdev.jxbrowser.chromium.internal.Environment import com.teamdev.jxbrowser.chromium.javafx.BrowserView import javafx.application.Application import javafx.collections.FXCollections import javafx.scene.text.FontWeight import tornadofx.* val useLightWeight = true class HelloWorldApp : App(MainWindow::class, Styles::class) { override fun init() { if (useLightWeight) { System.setProperty("jxbrowser.ipc.external", "true") } if (Environment.isMac()) { BrowserCore.initialize() } } } fun main(args: Array) { Application.launch(HelloWorldApp::class.java, *args) } class AppController : Controller() { val values = FXCollections.observableArrayList("one", "two", "three") } class ControlBar : View() { val controller: AppController by inject() override val root = vbox { label("Hi there, I'm a future control bar") } } class BrowserBox : View() { val controller: AppController by inject() var browser: Browser by singleAssign() var browserView: BrowserView by singleAssign() override val root = borderpane { browser = Browser(if (useLightWeight) BrowserType.LIGHTWEIGHT else BrowserType.HEAVYWEIGHT) browserView = BrowserView(browser) center = browserView browser.loadURL("http://www.google.com") } } class MainWindow : View() { override val root = borderpane { top(ControlBar::class) center(BrowserBox::class) } } class Styles : Stylesheet() { init { label { fontSize = 20.px fontWeight = FontWeight.BOLD backgroundColor += c("#cecece") } } }