PopupView

Компонент PopupView позволяет пользователю открывать всплывающее окно, нажав на ссылку. Он может содержать один любой компонент или контейнер. Он может быть закрыт отведением курсора или по клику вне окна.

popup view

XML-имя компонента: popupView

Основы

В свернутом состоянии значение атрибута minimizedValue отображается на экране в виде интерактивной ссылки, открывающей всплывающее окно.

Например:

<popupView caption="PopupView example, just "
           minimizedValue="click me!">
    <vbox width="100px" height="50px" >
        <label value="Thank you!" align="MIDDLE_CENTER"/>
    </vbox>
</popupView>

По умолчанию hideOnMouseOut="true", поэтому всплывающее окно закрывается, как только указатель мыши перемещается за его пределы. Чтобы окно закрывалось кликом по внешней области, установите значение данного атрибута в false:

<popupView minimizedValue="click me!"
           hideOnMouseOut="false">
    <vbox width="100px" height="50px" >
        <textField caption="Text Field"/>
        <button caption="Button"/>
    </vbox>
</popupView>

Существуют следующие методы для установки положения всплывающего окна:

  1. setPopupPosition(PopupPosition position) - устанавливает положение всплывающего окна, используя следующие стандартные значения:

    • DEFAULT - располагает popup в середине минимизированного значения.

    • TOP_LEFT

    • TOP_CENTER

    • TOP_RIGHT

    • MIDDLE_LEFT

    • MIDDLE_CENTER

    • MIDDLE_RIGHT

    • BOTTOM_LEFT

    • BOTTOM_CENTER

    • BOTTOM_RIGHT

    @Autowired
    private PopupView popupView;
    
    @Subscribe
    public void onInit(InitEvent event) {
        popupView.setPopupPosition(PopupView.PopupPosition.TOP_CENTER);
    }
  2. setPopupPosition(int top, int left) - устанавливает значения top и left.

  3. setPopupPositionTop(int top) - устанавливает значение top.

  4. setPopupPositionLeft(int left) - устанавливает значение left.

Слушатели и события

Чтобы сгенерировать заглушку слушателя в Jmix Studio, выберите компонент в XML-дескрипторе экрана или на панели иерархии Jmix UI и используйте вкладку Handlers на панели инспектора Jmix UI.

В качестве альтернативы вы можете воспользоваться кнопкой Generate Handler на верхней панели контроллера экрана.

PopupVisibilityEvent отправляется, когда пользователь открывает или закрывает всплывающее окно.

@Autowired
private Notifications notifications;

@Subscribe("popupView")
public void onPopupViewPopupVisibility(PopupView.PopupVisibilityEvent event) {
    notifications.create()
            .withCaption(event.isPopupVisible() ?
                    "The popup is visible" : "The popup is hidden")
            .withType(Notifications.NotificationType.HUMANIZED)
            .show();
}

Чтобы создать слушателя события программно, используйте метод компонента addPopupVisibilityListener().

ContextHelpIconClickEvent

Чтобы создать слушателя события программно, используйте метод компонента setContextHelpIconClickHandler().

Все XML-атрибуты

Просматривать и редактировать атрибуты, применимые к компоненту, можно с помощью панели инспектора Jmix UI в конструкторе экранов Studio.