ron
04/06/2019, 1:27 PMclass Startup : App(KeepassWorkspace::class) {
val controller: MainController by inject()
val guice: Injector = Guice.createInjector(GuiceConfigurator(), GuiceServletConfigurator())
val preferences: KeepassPreferences = guice.getInstance(KeepassPreferences::class.java)
init {
SLF4JBridgeHandler.removeHandlersForRootLogger()
SLF4JBridgeHandler.install()
FX.dicontainer = object : DIContainer {
override fun <T : Any> getInstance(type: KClass<T>): T = guice.getInstance(type.java)
}
//setApplicationIcon()
val osName = System.getProperty("os.name")
val iconFileName: String
when {
osName.contains("win") -> iconFileName = "/KeePass_icon.png.ico"
else -> iconFileName = "/KeePass_icon.png"
}
trayicon(icon = resources.stream(iconFileName), autoSize = true, implicitExit = preferences.hideToTray.not()) {
setOnMouseClicked(fxThread = true) {
if (FX.primaryStage.isShowing) {
FX.primaryStage.hide()
} else {
FX.primaryStage.show()
FX.primaryStage.toFront()
}
}
}
}
override fun onBeforeShow(view: UIComponent) {
FX.primaryStage.icons.add(Image(resources.stream("/KeePass_icon.png")))
val titleProperty = SimpleStringProperty("KeepassFX")
FX.primaryStage.titleProperty().bind(titleProperty)
workspace.dock<MainView>()
}
override fun start(stage: Stage) {
super.start(stage)
controller.startIdleTimer()
stage.addEventFilter(InputEvent.ANY) {
controller.updateTimer()
}
}
override fun stop() {
controller.exit()
}
fun setApplicationIcon() {
if (System.getProperty("os.name").contains("mac", true)) {
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "KeepassFX")
System.setProperty("apple.awt.application.name", "KeepassFX")
}
}
}