initialLayout

Компонент initialLayout - это контейнер, который отображается, когда в главном экране не открыто никаких экранов. Этот компонент может быть полезен, когда необходимо показать контент по умолчанию, такой как логотип или dashboard, до открытия других экранов.

  • XML-элемент: initialLayout

Основы

initialLayout является вложенным элементом компонента appLayout.

Чтобы добавить вложенный элемент initialLayout в Jmix Studio, выберите элемент appLayout в XML-дескрипторе главного экрана или на панели структуры Jmix UI и нажмите кнопку Add→InitialLayout на панели инспектора Jmix UI.

Пример определения initialLayout в main-view.xml:

<mainView xmlns="http://jmix.io/schema/flowui/main-view"
          title="msg://MainView.title">
    <appLayout>
        <navigationBar .../>
        <drawerLayout .../>
        <initialLayout>
            <image id="urlImage"
                   resource="https://www.jmix.io/uploads/framework_image_9efadbc372.svg"
                   width="100%"
                   height="100%"/>
        </initialLayout>
    </appLayout>
</mainView>

При добавлении в XML корневой элемент <initialLayout> фактически является VerticalLayout.

Альтернативно, Java API StandardMainView может быть использовано для установки/получения начального контейнера:

  • getInitialLayout() - возвращает корневой компонент начального контейнера.

  • setInitialLayout() - устанавливает компонент, который будет начальным контейнером.

Компоненты внутри initialLayout могут быть инжектированы в MainView, например:

@ViewComponent
private JmixImage<Object> urlImage;
@Autowired
private Notifications notifications;

@Subscribe
public void onInit(final InitEvent event) {
    urlImage.setSrc("https://www.jmix.io/uploads/framework_image_9efadbc372.svg");
    urlImage.setWidth("100%");
    urlImage.setHeight("100%");
}

@Subscribe(id = "urlImage", subject = "singleClickListener")
public void onUrlImageClick(final ClickEvent<JmixImage<?>> event) {
    Notification.show("Clicked!");
}

Обработчики

Чтобы сгенерировать заглушку обработчика в Jmix Studio, используйте вкладку Handlers панели инспектора Jmix UI, или команду Generate Handler, доступную на верхней панели контроллера экрана и через меню CodeGenerate (Alt+Insert / Cmd+N).