2016-09-08 63 views
1

我在我的項目中實現了選擇列表。在Primefaces選項列表中保留源列表

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因爲它返回正確填寫清單,但它有點一種變通方法和骯髒。這裏的問題是它仍然刪除視圖中的項目。

我的方法甚至有可能嗎?

回答

0

我有同樣的問題,我所做的只是在TransferEvent,我重新領料與最初的源廣告與活動對象的目標就像這個例子

List<String> initialSource; 

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

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

試過這種solution.Same問題。對象中的邏輯是正確的,但Ui-Component(Picklist)仍然顯示錯誤的內容。 – Offset

+0

您是否在更新xhtml中的選項列表? 由於您正在更改領料單的價值,因此您必須處理並更新領料單才能運作 –