Package com.anylogic.engine.gui
- Nested Class Summary
- Method Summary
- Method Details
- setPresentable
- getPresentable
- getExperiment
- navigateHome
- navigateTo
- zoomIn
- zoomOut
- setCenter
- setZoomAndPanningEnabled
- isZoomAndPanningEnabled
- setDeveloperPanelEnabled
- setDeveloperPanelVisibleOnStart
- setRunControlEnabled
- isRunControlEnabled
- setSpeedControlEnabled
- isSpeedControlEnabled
- addInspect
- removeInspect
- showMessageDialog
- showErrorDialog
- showErrorInModelDialog
- openWebSite
- copyToClipboard
- saveSnapshot
- saveSnapshot
- loadSnapshot
- loadSnapshot
- close
- launch
- launch
- getConfiguration
- getUpdate
- getNextFrameNumber
- executeUserAction
- executeCommand
- getExperimentState
- setValue
- getValue
- callFunction
- getProgress
- setSpeed
- setMaxFPS
- setSendConsoleItems
- postExperimentSettings
- onAgentDestroyed_xjal
- getFrameProducer
- isOmniverseAnimtaion
- All Known Implementing Classes:
AutotestExperimentHost
,ExperimentHost
public interface IExperimentHost
Object of this interface is responsible for various actions regarding AnyLogic Model
animation and graphical user interface.
- Author:
- AnyLogic North America, LLC https://anylogic.com
Modifier and Type | Interface | Description |
---|---|---|
static interface | IExperimentHost.IValue |
Used for converting String/JSON input data to arbitrary java classes
requested by Engine.
|
Modifier and Type | Method | Description |
---|---|---|
void | addInspect |
Creates an inspect window at a particular location for an element of a
Presentable object.
|
Object | callFunction | |
void | close() |
This method returns immediately and performs
the following actions in a separate thread:
stops experiment if it is not stopped,
destroys the model and
closes experiment window (only if model is started in the application mode)
|
void | copyToClipboard |
Copies the given text to the system clipboard
Due to the security policy of the browser, the actual copying may be preceded by a prompt. |
void | executeCommand | |
void | executeUserAction | |
LaunchConfiguration | getConfiguration() | |
Experiment<?> | getExperiment() |
Returns the experiment associated with this host.
|
Experiment.State | getExperimentState() | |
SVGFrameProducer | getFrameProducer() | |
long | getNextFrameNumber() | |
Presentable | getPresentable() |
Returns the current top-level object (Agent or Experiment), whose
presentation is displayed.
|
double | getProgress() | |
AnimationPacket | getUpdate | |
Object | getValue | |
boolean | isOmniverseAnimtaion() | |
boolean | isRunControlEnabled() |
Tests if Run, Pause, and Stop buttons on the model toolbar are enabled.
|
boolean | isSpeedControlEnabled() |
Tests if the model execution speed control buttons on the model toolbar are enabled.
|
boolean | isZoomAndPanningEnabled() |
Tests if zoom & panning from the GUI is enabled.
|
default void | launch() | |
void | launch |
Creates and optionally runs experiment, starts frame collection
|
default void | loadSnapshot |
Stops experiment and loads snapshot (in its 'not
running' state), doesn't resume simulation of loaded snapshot.
On any error throws nothing, silently rollbacks to the current experiment and resumes it if it was running. |
void | loadSnapshot |
Stops experiment and loads snapshot (in its 'not
running' state), doesn't resume simulation of loaded snapshot.
On any error throws nothing, silently rollbacks to the current experiment and resumes it if it was running. When snapshot is loaded, presentation forgets everything about the model which was running before (including the engine, experiment and agents), therefore, it is recommended not to keep references to model objects after this method call Usage example: |
void | navigateHome() |
Navigates presentation home, i.e.
|
void | navigateTo |
Shows the given view area in the model animation panel
|
void | onAgentDestroyed_xjal |
A callback called by the engine when an agent is being
destroyed.
|
void | openWebSite |
Opens web page with the given URL in the browser
|
void | postExperimentSettings() | |
void | removeInspect |
Removes the inspect window for the given element
|
default void | saveSnapshot |
Pauses experiment if it is currently running, saves snapshot
and then resumes experiment if it was running
On any error throws nothing. |
void | saveSnapshot |
Pauses experiment if it is currently running, saves snapshot
and then resumes experiment if it was running
On any error throws nothing. Usage example: |
void | setCenter |
Centers the animation view to the given x and y (in the model coordinates)
|
void | setDeveloperPanelEnabled |
Enables or disables the developer panel.
|
void | setDeveloperPanelVisibleOnStart |
Shows (if enabled) the developer panel when the
model window is shown.
|
void | setMaxFPS | |
void | setPresentable |
Sets a new top-level object (Agent or Experiment) to be displayed
and navigates to its home point.
|
void | setRunControlEnabled |
Enables or disables Run, Pause, and Stop buttons on the model toolbar
(but not in the developer panel), and sets the corresponding tooltips.
|
void | setSendConsoleItems | |
void | setSpeed | |
void | setSpeedControlEnabled |
Enables or disables the model execution speed control buttons on the model toolbar
(but not in the developer panel), and sets the corresponding tooltips.
|
void | setValue | |
void | setZoomAndPanningEnabled |
Enables or disables zoom & panning initiated from the GUI (button.
|
void | showErrorDialog |
Shows a standard error dialog box with the given text.
|
void | showErrorInModelDialog |
Shows a standard 'error in model logic' dialog box with the given text.
|
void | showMessageDialog |
Shows a standard message dialog box with the given text.
|
void | zoomIn |
Zooms in the animation view by the given amount
|
void | zoomOut |
Zooms out the animation view by the given amount
|
void setPresentable(Presentable presentable)
Sets a new top-level object (Agent or Experiment) to be displayed
and navigates to its home point.
- Parameters:
presentable
- the new top-level object to be displayed
Presentable getPresentable()
Returns the current top-level object (Agent or Experiment), whose
presentation is displayed.
- Returns:
- the current top-level object being displayed, or null
Experiment<?> getExperiment()
Returns the experiment associated with this host.
- Returns:
- the experiment associated with this host
void zoomIn(double coefficient)
Zooms in the animation view by the given amount
- Parameters:
coefficient
- how much to zoom in, positive number. E.g. 2.0 will result in 2x scaling compared to the current view
void zoomOut(double coefficient)
Zooms out the animation view by the given amount
- Parameters:
coefficient
- how much to zoom out, positive number. E.g. 2.0 will result in 0.5x scaling compared to the current view
void setCenter(double x, double y)
Centers the animation view to the given x and y (in the model coordinates)
- Parameters:
x
- the x to be centeredy
- the y to be centered
void setZoomAndPanningEnabled(boolean zoomAndPanningEnabled)
Enables or disables zoom & panning initiated from the GUI (button. mouse, or keyboard).
- Parameters:
zoomAndPanningEnabled
- iftrue
, zoom & panning should be enabled, iffalse
- disabled
boolean isZoomAndPanningEnabled()
Tests if zoom & panning from the GUI is enabled.
- Returns:
true
if zoom & panning are enabled,false
if not.
void setDeveloperPanelEnabled(boolean developerPanelEnabled)
Enables or disables the developer panel.
- Parameters:
developerPanelEnabled
- iffalse
, there will be no button to show the developer panel
void setDeveloperPanelVisibleOnStart(boolean developerPanelVisibleOnStart)
Shows (if enabled) the developer panel when the
model window is shown.
- Parameters:
developerPanelVisibleOnStart
- iftrue
, the panel will be visible from the beginning, and may be later hidden by pressing the special button.
void setRunControlEnabled(boolean runControlEnabled)
Enables or disables Run, Pause, and Stop buttons on the model toolbar
(but not in the developer panel), and sets the corresponding tooltips.
- Parameters:
runControlEnabled
- iffalse
, those buttons will be disabled
boolean isRunControlEnabled()
Tests if Run, Pause, and Stop buttons on the model toolbar are enabled.
- Returns:
true
if they are enabled,false
if not.
void setSpeedControlEnabled(boolean speedControlEnabled)
Enables or disables the model execution speed control buttons on the model toolbar
(but not in the developer panel), and sets the corresponding tooltips.
- Parameters:
speedControlEnabled
- iffalse
, those buttons will be disabled
boolean isSpeedControlEnabled()
Tests if the model execution speed control buttons on the model toolbar are enabled.
- Returns:
true
if they are enabled,false
if not.
void addInspect(double x, double y, Presentable p, String name)
Creates an inspect window at a particular location for an element of a
Presentable object. If there is another inspect with the same Presentable
and same element name, it is brought to front and a new inspect is not created.
The initial size of the window is adjusted to fit the initial contents.
- Parameters:
x
- the x coordinate in the presentable object systemy
- the y coordinate in the presentable object systemp
- the Presentable object whose element is being inspectedname
- the name of the element being inspected
void removeInspect(Presentable p, String name)
Removes the inspect window for the given element
- Parameters:
p
- the Presentable object whose element is being inspectedname
- the name of the element being inspected
void showMessageDialog(String text)
Shows a standard message dialog box with the given text. This method
usually returns immediately - it doesn't wait for the dialog to
be closed (except the cases when called from UI thread)
- Parameters:
text
- the text to display
@AnyLogicInternalAPI void showErrorDialog(String text, String title)
Shows a standard error dialog box with the given text. This method
usually returns immediately - it doesn't wait for the dialog to
be closed (except the cases when called from UI thread)
- Parameters:
text
- the text to displaytitle
- title of the dialog window
@AnyLogicInternalAPI void showErrorInModelDialog(String text, String title)
Shows a standard 'error in model logic' dialog box with the given text. This method
usually returns immediately - it doesn't wait for the dialog to
be closed (except the cases when called from UI thread)
- Parameters:
text
- the text to displaytitle
- title of the dialog window
void openWebSite(String url)
Opens web page with the given URL in the browser
- Parameters:
url
- the url to open
void copyToClipboard(String text)
Copies the given text to the system clipboard
Due to the security policy of the browser, the actual copying may be preceded by a prompt.
Due to the security policy of the browser, the actual copying may be preceded by a prompt.
- Parameters:
text
- the text to copy
default void saveSnapshot(String fileName)
Pauses experiment if it is currently running, saves snapshot
and then resumes experiment if it was running
On any error throws nothing. If you need "on success" notification and/or custom error processing, please
This method is only available in the AnyLogic Professional
On any error throws nothing. If you need "on success" notification and/or custom error processing, please
saveSnapshot(String, Runnable, Consumer)
function with callbacksThis method is only available in the AnyLogic Professional
- Parameters:
fileName
- the name of snapshot file
void saveSnapshot(String fileName, Runnable successfulCallback, Consumer<Throwable> errorCallback)
Pauses experiment if it is currently running, saves snapshot
and then resumes experiment if it was running
On any error throws nothing.
Usage example:
This method is only available in the AnyLogic Professional
On any error throws nothing.
Usage example:
getExperimentHost().saveSnapshot( "file.als", () -> traceln("Saved!"), e -> { traceln("Error!"); e.printStackTrace(); } );
This method is only available in the AnyLogic Professional
- Parameters:
fileName
- the name of snapshot filesuccessfulCallback
- called when snapshot is successfully savederrorCallback
- called in case of any error
default void loadSnapshot(String fileName)
Stops experiment and loads snapshot (in its 'not
running' state), doesn't resume simulation of loaded snapshot.
On any error throws nothing, silently rollbacks to the current experiment and resumes it if it was running. If you need "on success" notification and/or custom error processing, please
When snapshot is loaded, presentation forgets everything about the model which was running before (including the engine, experiment and agents), therefore, it is recommended not to keep references to model objects after this method call
This method is only available in the AnyLogic Professional
On any error throws nothing, silently rollbacks to the current experiment and resumes it if it was running. If you need "on success" notification and/or custom error processing, please
loadSnapshot(String, Runnable, Consumer)
function with callbacksWhen snapshot is loaded, presentation forgets everything about the model which was running before (including the engine, experiment and agents), therefore, it is recommended not to keep references to model objects after this method call
This method is only available in the AnyLogic Professional
- Parameters:
fileName
- the name of snapshot file
void loadSnapshot(String fileName, Runnable successfulCallback, Consumer<Throwable> errorCallback)
Stops experiment and loads snapshot (in its 'not
running' state), doesn't resume simulation of loaded snapshot.
On any error throws nothing, silently rollbacks to the current experiment and resumes it if it was running.
When snapshot is loaded, presentation forgets everything about the model which was running before (including the engine, experiment and agents), therefore, it is recommended not to keep references to model objects after this method call
Usage example:
This method is only available in the AnyLogic Professional
On any error throws nothing, silently rollbacks to the current experiment and resumes it if it was running.
When snapshot is loaded, presentation forgets everything about the model which was running before (including the engine, experiment and agents), therefore, it is recommended not to keep references to model objects after this method call
Usage example:
getExperimentHost().loadSnapshot( "file.als", () -> { traceln("Loaded!"); getExperimentHost().setPresentable( getExperiment().getEngine().getRoot() ); getExperiment().run(); }, e -> { traceln("Error!"); e.printStackTrace(); } );
This method is only available in the AnyLogic Professional
- Parameters:
fileName
- the name of snapshot file
void close()
This method returns immediately and performs
the following actions in a separate thread:
- stops experiment if it is not stopped,
- destroys the model and
- closes experiment window (only if model is started in the application mode)
@AnyLogicInternalAPI void launch(boolean startServer, boolean startExperiment)
Creates and optionally runs experiment, starts frame collection
- Parameters:
startServer
- TODO
default void launch()
@AnyLogicInternalAPI LaunchConfiguration getConfiguration()
@AnyLogicInternalAPI AnimationPacket getUpdate(boolean fullFrame)
@AnyLogicInternalAPI long getNextFrameNumber()
@AnyLogicInternalAPI void executeUserAction(long id, String value)
@AnyLogicInternalAPI void executeCommand(String cmd, String parameters)
@AnyLogicInternalAPI Experiment.State getExperimentState()
@AnyLogicInternalAPI void setValue(String pathtofield, IExperimentHost.IValue value)
@AnyLogicInternalAPI Object getValue(String pathtofield)
@AnyLogicInternalAPI Object callFunction(String pathtofunction, IExperimentHost.IValue... args)
@AnyLogicInternalAPI double getProgress()
@AnyLogicInternalAPI void setSpeed(double speed)
@AnyLogicInternalAPI void setMaxFPS(double maxFPS)
@AnyLogicInternalAPI void setSendConsoleItems(boolean yes)
@AnyLogicInternalAPI void postExperimentSettings()
@AnyLogicInternalAPI void onAgentDestroyed_xjal(Agent ao)
A callback called by the engine when an agent is being
destroyed. If that agent is currently displayed by the
presentation, display experiment.
- Parameters:
ao
- the agent being destroyed
@AnyLogicInternalAPI SVGFrameProducer getFrameProducer()
@AnyLogicInternalAPI boolean isOmniverseAnimtaion()