Class AbstractDemo

java.lang.Object
javafx.application.Application
org.episteme.core.ui.AbstractDemo
All Implemented Interfaces:
App, Viewer
Direct Known Subclasses:
AbstractSimulationDemo, ArtsColorTheoryDemo, ChemicalReactionDemo, CircuitSimulatorDemo, CSGDemo, DistributionsDemo, EarthquakeDemo, EconomicsGDPDemo, EconomicsMarketDemo, FormulaNotationDemo, FunctionExplorer2D3DDemo, GeneticsDemo, GeographyGISDemo, GeometryBoardDemo, GeoscienceVoxelDemo, HistoryTimelineDemo, HumanBodyDemo, InterplanetaryTrajectoryDemo, KnowledgeNavigatorDemo, KurzweilDemo, LinguisticsWordFreqDemo, LorenzDemo, MagneticFieldDemo, MandelbrotDemo, MatrixDemo, MedicineVoxelDemo, MetamathDemo, MolecularViewerDemo, PeriodicTableDemo, PeripheralsDemo, PhylogeneticTreeDemo, PoliticsVotingDemo, QuantumCircuitDemo, RelativisticFlightDemo, ResistorColorCodeDemo, SequenceAlignmentDemo, SociologyNetworkDemo, SolenoidMagneticFieldDemo, SpeciesBrowserDemo, SportsResultsDemo, StellarSkyDemo, ThermodynamicsDemo, UnitConverterDemo, VoxelVolumeDemo

public abstract class AbstractDemo extends javafx.application.Application implements App
Abstract base class for all Episteme Demonstrations. Provides a consistent layout with a viewer area and a control panel. Subclasses MUST override: getCategory(), getName(), getDescription(), getLongDescription() with proper I18N support.
Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Nested Class Summary

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

    javafx.application.Application.Parameters
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected javafx.scene.Node
     

    Fields inherited from class javafx.application.Application

    STYLESHEET_CASPIAN, STYLESHEET_MODENA
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected javafx.scene.layout.VBox
     
    protected abstract javafx.scene.Node
     
    abstract String
    Returns the category for grouping (e.g., "Chemistry", "Physics").
    abstract String
    Returns a short description (1-2 lines).
    abstract String
    Returns a long description (multi-line, detailed explanation).
    abstract String
    Returns the display name of the viewer/demo.
    Returns a list of parameters exposed by this viewer.
    boolean
    Returns true if this is a Demo, false if it is a full App.
    void
    show(javafx.stage.Stage stage)
    Launches the component in the given stage.
    void
    start(javafx.stage.Stage stage)
     

    Methods inherited from class javafx.application.Application

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

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface Viewer

    getParameter, setParameter
  • Field Details

    • viewer

      protected javafx.scene.Node viewer
  • Constructor Details

    • AbstractDemo

      public AbstractDemo()
  • Method Details

    • isDemo

      public boolean isDemo()
      Description copied from interface: App
      Returns true if this is a Demo, false if it is a full App.
      Specified by:
      isDemo in interface App
    • start

      public void start(javafx.stage.Stage stage)
      Specified by:
      start in class javafx.application.Application
    • createControlPanel

      protected javafx.scene.layout.VBox createControlPanel()
    • getCategory

      public abstract String getCategory()
      Description copied from interface: Viewer
      Returns the category for grouping (e.g., "Chemistry", "Physics"). Must be internationalized via I18N.
      Specified by:
      getCategory in interface Viewer
      Returns:
      the category name
    • getName

      public abstract String getName()
      Description copied from interface: Viewer
      Returns the display name of the viewer/demo. Must be internationalized via I18N.
      Specified by:
      getName in interface Viewer
      Returns:
      the display name
    • getDescription

      public abstract String getDescription()
      Description copied from interface: Viewer
      Returns a short description (1-2 lines). Must be internationalized via I18N.
      Specified by:
      getDescription in interface Viewer
      Returns:
      the short description
    • getLongDescription

      public abstract String getLongDescription()
      Description copied from interface: Viewer
      Returns a long description (multi-line, detailed explanation). Must be internationalized via I18N.
      Specified by:
      getLongDescription in interface Viewer
      Returns:
      the long description
    • createViewerNode

      protected abstract javafx.scene.Node createViewerNode()
    • getViewerParameters

      public List<Parameter<?>> getViewerParameters()
      Description copied from interface: Viewer
      Returns a list of parameters exposed by this viewer. Parameters allow external control and configuration.
      Specified by:
      getViewerParameters in interface Viewer
      Returns:
      list of configurable parameters
    • show

      public void show(javafx.stage.Stage stage)
      Description copied from interface: Viewer
      Launches the component in the given stage.
      Specified by:
      show in interface Viewer
      Parameters:
      stage - the JavaFX stage to display the component