Hybris Backoffice расширить виджет - PullRequest
0 голосов
/ 18 февраля 2020

enter image description here

Это всплывающее окно синхронизации (com.hybris.backoffice.widgets.syncpopup.SyncPopupController), используемое для синхронизации каталогов. Я хочу изменить этот виджет OOTB, чтобы добавить множественный выбор вместо одного (сейчас вы можете выбрать только один каталог за раз).

Как этого добиться? Я не знаю, как расширить виджеты backoffice.

1 Ответ

2 голосов
/ 18 февраля 2020

Listbox, который вы пытаетесь изменить, имеет атрибут с именем multiple. По умолчанию при инициализации это ложно. В списках виджетов (поскольку есть 2 списка, один для stage-> online и один для online-> stage), этот атрибут не имеет значения true при создании виджета. Метод initialize() из SyncPopupController только заполняет эти списки элементами, но не более.

Теперь, когда вы знаете root проблемы, вы можете прочитать этот учебник, который объясняет, как вы можете расширить виджет mot-a-mot . Одним из решений может быть расширение исходного контроллера и создание вашей пользовательской конфигурации методом initialize().

Это может выглядеть следующим образом:

public class ExtendedSyncPopupController extends SyncPopupController
{
   public void initialize(Component component){
       super.initialize(component);
       super.getPullList().setMultiple(true);
       //etc.
   }
}

И после этого вы можете переопределить определение виджета ( Переопределение главы определения виджета из учебника, представленного выше) и передать свой пользовательский класс контроллера в <controller class="ExtendedSyncPopupController">.

...