Skip to content

Instantly share code, notes, and snippets.

@ttldtor
Last active August 29, 2015 14:18
Show Gist options
  • Save ttldtor/31c88769818601691368 to your computer and use it in GitHub Desktop.
Save ttldtor/31c88769818601691368 to your computer and use it in GitHub Desktop.
package org.mucode.scim
import scalafx.Includes._
import scalafx.application.JFXApp
import scalafx.event.ActionEvent
import scalafx.scene.Scene
import scalafx.scene.layout.BorderPane
object Application extends JFXApp {
stage = new JFXApp.PrimaryStage {
title.value = "scim"
scene = new Scene {
content = new BorderPane {
top = new MainMenu {
onBeforeExit = (ae: ActionEvent) => {
println("BEFORE EXIT")
}
}
}
}
}
}
package org.mucode.scim
import javafx.beans.property.ObjectPropertyBase
import javafx.event.EventHandler
import scalafx.Includes._
import scalafx.application.Platform
import scalafx.event.ActionEvent
import scalafx.scene.control.{MenuItem, Menu, MenuBar}
class MainMenu extends MenuBar {
useSystemMenuBar = true
lazy val beforeExit = new ObjectPropertyBase[EventHandler[javafx.event.ActionEvent]] {
def getName = "onBeforeExit"
def getBean = MainMenu.this
}
def onBeforeExit = beforeExit
def onBeforeExit_=(v: EventHandler[javafx.event.ActionEvent]) {
onBeforeExit() = v
}
menus = List(
new Menu("File") {
items = List(
new MenuItem("Exit") {
onAction = (ae: ActionEvent) => {
if(onBeforeExit() != null) onBeforeExit().handle(ae)
println("EXIT")
Platform.exit()
}
}
)
},
new Menu("View") {},
new Menu("Help") {}
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment