Я реализовал список выбора в своем проекте.
Я попытался изменить логику этого представления, чтобы оно соответствовало моим действиям. Я хочу оставить 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, потому что он возвращает правильно заполненный список, но это своего рода обходной путь и грязный. Проблема здесь в том, что он по-прежнему удаляет элемент в представлении.
Возможен ли мой подход?