50 lines
1.4 KiB
Java
50 lines
1.4 KiB
Java
|
|
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);
|
||
|
|
}
|
||
|
|
}
|