GWT - Widget CellTable

Introdução

o CellTable widget representa uma visualização tabular que suporta paginação e colunas.

Declaração de Classe

A seguir está a declaração para com.google.gwt.user.cellview.client.CellTable<T> classe -

public class CellTable<T>
   extends AbstractHasData<T>

Construtores de classe

Sr. Não. Construtor e descrição
1

CellTable()

Constrói uma tabela com um tamanho de página padrão de 15.

2

CellTable(int pageSize)

Constrói uma tabela com o tamanho de página fornecido.

3

CellTable(int pageSize, CellTable.Resources resources)

Constrói uma tabela com o tamanho de página fornecido com o CellTable.BasicResources especificado.

4

CellTable(int pageSize, CellTable.Resources resources, ProvidesKey<T> keyProvider)

Constrói uma tabela com o tamanho de página fornecido, o CellTable.BasicResources especificado e o provedor de chave fornecido.

5

CellTable(int pageSize, ProvidesKey<T> keyProvider)

Constrói uma tabela com o tamanho de página fornecido e o provedor de chave fornecido.

6

CellTable(ProvidesKey<T> keyProvider)

Constrói uma tabela com um tamanho de página padrão de 15 e o provedor de chave fornecido.

Métodos de aula

Sr. Não. Nome e descrição da função
1

void addColumn(Column<T,?> col)

Adiciona uma coluna à tabela.

2

void addColumn(Column<T,?> col, Header<?> header)

Adiciona uma coluna à tabela com um cabeçalho associado.

3

void addColumn(Column<T,?> col, Header<?> header, Header<?> footer)

Adiciona uma coluna à tabela com um cabeçalho e rodapé associados.

4

void addColumn(Column<T,?> col, SafeHtml headerHtml)

Adiciona uma coluna à tabela com um cabeçalho SafeHtml associado.

5

void addColumn(Column<T,?> col, SafeHtml headerHtml, SafeHtml footerHtml)

Adiciona uma coluna à tabela com um cabeçalho e rodapé SafeHtml associados.

6

void addColumn(Column<T,?> col, java.lang.String headerString)

Adiciona uma coluna à tabela com um cabeçalho String associado.

7

void add Column (Column<T,?> col, java. lang. String header String, java.lang.String footer String)

Adiciona uma coluna à tabela com um cabeçalho e rodapé de String associados.

8

void addColumnStyleName(int index, java.lang.String styleName)

Adicione um nome de estilo a TableColElement no índice especificado, criando-o se necessário.

9

protected Element convertToElements(SafeHtml html)

Converta o HTML especificado em elementos DOM e retorne o pai dos elementos DOM.

10

protected boolean dependsOnSelection()

Verifique se as células na visualização dependem ou não do estado de seleção.

11

protected void do Selection (Event event, T value, int row, int column)

Descontinuada. use Abstract Has Data.add Cell Preview Handler (com.google.gwt.view.client. Cell Preview Event.Handler).

12

int getBodyHeight()

Retorne a altura do corpo da mesa.

13

protected Element getChildContainer()

Retorne o elemento que contém as células renderizadas.

14

int getHeaderHeight()

Retorne a altura do cabeçalho da tabela.

15

protected Element getKeyboardSelectedElement()

Obtenha o elemento que possui seleção de teclado.

16

TableRowElement getRowElement(int row)

Obtenha o TableRowElement para a linha especificada.

17

protected boolean isKeyboardNavigationSuppressed()

Verifique se a navegação do teclado está sendo suprimida, como quando o usuário está editando uma célula.

18

protected void onBlur()

Chamado quando o widget está desfocado.

19

protected void onBrowserEvent2(Event event)

Chamado após a conclusão de AbstractHasData.onBrowserEvent (Event).

20

protected void onFocus()

Chamado quando o widget está focado.

21

void redrawFooters()

Redesenhe os rodapés da tabela.

22

void redrawHeaders()

Redesenhe os cabeçalhos da tabela.

23

void removeColumn(Column<T,?> col)

Remova uma coluna.

24

void removeColumn(int index)

Remova uma coluna.

25

void removeColumnStyleName(int index, java.lang.String styleName)

Remova um estilo de TableColElement no índice especificado.

26

protected void renderRowValues(SafeHtmlBuilder sb, java.util.List<T> values, int start, SelectionModel<? super T> selectionModel)

Renderiza todos os valores de linha no SafeHtmlBuilder especificado.

27

protected void replaceAllChildren(java.util.List<T> values, SafeHtml html)

Substitua todos os filhos pelo html especificado.

28

protected boolean resetFocusOnCell()

Redefina o foco na célula atualmente em foco.

29

protected void setKeyboardSelected(int index, boolean selected, boolean stealFocus)

Atualize um elemento para refletir seu estado selecionado pelo teclado.

30

void setRowStyles(RowStyles<T> rowStyles)

Define o objeto usado para determinar como uma linha é estilizada; a alteração terá efeito na próxima vez que a tabela for renderizada.

31

protected void setSelected(Element elem, boolean selected)

Descontinuada. este método nunca é chamado por AbstractHasData, renderize os estilos selecionados em renderRowValues ​​(SafeHtmlBuilder, List, int, SelectionModel)

Métodos herdados

Esta classe herda métodos das seguintes classes -

  • com.google.gwt.user.client.ui.UIObject

  • com.google.gwt.user.client.ui.Widget

  • com.google.gwt.user.cellview.client.AbstractHasData

  • java.lang.Object

Exemplo de widget CellTable

Este exemplo o levará por etapas simples para mostrar o uso de um widget CellTable no GWT. Siga as etapas a seguir para atualizar o aplicativo GWT que criamos no GWT - capítulo Criar aplicativo -

Degrau Descrição
1 Crie um projeto com o nome HelloWorld em um pacote com.tutorialspoint conforme explicado no capítulo GWT - Criar aplicativo .
2 Modifique HelloWorld.gwt.xml , HelloWorld.css , HelloWorld.html e HelloWorld.java conforme explicado abaixo. Mantenha o resto dos arquivos inalterados.
3 Compile e execute o aplicativo para verificar o resultado da lógica implementada.

A seguir está o conteúdo do descritor do módulo modificado src/com.tutorialspoint/HelloWorld.gwt.xml.

<?xml version = "1.0" encoding = "UTF-8"?>
<module rename-to = 'helloworld'>
   <!-- Inherit the core Web Toolkit stuff.                        -->
   <inherits name = 'com.google.gwt.user.User'/>

   <!-- Inherit the default GWT style sheet.                       -->
   <inherits name = 'com.google.gwt.user.theme.clean.Clean'/>

   <!-- Specify the app entry point class.                         -->
   <entry-point class = 'com.tutorialspoint.client.HelloWorld'/>

   <!-- Specify the paths for translatable code                    -->
   <source path = 'client'/>
   <source path = 'shared'/>

</module>

A seguir está o conteúdo do arquivo de folha de estilo modificado war/HelloWorld.css.

body {
   text-align: center;
   font-family: verdana, sans-serif;
}

h1 {
   font-size: 2em;
   font-weight: bold;
   color: #777777;
   margin: 40px 0px 70px;
   text-align: center;
}

A seguir está o conteúdo do arquivo host HTML modificado war/HelloWorld.html.

<html>
   <head>
      <title>Hello World</title>
      <link rel = "stylesheet" href = "HelloWorld.css"/>
      <script language = "javascript" src = "helloworld/helloworld.nocache.js">
      </script>
   </head>

   <body>
      <h1>CellTable Widget Demonstration</h1>
      <div id = "gwtContainer"></div>
   </body>
</html>

Vamos ter o seguinte conteúdo do arquivo Java src/com.tutorialspoint/HelloWorld.java que demonstrará o uso do widget CellTable.

package com.tutorialspoint.client;

import java.util.Arrays;
import java.util.Date;
import java.util.List;

import com.google.gwt.cell.client.DateCell;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client
.HasKeyboardSelectionPolicy.KeyboardSelectionPolicy;
import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.view.client.SelectionChangeEvent;
import com.google.gwt.view.client.SingleSelectionModel;

public class HelloWorld implements EntryPoint {
   /**
    * A simple data type that represents a contact.
    */
   
   private static class Contact {
      private final String address;
      private final Date birthday;
      private final String name;

      public Contact(String name, Date birthday, String address) {
         this.name = name;
         this.birthday = birthday;
         this.address = address;
      }
   }

   /**
    * The list of data to display.
    */
 
   private static final List<Contact> CONTACTS = Arrays.asList(
      new Contact("John", new Date(80, 4, 12), "123 Fourth Avenue"),
      new Contact("Joe", new Date(85, 2, 22), "22 Lance Ln"),
      new Contact("George",new Date(46, 6, 6),"1600 Pennsylvania Avenue"));

   public void onModuleLoad() {
      // Create a CellTable.
      CellTable<Contact> table = new CellTable<Contact>();
      table.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);

      // Add a text column to show the name.
      TextColumn<Contact> nameColumn = 
      new TextColumn<Contact>() {
         @Override
         public String getValue(Contact object) {
            return object.name;
         }
      };
      table.addColumn(nameColumn, "Name");

      // Add a date column to show the birthday.
      DateCell dateCell = new DateCell();
      Column<Contact, Date> dateColumn 
      = new Column<Contact, Date>(dateCell) {
         @Override
         public Date getValue(Contact object) {
            return object.birthday;
         }
      };
      table.addColumn(dateColumn, "Birthday");

      // Add a text column to show the address.
      TextColumn<Contact> addressColumn 
      = new TextColumn<Contact>() {
         @Override
         public String getValue(Contact object) {
            return object.address;
         }
      };
      table.addColumn(addressColumn, "Address");

      // Add a selection model to handle user selection.
      final SingleSelectionModel<Contact> selectionModel 
      = new SingleSelectionModel<Contact>();
      table.setSelectionModel(selectionModel);
      selectionModel.addSelectionChangeHandler(
      new SelectionChangeEvent.Handler() {
         public void onSelectionChange(SelectionChangeEvent event) {
            Contact selected = selectionModel.getSelectedObject();
            if (selected != null) {
               Window.alert("You selected: " + selected.name);
            }
         }
      });

      // Set the total row count. This isn't strictly necessary,
      // but it affects paging calculations, so its good habit to
      // keep the row count up to date.
      table.setRowCount(CONTACTS.size(), true);

      // Push the data into the widget.
      table.setRowData(0, CONTACTS);

      VerticalPanel panel = new VerticalPanel();
      panel.setBorderWidth(1);	    
      panel.setWidth("400");
      panel.add(table);

      // Add the widgets to the root panel.
      RootPanel.get().add(panel);
   }
}

Quando você estiver pronto com todas as alterações feitas, vamos compilar e rodar o aplicativo em modo de desenvolvimento como fizemos no capítulo GWT - Criar Aplicativo . Se tudo estiver bem com sua aplicação, isso produzirá o seguinte resultado -