package eu.mihosoft.vrl.fxscad;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.control.TextArea;
import javafx.stage.Stage;
public class JFXScad extends Application {
private static TextArea log;
private static MainController controller;
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Parent main = loadFromFXML();
Scene scene = new Scene(main, 1024, 768,true);
scene.getStylesheets().add(JFXScad.class.getResource("java-keywords.css").
toExternalForm());
PerspectiveCamera camera = new PerspectiveCamera();
scene.setCamera(camera);
primaryStage.setTitle("JavaFXScad");
primaryStage.setScene(scene);
primaryStage.setMinWidth(1024);
primaryStage.setMinHeight(768);
primaryStage.show();
}
public static Parent loadFromFXML() {
if (controller!=null) {
throw new IllegalStateException("UI already loaded");
}
FXMLLoader fxmlLoader = new FXMLLoader(
JFXScad.class.getResource("Main.fxml"));
try {
fxmlLoader.load();
} catch (IOException ex) {
Logger.getLogger(JFXScad.class.getName()).
log(Level.SEVERE, null, ex);
}
Parent root = fxmlLoader.getRoot();
root.getStylesheets().add(JFXScad.class.getResource("java-keywords.css").
toExternalForm());
controller = fxmlLoader.getController();
log = controller.getLogView();
return root;
}
public static TextArea getLogView() {
if (log==null) {
throw new IllegalStateException("Load the UI first.");
}
return log;
}
}