Added CDI to the application
This commit is contained in:
49
src/de/geofroggerfx/fx/FxMain.java
Normal file
49
src/de/geofroggerfx/fx/FxMain.java
Normal file
@@ -0,0 +1,49 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user