package de.geofroggerfx.fx;
import de.geofroggerfx.fx.utils.StartupScene;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.stage.Stage;
import org.scenicview.ScenicView;
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import java.io.IOException;
import java.io.InputStream;
import java.util.ResourceBundle;
/**
* This class is based on the tutorial
* http://blog.matthieu.brouillard.fr/2012/08/fxml-javafx-powered-by-cdi-jboss-weld_6.html
*
* Thanks to Matthieu BROUILLARD
*/
public class FxMain {
@Inject
private FXMLLoader fxmlLoader;
public void start( @Observes @StartupScene Stage stage) throws IOException
{
try (InputStream fxml = getClass().getResourceAsStream( "geofrogger/geofrogger.fxml" )) {
fxmlLoader.setResources(ResourceBundle.getBundle("de.geofroggerfx.fx.geofrogger"));
final Parent root = fxmlLoader.load(fxml);
final Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
scene.setOnKeyPressed(keyEvent -> {
if (isScenicViewShortcutPressed(keyEvent)) {
ScenicView.show(scene);
}
});
}
}
private boolean isScenicViewShortcutPressed(final KeyEvent keyEvent) {
return keyEvent.isAltDown() && keyEvent.isControlDown() && keyEvent.getCode().equals(KeyCode.V);
}
}