AnyLogic
Развернуть
Размер шрифта

Доступ к презентации

Доступ к презентации, отображаемой в окне модели во время выполнения модели, можно получить с помощью функции getExperimentHost(). Получив доступ к презентации, вы сможете программно изменять ее масштаб, перемещаться к центру презентации или к области просмотра, открывать окна инспекта объектов модели, сохранять и восстанавливать состояние модели и т.д.

Пример использования: вызвав функцию getExperimentHost().zoomIn(2); вы совершите двукратное увеличение масштаба презентации.

Эта статья содержит список всех функций презентации AnyLogic (реализующей интерфейс IExperimentHost).

Функции презентации

Перемещение, изменение масштаба и перетаскивание
Функция Описание
void setCenter(double x, double y) Выравнивает анимацию по центру (помещает центр анимации в точке с заданными координатами).

x — X-координата центра точки.
y — Y-координата центра точки.
void navigateHome() Перемещает презентацию в «исходное положение», т.е. перемещает точку начала координат презентации (0,0) в левый верхний угол окна и устанавливает заданный по умолчанию масштаб (100%).
void navigateTo(ViewArea viewArea) Отображает содержимое заданной области просмотра.

viewArea — область просмотра, которая будет отображена.
void zoomIn(double coefficient) Приближает анимацию.

coefficient — коэффициент приближения, положительное число. К примеру, значение 2 в два раза увеличит масштаб в сравнении с текущим.
void zoomOut(double coefficient) Отдаляет анимацию.

coefficient — коэффициент приближения, положительное число. К примеру, значение 2 в два раза уменьшит масштаб относительно текущего.
void setZoomAndPanningEnabled(boolean yes) Позволяет или запрещает изменять масштаб и перемещение по анимации элементами управления пользовательского интерфейса.

yes — если true, то изменять масштаб и перемещаться можно, если false — нельзя.
boolean isZoomAndPanningEnabled() Проверяет, доступна ли возможность изменения масштаба и перемещения с помощью элементов управления пользовательского интерфейса.
Возвращает true, если такая возможность доступна, в противном случае возвращает false.
Эксперимент
Функция Описание
Experiment getExperiment() Возвращает эксперимент.
Прерывание эксперимента
Функция Описание
void close() Функция мгновенно возвращает управление и выполняет следующие действия в параллельном потоке:
  • останавливает эксперимент, если он не остановлен;
  • уничтожает модель;
  • закрывает окно эксперимента (только если модель запущена в режиме отдельного приложения).
Контекст презентации
Функция Описание
Presentable getPresentable() Возвращает объект, который в данный момент отображается в окне анимации модели.
void setPresentable(Presentable p) Следует вызывать, когда необходимо отобразить другой объект, или когда текущий объект уничтожен. Задает объект, который необходимо отобразить.
Панель разработчика
Функция Описание
void setDeveloperPanelEnabled(boolean yes) Включает или выключает панель разработчика.

yes — если true, панель разработчика будет доступна, если false — недоступна.
void setDeveloperPanelVisibleOnStart(boolean yes) Отображает панель разработчика (если она включена), когда открывается окно модели.

yes — если true, панель разработчика отображается, если false — панель разработчика скрыта.
Панель управления
Функция Описание
void setRunControlEnabled(boolean runControlEnabled) Включает или выключает кнопки Запустить, Пауза и Прекратить выполнение эксперимента на панели управления, а также задает соответствующие подсказки.

runControlEnabled — если true, кнопки будут включены если false - отключены.
boolean isRunControlEnabled() Проверяет, включены ли кнопки Запустить, Пауза и Прекратить выполнение эксперимента на панели управления.
Если функция возвращает значение true, кнопки включены. Если false — отключены.
void setSpeedControlEnabled(boolean speedControlEnabled) Включает или выключает кнопки управления скоростью выполнения модели на панели управления, а также задает соответствующие подсказки.

speedControlEnabled — если true, кнопки включены, если false - отключены.
boolean isSpeedControlEnabled() Проверяет, включены ли кнопки управления скоростью выполнения модели на панели управления.
Если функция возвращает значение true, кнопки включены. Если false — отключены.
Сохранение и восстановление состояния модели

Функции, описанные ниже, доступны только в версии AnyLogic Professional. Узнайте больше о сохранении и восстановлении состояния модели AnyLogic здесь.

Функция Описание
void saveSnapshot(String fileName) Приостанавливает выполнение запущенного эксперимента, сохраняет состояние модели, после чего запускает эксперимент снова, если он до этого был запущен. При возникновении ошибки не выдает об этом никакой информации. Если вам нужна обработка потенциальных ошибок, используйте другую нотацию функции (см. ниже).

fileName — имя файла состояния.
void saveSnapshot(String fileName, java.lang.Runnable successfulCallback, java.util.function.Consumer<java.lang.throwable> errorCallback) Приостанавливает выполнение эксперимента (если он выполняется в текущий момент), сохраняет состояние модели в указанный файл состояния и продолжает выполнение эксперимента (если на момент вызова функции он выполнялся). При возникновении какой-либо ошибки не совершает никаких действий.

fileName — имя файла состояния модели
successfulCallback — вызывается, если состояние модели успешно сохранилось
errorCallback — вызывается в случае возникновения какой-либо ошибки
Пример использования. В случае успешного сохранения выводим в консоль текст "Saved!". В случае какой-либо ошибки выводим в консоль текст "Error!", а также список методов, которые были вызваны до момента, когда произошла ошибка:
getExperimentHost().loadSnapshot(
"file.als",
() -> {
  traceln("Loaded!");
  getExperimentHost().setPresentable( getExperiment().getEngine().getRoot() );
  getExperiment().run();
},
e -> {
  traceln("Error!");
  e.printStackTrace();
}
);
void loadSnapshot(String fileName) Останавливает эксперимент и загружает сохраненное состояние модели, при этом не возобновляет эксперимент. При возникновении ошибки не выдает об этом никакой информации. Если вам нужна обработка потенциальных ошибок, используйте другую нотацию функции (см. ниже).

fileName — имя файла состояния.
void loadSnapshot(String fileName, java.lang.Runnable successfulCallback, java.util.function.Consumer<java.lang.throwable> errorCallback) Останавливает выполнение эксперимента и загружает состояние из файла состояния (в его “незапущенном” состоянии), не продолжает выполнение загруженного из файла эксперимента. При возникновении какой бы то ни было ошибки отменяет все выполненные операции, производит откат к ранее выполнявшемуся эксперименту и продолжает его выполнение (если на момент вызова функции он выполнялся). Когда загружается состояние, презентация забывает все о ранее выполнявшейся модели (в том числе, удаляется вся информация об исполняющем модуле, эксперименте и агентах), поэтому рекомендуется не ссылаться на эти объекты после вызова этой функции.

fileName — имя файла состояния модели
successfulCallback — вызывается, если состояние модели успешно загрузилось
errorCallback — вызывается в случае возникновения какой-либо ошибки. Пример использования. В случае успешной загрузки выводим в консоль текст "Saved!", задаем презентацию агента верхнего уровня для отображения в окне модели и запускаем модель. В случае какой-либо ошибки выводим в консоль текст "Error!", а также список методов, которые были вызваны до момента, когда произошла ошибка.
 getExperimentHost().loadSnapshot(
"file.als",
() -> {
  traceln("Loaded!");
  getExperimentHost().setPresentable( getExperiment().getEngine().getRoot() );
  getExperiment().run();
},
e -> {
  traceln("Error!");
  e.printStackTrace();
}
);
Открытие веб-страниц
Функция Описание
void openWebSite(String url) Открывает в браузере веб-страницу с заданным адресом.

url — адрес, который нужно открыть.
Окна инспекта
Функция Описание
void addInspect(double x, double y, Presentable p, String name) Создает окно инспекта в заданном местоположении для элемента объекта Presentable. Если уже существует окно инспекта для элемента с тем же именем того же объекта Presentable, оно будет выведено на передний план. Новое окно при этом не будет создано. Начальный размер окна будет подогнан под размер изначально отображаемого содержимого.

x — Х-координата объекта модели
y — Y-координата объекта модели
p — объект Presentable, у элемента которого будет открыто окно инспекта
name — имя элемента, у которого будет открыто окно инспекта
void removeInspect(Presentable p, String name) Убирает окно инспекта данного элемента.

p — объект Presentable, у элемента которого открыто окно инспекта
name — имя элемента, у которого открыто окно инспекта
Окно сообщения
Функция Описание
void showMessageDialog (String text) Отображает стандартное диалоговое окно сообщения с заданным текстом.
Функция обычно выполняется мгновенно, не ожидая закрытия окна (кроме случаев, когда функция вызывается из потока пользовательского интерфейса).

text — отображаемый текст.
Как мы можем улучшить эту статью?