Class GraphDigitizerApp

java.lang.Object
javafx.application.Application
com.digitizer.ui.GraphDigitizerApp

public class GraphDigitizerApp extends javafx.application.Application
Main application class for Graph Digitizer.

This is the JavaFX application entry point. It prepares the primary application state (calibration and datasets), constructs the primary MainWindow, and wires accessibility and theming features. Use main(String[]) to start the application from the command line.

Logging: The application uses SLF4J with a Log4j2 backend. The configuration file log4j2.xml defines console, rolling file, and JSON appenders. To enable fully asynchronous logging (lower latency on the JavaFX thread) start the JVM with:

   -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
 
This activates the <AsyncRoot> logger in the configuration. The JSON log (graph-digitizer.json) is newline-delimited for easy ingestion.

Fields documented below are application-wide defaults used to create the initial datasets and to provide versioning information.

Packaging: See `docs/JPACKAGE.md` and `scripts/README.md` for guidance on creating runtime images and native installers via `jlink` and `jpackage` (including multi-architecture MSI generation notes).

  • Nested Class Summary

    Nested classes/interfaces inherited from class javafx.application.Application

    javafx.application.Application.Parameters
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Current application version.

    Fields inherited from class javafx.application.Application

    STYLESHEET_CASPIAN, STYLESHEET_MODENA
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    main(String[] args)
    The main entry point for the application.
    void
    start(javafx.stage.Stage primaryStage)
    Called when the application starts.
    void
    Called when the application is shutting down.

    Methods inherited from class javafx.application.Application

    getHostServices, getParameters, getUserAgentStylesheet, init, launch, launch, notifyPreloader, setUserAgentStylesheet

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • APP_VERSION

      public static final String APP_VERSION
      Current application version. Must match the Maven project version.
      See Also:
  • Constructor Details

    • GraphDigitizerApp

      public GraphDigitizerApp()
  • Method Details

    • main

      public static void main(String[] args)
      The main entry point for the application.

      Example: java -jar graph_digitizer_1.0-beta.jar

      This method initializes logging and delegates to the JavaFX Application.launch(java.lang.Class<? extends javafx.application.Application>, java.lang.String...) lifecycle.

      Parameters:
      args - command line arguments passed to the JVM (ignored)
    • start

      public void start(javafx.stage.Stage primaryStage)
      Called when the application starts.
      Specified by:
      start in class javafx.application.Application
      Parameters:
      primaryStage - the primary stage for the application
    • stop

      public void stop() throws Exception
      Called when the application is shutting down.
      Overrides:
      stop in class javafx.application.Application
      Throws:
      Exception