Сохранить список источников в списке выбора Primefaces

Я реализовал список выбора в своем проекте.

Документ для выбора

Я попытался изменить логику этого представления, чтобы оно соответствовало моим действиям. Я хочу оставить SourceList как есть и изменить targetList только в том случае, если данный itemScope еще не находится в targetList.

Мой подход:

public void onTransfer(TransferEvent event) {

    // wenn wir eine Sprache aktivieren möchten, sollte die sprache nicht
    // aus der source entfernt werden
    if (event.isAdd()) {
        List<String> itemsInScope = (List<String>) event.getItems();
        itemsInScope.addAll(languages.getSource());
        languages.setSource(itemsInScope);

        for(String s : languages.getSource())
            System.out.println(s);
    }


    settingsObject.setActiveLanguages(languages.getTarget());
    settingsObject.setSupportedLanguages(languages.getSource());

    TranslationConfig conf1 = new TranslationConfigManager().getSettings();

    conf1.setActiveLanguages(languages.getTarget());
    conf1.setSupportedLanguages(languages.getSource());

    new TranslationConfigManager().updateSetting(conf1);
}

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

Возможен ли мой подход?


person Offset    schedule 08.09.2016    source источник


Ответы (1)


У меня была та же проблема, все, что я делал, было на TransferEvent, я воссоздал список выбора с исходным исходным объявлением, целью с целью события, как в этом примере.

List<String> initialSource;

...(Code to fill the initial list)...

public void onTransferSeccion(TransferEvent event){
    originalPickList= new DualListModel(initialSource, originalPickList.getTarget());
}
person Ivan Chavarria    schedule 08.09.2016
comment
попробовал это решение. Та же проблема. Логика в объектах правильная, но пользовательский интерфейс (список выбора) по-прежнему показывает неправильное содержимое. - person Offset; 09.09.2016
comment
Вы обновляете список выбора в xhtml? Поскольку вы меняете значение списка выбора, вы должны обработать и обновить список выбора, чтобы это работало. - person Ivan Chavarria; 09.09.2016