Wicket调色板可用列表问题

Wicket调色板可用列表问题,wicket,palette,Wicket,Palette,我们有一个基于Wicket的实验室应用程序,并遵循此处显示的调色板示例: 最初,我们在可用列表中有description=“pH”、“pH1”和“pH2”项 如果我们将“pH1”和“pH2”移动到所选列表并保存它,“pH”将不再显示在可用列表中 如果我们将项目描述从“pH”更改为“pH”,它将再次显示 以下是部分代码: private List<LabMethod> availableMethods = new ArrayList<LabMethod>(); priva

我们有一个基于Wicket的实验室应用程序,并遵循此处显示的调色板示例:

最初,我们在可用列表中有description=“pH”、“pH1”和“pH2”项

如果我们将“pH1”和“pH2”移动到所选列表并保存它,“pH”将不再显示在可用列表中

如果我们将项目描述从“pH”更改为“pH”,它将再次显示

以下是部分代码:

private List<LabMethod> availableMethods = new ArrayList<LabMethod>();
private List<LabMethod> selectedMethods = new ArrayList<LabMethod>();
....

//Get all the methods
availableMethods = labMethodService.getLabMethods();
//Get the methods for this user
if (user.getId()!=null)
    selectedMethods = lookupService.getMethodsForUser(user);
else
    selectedMethods = Collections.emptyList();

IChoiceRenderer<LabMethod> renderer = new ChoiceRenderer<LabMethod>("description", "description");

final Palette<LabMethod> palette = 
    new Palette<LabMethod>("methodPalette", 
    new ListModel<LabMethod>(selectedMethods), 
    new CollectionModel<LabMethod>(availableMethods), 
    renderer, 10, true);

palette.add(new DefaultTheme());
private List availableMethods=new ArrayList();
私有列表selectedMethods=new ArrayList();
....
//得到所有的方法
availableMethods=labMethodService.getLabMethods();
//获取此用户的方法
if(user.getId()!=null)
selectedMethods=lookupService.getMethodsForUser(用户);
其他的
selectedMethods=Collections.emptyList();
IChoiceRenderer渲染器=新的ChoiceRenderer(“描述”、“描述”);
最终调色板=
新调色板(“方法调色板”,
新列表模型(selectedMethods),
新收集模型(可用方法),
渲染器,10,真);
添加(新的DefaultTheme());

这似乎是Wicket 7.x中引入的回归-调色板不支持包含彼此的选项ID:


例如,当从选项{“AA”、“AAA”和“AAAA”}中选择“AAAA”时,Recorder#getUnselectedList()将返回所有被选中的内容(因为所有内容都“包含”在“AAAA”中)。

如果不查看您的代码,很难判断问题可能是什么,因为可能有许多不同的原因。了解如何构建调色板(尤其是其模型和选项渲染器)对于开始非常有帮助。感谢我添加了一些代码。一旦pH消失,如果将pH1和pH2移回可用并保存,pH是否会保持不变?否-它会重新出现在列表中。我还尝试了两项“ABCD”和“ABCDE”。如果选择了“ABCDE”,则“ABCD”将不可用。