将源列表保留在Primefaces Picklist中

时间:2016-09-08 09:56:55

标签: primefaces picklist

我在我的项目中实施了一个选项列表。

Docu for picklist

我尝试更改此视图的逻辑以适合我的操作。我想保留SourceList,只有在给定的itemScope不在targetList中时才更改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一起工作,因为它返回正确填充的List,但它有点像变通方法并且很脏。这里的问题是它仍然删除了视图中的Item。

我的方法是否可行?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我所做的只是在TransferEvent上,我重新创建了pickList,初始Source广告是目标与事件目标,如本例所示

List<String> initialSource;

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

public void onTransferSeccion(TransferEvent event){
    originalPickList= new DualListModel(initialSource, originalPickList.getTarget());
}