2

プロジェクトにピックリストを実装しました。

選択リストのドキュメント

このビューのロジックを自分の行動に合わせて変更しようとしました。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 で論理的に機能しますが、ちょっとした回避策であり、汚れています。ここでの問題は、ビュー内のアイテムがまだ削除されていることです。

私のアプローチは可能ですか?

4

1 に答える 1

0

私は同じ問題を抱えていました。私がしたのは TransferEvent だけでした。この例のように、最初のソース広告でターゲットをイベント ターゲットで pickList を再作成しました。

List<String> initialSource;

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

public void onTransferSeccion(TransferEvent event){
    originalPickList= new DualListModel(initialSource, originalPickList.getTarget());
}
于 2016-09-08T18:38:47.100 に答える