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

Доступ к презентации, отображаемой в окне модели во время выполнения модели, можно получить с помощью функции 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().saveSnapshot(

                "file.als",

                () -> traceln("Saved!"),

                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 - отображаемый текст