首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWT/GWT引导分页(SimplePager)

GWT/GWT引导分页(SimplePager)
EN

Stack Overflow用户
提问于 2014-10-22 11:09:33
回答 1查看 793关注 0票数 1

我有一个牢房表,我正在尝试实现分页,但它不起作用。我在寻找解决办法,但没有取得任何成功。我点击下一页,什么都没发生。我忘了实现什么了?有人能帮我吗?谢谢大家的关注!以下是我的执行情况:

爪哇:

代码语言:javascript
复制
        public class TaskPanel extends Composite {

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

            interface TaskPanelUiBinder extends UiBinder<Widget, TaskPanel> {

            }

            public TaskPanel() {
                this.tableTask = createTableTask();

                //Populate celltable
                preencheListaTask();

                initWidget(uiBinder.createAndBindUi(this));
            }

            @UiField(provided = true)
            CellTable<Task> tableTask;

            @UiField
            AccordionGroup accordionTable;

            @UiField Button btnRefresh;

            @UiField SimplePager pager;

            @UiField FormTaskPanel formTask;

            List<Task> listTasks = new ArrayList<Task>();

            ListDataProvider<Task> tableTaskProvider;

            public List<Task> getListTasks() {
                return this.listTasks;
            }

            public void setListTasks(List<Task> lista) {
                this.listTasks = lista;
            }

            public TaskPanel getTaskPanel() {
                return this;
            }

            //Create celltable
            public CellTable<Task> createTableTask() {
                tableTask = new CellTable<Task>();
                tableTask.setPageSize(2);

                TextColumn<Task> dataInicioColumn = new TextColumn<Task>() {
                    @Override
                    public String getValue(Task task) {
                        return task.getDataInicial();
                    }
                };
                tableTask.addColumn(dataInicioColumn, "Data Inicio");

                TextColumn<Task> dataFinalColumn = new TextColumn<Task>() {
                    @Override
                    public String getValue(Task task) {
                        return task.getDataFinal();
                    }
                };
                tableTask.addColumn(dataFinalColumn, "Data Final");

                TextColumn<Task> descricaoColumn = new TextColumn<Task>() {
                    @Override
                    public String getValue(Task task) {
                        return task.getDescricao();
                    }
                };
                tableTask.addColumn(descricaoColumn, "Descricao");

                TextColumn<Task> categoriaColumn = new TextColumn<Task>() {
                    @Override
                    public String getValue(Task task) {
                        return task.getCategoria();
                    }
                };
                tableTask.addColumn(categoriaColumn, "Categoria");

                TextColumn<Task> prioridadeColumn = new TextColumn<Task>() {
                    @Override
                    public String getValue(Task task) {
                        return task.getPrioridade();
                    }
                };
                tableTask.addColumn(prioridadeColumn, "Prioridade");

                return tableTask;
            }

            //Generate a JSON, and I parse for List<Task> to populate celltable
            public List<Task> preencheListaTask() {
                final List<Task> lista = new ArrayList<Task>();

                String url = "http://127.0.0.1:8888/financecontrol/jsonTableTasks.json";

                RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);

                try {
                    Request request = builder.sendRequest(null, new RequestCallback() {

                        public void onError(Request request, Throwable exception) {
                            System.out.println("Error to retrieve JSON");
                        }

                        @Override
                        public void onResponseReceived(Request arg0, Response response) {
                            if (200 == response.getStatusCode()) {
                                JSONValue value = JSONParser.parse(response.getText());

                                com.google.gwt.json.client.JSONObject taskObjs = value
                                        .isObject();

                                JSONArray tasksArray = taskObjs.get("tasks").isArray();

                                if (tasksArray != null) {
                                    for (int i = 0; i < tasksArray.size(); i++) {

                                        com.google.gwt.json.client.JSONObject taskObj = tasksArray
                                                .get(i).isObject();

                                        String id = taskObj.get("ID").isNumber().toString();
                                        String dataInicial = taskObj
                                                .get("Data Inicial").isString()
                                                .stringValue();
                                        String dataFinal = taskObj.get("Data Final")
                                                .isString().stringValue();
                                        String descricao = taskObj.get("Descricao")
                                                .isString().stringValue();
                                        String categoria = taskObj.get("Categoria").isString().toString();
                                        String prioridade = taskObj.get("Prioridade").isString().toString();

                                        Task task = new Task(Integer.parseInt(id),
                                                dataInicial, dataFinal,
                                                descricao, categoria, prioridade);
                                        lista.add(task);
                                    }
                                    setListTasks(lista);
                                    System.out.println("JSON retrieve");
                                }
                                addLinhas();
                            } else {
                                System.out.println("Couldn't retrieve JSON ("
                                        + response.getStatusText() + ")");
                            }
                        }

                    });
                } catch (RequestException e) {
                    System.err.println("Erro cath - " + e.getMessage());
                }

                return lista;
            }
            //add rows to celltable
            public void addLinhas() {
                this.tableTask.setRowCount(getListTasks().size(), true);
                this.tableTask.setRowData(0, getListTasks());
                tableTask.redraw();
                tableTaskProvider = new ListDataProvider<Task>(getListTasks());
                tableTaskProvider.addDataDisplay(tableTask);

                //Pagination
                SimplePager.Resources pagerResources = GWT.create(SimplePager.Resources.class);
                pager = new SimplePager(TextLocation.CENTER, pagerResources, false, 0, true);
                pager.setDisplay(tableTask);

            }

            @UiHandler("btnRefresh")
            public void onClickRefresh(ClickEvent e) {
                preencheListaTask();
            }

        }

UiBinder:

代码语言:javascript
复制
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">

代码语言:javascript
复制
<ui:style>
    .formContent {
        height: 70%;
    }

</ui:style>

<b:Container addStyleNames="{style.formContent}">
    <r:FormTaskPanel ui:field="formTask"/>

    <b:AccordionGroup ui:field="accordionTable" defaultOpen="false" heading="Task List">
        <b:CellTable ui:field="tableTask" />
        <b:SimplePager ui:field="pager" location="CENTER"/>
        <b:Button ui:field="btnRefresh" text="Refresh" icon="REFRESH"/>
    </b:AccordionGroup>
</b:Container>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-27 09:45:59

您有pager = new SimplePager(...),所以您必须为寻呼机声明@uiField(provided = true),并将寻呼机声明/初始化移动到createTableTask函数中(必须在initwidget之前设置pager)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26506090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档