2014-10-22 5 views
1

У меня есть таблица сотовых и я пытаюсь выполнить разбиение на страницы, но это не работает. Я искал решения, но безуспешно. Я нажимаю на следующей странице, ничего не происходит. Я забыл что-то реализовать? Кто-то может мне помочь? Спасибо за внимание! Ниже моя реализация:GWT/GWT Bootstrap - Pagination (SimplePager)

Java:

 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:

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> 

<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> 

ответ

0

pager = new SimplePager(...) У вас есть, так что вы должны объявить @uiField(provided = true) для пейджера и переместить объявление/инициализацию пейджера в функцию createTableTask (pager должно быть установлено до initwidget).

+0

Спасибо! Эта работа. –

Смежные вопросы