Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法对单元格表列进行排序_Java_Gwt_Gwt Celltable - Fatal编程技术网

Java 无法对单元格表列进行排序

Java 无法对单元格表列进行排序,java,gwt,gwt-celltable,Java,Gwt,Gwt Celltable,我想把我的手机支架整理好,但我没法让它工作。我有一个MVP应用程序,它从rest服务获取数据。在表中显示数据可以正常工作,但排序不起作用 public class LicenseUsageUserViewImpl<T> extends Composite implements LicenseUsageUserView<T> { @UiTemplate("LicenseUsageUserView.ui.xml") interface LicenseData

我想把我的手机支架整理好,但我没法让它工作。我有一个MVP应用程序,它从rest服务获取数据。在表中显示数据可以正常工作,但排序不起作用

public class LicenseUsageUserViewImpl<T> extends Composite implements LicenseUsageUserView<T> {

    @UiTemplate("LicenseUsageUserView.ui.xml")
    interface LicenseDataViewUiBinder extends UiBinder<ScrollPanel,LicenseUsageUserViewImpl> {}

    private static LicenseDataViewUiBinder uiBinder = GWT.create(LicenseDataViewUiBinder.class);

    @UiField
    CellTable<GWTLicenseUser> licenseUserCellTable;

    List<GWTLicenseUser> licenseUsers;

    ListDataProvider<GWTLicenseUser> dataProvider;

    public List<GWTLicenseUser> getLicenseUsers() {
        return licenseUsers;
    }

    public void setLicenseUsers(List<GWTLicenseUser> licenseUsers) {
        this.licenseUsers = licenseUsers;
    }

    @UiField Label header;

    ListHandler<GWTLicenseUser> sortHandler;

    public LicenseUsageUserViewImpl() {
        initWidget(uiBinder.createAndBindUi(this));
        initCellTable();
    }

    @Override
    public void setLicenseUsersTable(List<GWTLicenseUser> tmpLicenseUsers) {
        if (tmpLicenseUsers.isEmpty()) {

            licenseUserCellTable.setVisible(false);

        } else {

            setLicenseUsers(tmpLicenseUsers);
            licenseUserCellTable.setWidth("100%");
            licenseUserCellTable.setVisible(true);
            licenseUserCellTable.setPageSize(getLicenseUsers().size());
            licenseUserCellTable.setRowCount(getLicenseUsers().size(), false);
            licenseUserCellTable.setRowData(0, getLicenseUsers());
            licenseUserCellTable.setVisibleRange(new Range(0, licenseUserCellTable.getRowCount()));

            sortHandler.setList(getLicenseUsers());

            dataProvider.getList().clear();
            dataProvider.getList().addAll(getLicenseUsers());
        }

    }

    @Override
    public void initCellTable() {

        sortHandler = new ListHandler<GWTLicenseUser>(getLicenseUsers());
        licenseUserCellTable.addColumnSortHandler(sortHandler);

        licenseUserCellTable.setWidth("100%");
        licenseUserCellTable.setVisible(true);
        licenseUserCellTable.setVisibleRange(new Range(0, licenseUserCellTable.getRowCount()));

        // Create a data provider.
        dataProvider = new ListDataProvider<GWTLicenseUser>();

        // Connect the table to the data provider.
        dataProvider.addDataDisplay(licenseUserCellTable);

        licenseUserCellTable.setWidth("100%");
        licenseUserCellTable.setAutoHeaderRefreshDisabled(true);
        licenseUserCellTable.setAutoFooterRefreshDisabled(true);


        // userID
        TextColumn<GWTLicenseUser> userIdColumn = new TextColumn<GWTLicenseUser>() {

            @Override
            public String getValue(GWTLicenseUser object) {

                if (object != null ){
                    return object.getUserId();
                } else {
                    return "NULL";
                }
            }

        };
        userIdColumn.setSortable(true);
        sortHandler.setComparator(userIdColumn, new Comparator<GWTLicenseUser>() {
            @Override
            public int compare(GWTLicenseUser o1, GWTLicenseUser o2) {
              return o1.getUserId().compareTo(o2.getUserId());
            }
          });
        licenseUserCellTable.addColumn(userIdColumn, "User ID");


        // more column entries


        licenseUserCellTable.getColumnSortList().push(userIdColumn);
        licenseUserCellTable.getColumnSortList().push(countColumn);

        licenseUserCellTable.addColumnSortHandler(sortHandler);

    }

}
公共类LicenseUsageUserViewImpl扩展复合实现LicenseUsageUserView{
@UiTemplate(“LicenseUsageUserView.ui.xml”)
接口许可证DataViewUIBinder扩展UiBinder{}
私有静态LicenseDataViewUiBinder uiBinder=GWT.create(LicenseDataViewUiBinder.class);
@尤菲尔德
CellTable许可证用户CellTable;
列出持牌人及使用者名单;
ListDataProvider数据提供者;
公共列表getLicenseUsers(){
退回持牌人或使用者;
}
public void setLicenseUsers(列出licenseUsers){
this.licenseUsers=licenseUsers;
}
@UiField标签头;
ListHandler-sortHandler;
公共许可证UsageUserViewImpl(){
initWidget(uiBinder.createAndBindUi(this));
initCellTable();
}
@凌驾
public void setLicenseUsersTable(列出tmplicenseuser){
if(tmpLicenseUsers.isEmpty()){
licenseUserCellTable.setVisible(false);
}否则{
setLicenseUsers(tmpLicenseUsers);
licenseUserCellTable.setWidth(“100%”);
licenseUserCellTable.setVisible(true);
setPageSize(getLicenseUsers().size());
licenseUserCellTable.setRowCount(getLicenseUsers().size(),false);
setRowData(0,getLicenseUsers());
licenseUserCellTable.setVisibleRange(新范围(0,licenseUserCellTable.getRowCount());
setList(getLicenseUsers());
dataProvider.getList().clear();
dataProvider.getList().addAll(getLicenseUsers());
}
}
@凌驾
public void initCellTable(){
sortHandler=新的ListHandler(getLicenseUsers());
licenseUserCellTable.addColumnSortHandler(sortHandler);
licenseUserCellTable.setWidth(“100%”);
licenseUserCellTable.setVisible(true);
licenseUserCellTable.setVisibleRange(新范围(0,licenseUserCellTable.getRowCount());
//创建一个数据提供者。
dataProvider=新的ListDataProvider();
//将表连接到数据提供程序。
dataProvider.addDataDisplay(licenseUserCellTable);
licenseUserCellTable.setWidth(“100%”);
licenseUserCellTable.setAutoHeaderRefreshDisabled(true);
licenseUserCellTable.setAutoFooterRefreshDisabled(true);
//用户ID
TextColumn userIdColumn=newtextcolumn(){
@凌驾
公共字符串getValue(GWTLicenseUser对象){
if(对象!=null){
返回object.getUserId();
}否则{
返回“NULL”;
}
}
};
userIdColumn.setSortable(true);
setComparator(userIdColumn,newComparator()){
@凌驾
公共整数比较(GWTLicenseUser o1、GWTLicenseUser o2){
返回o1.getUserId().compareTo(o2.getUserId());
}
});
licenseUserCellTable.addColumn(userIdColumn,“用户ID”);
//更多列条目
licenseUserCellTable.getColumnSortList().push(userIdColumn);
licenseUserCellTable.getColumnSortList().push(countColumn);
licenseUserCellTable.addColumnSortHandler(sortHandler);
}
}
setLicenseUsersTable
从我的活动中调用,其中包含我的用户的响应列表。当我启动我的应用程序并进行rest调用时,我的数据被提供并放入我的列表中,该列表也显示在CellTable中,但它不可排序,但我的列名称前有一个排序图标。我想我发布了整个代码,因为我认为它更容易看到我试图做什么

感谢您的帮助。

删除此行:

sortHandler.setList(getLicenseUsers());
您已经在中向SortHandler构造函数传递了一个列表

sortHandler = new ListHandler<GWTLicenseUser>(getLicenseUsers());
您可能需要使用

licenseUsers.addAll(tmpLicenseUsers);
我希望其中一个能解决这个问题

licenseUsers.addAll(tmpLicenseUsers);