Class EvoLudoGWT
- All Implemented Interfaces:
MersenneTwister.Chronometer, CLOProvider
- Author:
- Christoph Hauert
-
Nested Class Summary
Nested classes/interfaces inherited from class EvoLudo
EvoLudo.Directive -
Field Summary
FieldsModifier and TypeFieldDescriptionfinal CLOptionCommand line option to request that the EvoLudo model signals the completion of of the layouting procedure for taking snapshots, e.g.private final DurationCreate timer to measure execution times since instantiation.(package private) ElementThe reference to the fullscreen element.protected ContextMenuCheckBoxItemThe field to store the fullscreen context menu.(package private) EvoLudoWebThe reference to the GUI.(package private) EvoLudo.DirectiveThe field to store the command to execute after parsing the command line options.private ContextMenuCheckBoxItemThe context menu item for symmetrical diffusion (only applies to PDE models).(package private) TimerTimer for running models.private ContextMenuCheckBoxItemThe context menu item to reverse time.Fields inherited from class EvoLudo
activeModel, activeModule, changeListeners, clo, cloController, cloRun, cloSeed, COPYRIGHT, DELAY_INCR, DELAY_INIT, DELAY_MAX, DELAY_MIN, ID, isGWT, isRunning, isSuspended, lifecycleController, logger, modules, pendingAction, resetRequested, rng, runController, sampleListeners, snapLayoutTimeout, stateEncoder -
Constructor Summary
ConstructorsConstructorDescriptionEvoLudoGWT(EvoLudoWeb gui) Construct EvoLudo controller for GWT applications (web or ePub). -
Method Summary
Modifier and TypeMethodDescriptionvoidcollectCLO(CLOParser prsr) All providers of command line options must implement this method to collect their options.createNetwork2D(AbstractGeometry geometry) Generate 2D network.createNetwork3D(AbstractGeometry geometry) Generate 3D network.intCalculate elapsed time since instantiation in milliseconds.voidexecute(EvoLudo.Directive directive) Executedirectivein JRE or GWT environments.voidExport the current state of the engine using the appropriate means available in the current environment (GWT/JRE).voidCalled after the population has reached an absorbing state (or has converged to an equilibrium state).voidCalled whenever the current module has finished unloading.getGit()Gets current git version of code base.Gets the compilation date of the current git version.voidguiReady()Called when the GUI has finished loading and the dimensions of all elements are known.hirePDESupervisor(PDE charge) Hire supervisor for managing PDE calculations.voidNotification from GUI that layout process has finished.voidlogProgress(String msg) GWT uses the config channel of the logger to report progressvoidnext()Advances the EvoLudo model by a single step.intparseCLO(EvoLudo.Directive command) Parse command line options and set thecommandto execute after parsing completed.voidOpportunity to contribute entries to the context menu for models.protected String[]preprocessCLO(String[] cloarray) Pre-process array of command line arguments.booleanRestore state of EvoLudo model from saved plist, which encodes engine state.voidrun()Start the EvoLudo model and calculate the dynamics one step at a time.private voidSchedule the next sample.private voidSchedule the next step.voidsetDelay(int delay) Set delay between subsequent updates.voidsetFullscreen(boolean fullscreen) Enter or exit fullscreen mode.voidsetFullscreenElement(Element element) Set the fullscreen element.voidshowHelp()Show help on command line options.Methods inherited from class EvoLudo
addChangeListener, addCLOProvider, addLifecycleListener, addModule, addRunListener, addSampleListener, debug, decreaseDelay, encodeState, fatal, fireModelChanged, fireModelInit, fireModelLoaded, fireModelRelaxed, fireModelReset, fireModelRunning, fireModelSample, fireModelUnloaded, fireModuleLoaded, fireModuleRestored, fireSettingsChanged, getCLO, getCLOHelp, getCloModuleOption, getDelay, getJavaVersion, getLogger, getModel, getModule, getRNG, getSnapLayoutTimeout, getSplitCLO, getVersion, increaseDelay, isRunning, isSuspended, loadModel, loadModule, loadModules, logError, logMessage, logWarning, modelCheck, modelInit, modelInit, modelNext, modelNextDone, modelRelax, modelRelax, modelReset, modelReset, paramsDidChange, parseCLO, parseCLO, prev, processPendingAction, removeChangeListener, removeCLOProvider, removeLifecycleListener, removeRunListener, removeSampleListener, requestAction, requestAction, requestParseCLO, requiresReset, restoreState, setCLO, setSuspended, simulation, startStop, stop, unloadModel, unloadModel, unloadModule, writeFooter, writeHeaderMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface CLOProvider
adjustCLO
-
Field Details
-
elapsedTime
Create timer to measure execution times since instantiation. -
gui
EvoLudoWeb guiThe reference to the GUI. -
notifyGUI
EvoLudo.Directive notifyGUIThe field to store the command to execute after parsing the command line options. -
timer
Timer timerTimer for running models. -
timeReverseMenu
The context menu item to reverse time. -
symDiffMenu
The context menu item for symmetrical diffusion (only applies to PDE models). -
fullscreenMenu
The field to store the fullscreen context menu. -
fullscreenElement
Element fullscreenElementThe reference to the fullscreen element. -
cloSnap
Command line option to request that the EvoLudo model signals the completion of of the layouting procedure for taking snapshots, e.g. withcapture-website.- See Also:
-
-
Constructor Details
-
EvoLudoGWT
Construct EvoLudo controller for GWT applications (web or ePub).- Parameters:
gui- the reference to the GUI
-
-
Method Details
-
logProgress
GWT uses the config channel of the logger to report progress- Specified by:
logProgressin classEvoLudo- Parameters:
msg- progress message
-
execute
Description copied from class:EvoLudoExecutedirectivein JRE or GWT environments. -
parseCLO
Parse command line options and set thecommandto execute after parsing completed.- Parameters:
command- the command to execute after parsing- Returns:
- the number of issues that have occurred durin parsing
-
showHelp
-
guiReady
public void guiReady()Called when the GUI has finished loading and the dimensions of all elements are known. -
layoutComplete
public void layoutComplete()Description copied from class:EvoLudoNotification from GUI that layout process has finished. Opportunity for taking snapshots.- Overrides:
layoutCompletein classEvoLudo
-
run
-
next
-
scheduleSample
private void scheduleSample()Schedule the next sample. -
scheduleStep
private void scheduleStep()Schedule the next step. -
fireModuleUnloaded
public void fireModuleUnloaded()Description copied from class:EvoLudoCalled whenever the current module has finished unloading. Notifies all registeredLifecycleListeners.- Overrides:
fireModuleUnloadedin classEvoLudo
-
fireModelStopped
public void fireModelStopped()Description copied from class:EvoLudoCalled after the population has reached an absorbing state (or has converged to an equilibrium state). Notifies all registeredRunListeners.- Overrides:
fireModelStoppedin classEvoLudo
-
preprocessCLO
Pre-process array of command line arguments. Some arguments need priority treatment. Examples include the options--module,--verboseor--restore.--module- load module and remove option
--verbose- set verbosity level effective immediately. This ensures that issues when parsing the remaining command line options are already properly reported
The command line arguments stored in a typical
.plistfile -- in particular when generated by the--exportoption -- includes this very option. Since JavaScript (GWT) contracts do not permit access to the users file system without explicit user interaction the--exportdoes not make sense. However, it would still be useful to be able to restore the state of such a file in the browser through drag'n'drop. Here we simply check if--exportwas provided on the command line and discard it if found.- Overrides:
preprocessCLOin classEvoLudo- Parameters:
cloarray- array of command line arguments- Returns:
- pre-processed array of command line options
- See Also:
-
elapsedTimeMsec
public int elapsedTimeMsec()Calculate elapsed time since instantiation in milliseconds.GWT implementation for measuring execution time.
- Returns:
- time in milliseconds
- See Also:
-
hirePDESupervisor
Description copied from class:EvoLudoHire supervisor for managing PDE calculations. This is the factory method provide different implementations For GWT and JRE. More specifically, GWT uses asynchronous execution to prevent the GUI from stalling, while JRE implementations take advantage of multiple threads for significantly faster execution due to parallelization.- Specified by:
hirePDESupervisorin classEvoLudo- Parameters:
charge- the PDE model to supervise- Returns:
- supervisor for coordinating PDE calculations
- See Also:
-
createNetwork2D
Description copied from class:EvoLudoGenerate 2D network. This is the factory method to provide different implementations for GWT and JRE. More specifically, the layouting process in GWT uses scheduling (asynchronous execution) to prevent the GUI from stalling, while JRE implementations take advantage of multiple threads for significantly faster execution due to parallelization.- Specified by:
createNetwork2Din classEvoLudo- Parameters:
geometry- the geometry backing the 2D network- Returns:
- new instance of a 2D network
-
createNetwork3D
Description copied from class:EvoLudoGenerate 3D network. This is the factory method to provide different implementations for GWT and JRE. More specifically, the layouting process in GWT uses scheduling (asynchronous execution) to prevent the GUI from stalling, while JRE implementations take advantage of multiple threads for significantly faster execution due to parallelization.Note: The
java3dpackage is obsolete. At present no 3D implementation for java exists.- Specified by:
createNetwork3Din classEvoLudo- Parameters:
geometry- the geometry backing the 3D network- Returns:
- new instance of a 3D network
-
getGit
-
getGitDate
Description copied from class:EvoLudoGets the compilation date of the current git version.- Specified by:
getGitDatein classEvoLudo- Returns:
- the git compilation date as a string
-
setDelay
-
populateContextMenu
Opportunity to contribute entries to the context menu for models. this needs to be quarantined in order to not interfere with java simulations.- Parameters:
menu- the context menu where entries can be added
-
setFullscreenElement
Set the fullscreen element.- Parameters:
element- the element to set as fullscreen
-
setFullscreen
public void setFullscreen(boolean fullscreen) Enter or exit fullscreen mode.- Parameters:
fullscreen-trueto enter fullscreen
-
restoreFromFile
public boolean restoreFromFile()Restore state of EvoLudo model from saved plist, which encodes engine state.Called by
Restore...context menu inAbstractView.- Specified by:
restoreFromFilein classEvoLudo- Returns:
trueon successfully restoring state- See Also:
-
exportState
public void exportState()Export the current state of the engine using the appropriate means available in the current environment (GWT/JRE).Note: nudges web browser to download the current state and save it in a file named "evoludo.plist". Export (context menu) suppressed in ePubs.
- Specified by:
exportStatein classEvoLudo- See Also:
-
collectCLO
Description copied from class:EvoLudoAll providers of command line options must implement this method to collect their options.Each command line option is (uniquely) identified by it's name (see
CLOption.getName()), which corresponds to the long version of the option. If an attempt is made to add an option with a name that already exists, theparserissues a warning and ignores the option. Thus, in general, implementing subclasses should first register their options and callsuper.collectCLO(CLOParser)at the end such that subclasses are able to override command line options specified in a parental class.Override this method in subclasses to add further command line options. Subclasses must make sure that they include a call to super.
Note: In contrast to other providers of command line options, the EvoLudo class delegates collection to the controller which maintains the shared parser.
- Specified by:
collectCLOin interfaceCLOProvider- Overrides:
collectCLOin classEvoLudo- Parameters:
prsr- the reference to parser that manages command line options- See Also:
-