排序后Java ZK ListBox listModel不同步

时间:2013-02-14 13:40:39

标签: java listbox zk

嘿伙计们我是ZK框架的新手我有一个列表框在视图中排序后我将listBox传递给控制器​​我需要用户选择的项目,但在模型中项目与排序同步但是在getSelection数组中没有与原始数据的排序同步,这里是代码。

public void createPDFFromModel(Listbox list,String ref){                
    BindingListModelList model = (BindingListModelList)list.getModel();
    for(int i=0;i<model.size();i++){
        System.out.println((((ZamoraListitemAdapter)model.get(i)).getName()));
    }  
    System.out.println("-------------------------------------------");
    //Data Printed OK.
    java.util.ArrayList<ZamoraListitemAdapter>selections = new java.util.ArrayList<ZamoraListitemAdapter>(model.getSelection());
    for(int i=0;i<selections.size();i++){
        ZamoraListitemAdapter clazz = (ZamoraListitemAdapter)selections.get(i);
        System.out.println(clazz.getName());
        //Out of sync with model and with sorting 
    }

我的问题是如何在getSelection模型中获得排序后的项目顺序。我使用的是ZK 5.2.8

2 个答案:

答案 0 :(得分:0)

创建后,您可以sort selections 可能有其他/更好的解决方案,但你有 如果您需要更多帮助,请写下您尝试实现的目标。

回复评论

我的意思是

ArrayList<ZamoraListitemAdapter>selections = 
new ArrayList<ZamoraListitemAdapter>(model.getSelection());
Collections.sort(selections);

因此,selections是所有选定项目的List长度 当你以相同的方式比较项目时,它们应该是正确的顺序

如果您的意思是重新排序而不是排序......

对我来说,排序意味着它是自动的,并通过算法完成 例如,重新排序意味着您可以拖动对象。

如果您的意思是重新排序,而您的Model无法知道是否有 选择了一个项目,你可能做错了什么 Cos zk有两个班ListModelListAbstractListModel
实现选择行为和自定义所需的所有方法 如果程序员想要一个可选择的Model,那么Model应该是固有的 从其中一个来看,这是最简单的方法。

您还应该阅读this

答案 1 :(得分:0)

model.getSelection()

返回一个Set(无顺序),而不是

model.getInnerList()

返回ListModeList