Wicket调色板可用列表问题

时间:2016-09-12 10:45:20

标签: wicket palette

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

Palette example

最初,我们在可用列表中有描述=“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());

1 个答案:

答案 0 :(得分:2)

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

E.g。当从选择{“AA”,“AAA”和“AAAA”}中选择“AAAA”时,记录器#getUnselectedList()将返回all作为选择(因为所有都“包含”在“AAAA”中)。