Tabbed Application Mode

Дополнение позволяет открывать экраны в отдельных вкладках внутри главного экрана. Благодаря этому пользователи могут одновременно работать с несколькими экранами в одной вкладке браузера и быстро переключаться между ними. Экраны можно открывать последовательно в одной вкладке. В этом случае они образуют стек с навигацией в виде хлебных крошек.

tabbed mode overview

Установка

Для этого дополнения требуется Enterprise подписка. Если у вас нет подписки, ознакомьтесь с разделом Пробная Enterprise+BPM подписка, чтобы получить пробную версию.

Для новых проектов используйте специальный шаблон проекта:

project template

Чтобы перевести существующий проект в режим вкладок, выполните следующие шаги.

  1. Убедитесь, что премиум-репозиторий определен в build.gradle:

    repositories {
        // ...
        maven {
            url = 'https://nexus.jmix.io/repository/premium'
            credentials {
                username = rootProject['premiumRepoUser']
                password = rootProject['premiumRepoPass']
            }
        }
  2. Добавьте следующую зависимость в ваш build.gradle:

    implementation 'io.jmix.tabbedmode:jmix-tabbedmode-flowui-starter'
  3. Измените базовый класс MainView.java с StandardMainView на StandardTabbedModeMainView.

    import io.jmix.tabbedmode.app.main.StandardTabbedModeMainView;
    
    @Route("")
    @ViewController(id = "MainView")
    @ViewDescriptor(path = "main-view.xml")
    public class MainView extends StandardTabbedModeMainView {
    }
  4. В файле main-view.xml измените значение атрибута xmlns элемента mainView, чтобы использовать XSD-схему дополнения:

    <mainView xmlns="http://jmix.io/schema/tabmod/main-view"
              title="msg://MainView.title">

    Затем замените initialLayout следующим определением workArea:

    <workArea id="workArea"
              classNames="jmix-work-area">
        <mainTabSheet id="mainTabSheet"
                      classNames="jmix-main-tabsheet"
                      tabsDraggable="true"
                      width="100%" height="100%">
            <actions>
                <action id="closeThisTabAction" type="tabmod_closeThisTab"/>
                <action id="closeOthersTabsAction" type="tabmod_closeOtherTabs"/>
                <action id="closeAllTabsAction" type="tabmod_closeAllTabs"/>
            </actions>
        </mainTabSheet>
        <initialLayout id="initialLayout"
                       classNames="jmix-initial-layout"
                       width="100%" height="100%">
        </initialLayout>
    </workArea>