package application;

import javafx.application.Application;
import javafx.beans.binding.Bindings;
import javafx.beans.binding.StringExpression;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.Label;
import javafx.scene.control.MenuItem;
import javafx.scene.layout.BorderPane;
import javafx.stage.Screen;
import javafx.stage.Stage;

public class Main extends Application {
	@Override
	public void start(Stage primaryStage) {
		try {
			primaryStage.setTitle("Native FX - "  + System.getProperty("java.version"));
			primaryStage.setScene(createScene());
			primaryStage.show();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static Scene createScene() {

		BorderPane root = new BorderPane();
		Label l = new Label();
		l.setWrapText(true);

		StringExpression e = Bindings.concat(
				"Font-Size: ", l.getFont().getSize(), "\n" ,
				"DPI: ", Screen.getPrimary().getDpi(), "\n"
		);
		l.textProperty().bind(e);
		root.setTop(l);

		Button b = new Button("Hello world");
		ContextMenu m = new ContextMenu();
		m.getItems().add(new MenuItem("Hello world"));
		b.setContextMenu(m);
		root.setCenter(b);

		Scene scene = new Scene(root, 400, 400);
		scene.getStylesheets().add(Main.class.getResource("application.css").toExternalForm());
		return scene;
	}

	public static void main(String[] args) {
		launch(args);
	}
}
