GWT: widget de CellTable

Introducción

los CellTable widget representa una vista tabular que admite paginación y columnas.

Declaración de clase

A continuación se muestra la declaración de com.google.gwt.user.cellview.client.CellTable<T> clase -

public class CellTable<T>
   extends AbstractHasData<T>

Constructores de clases

No Señor. Constructor y descripción
1

CellTable()

Construye una tabla con un tamaño de página predeterminado de 15.

2

CellTable(int pageSize)

Construye una tabla con el tamaño de página dado.

3

CellTable(int pageSize, CellTable.Resources resources)

Construye una tabla con el tamaño de página dado con el CellTable.BasicResources especificado.

4

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

Construye una tabla con el tamaño de página dado, el CellTable.BasicResources especificado y el proveedor de claves proporcionado.

5

CellTable(int pageSize, ProvidesKey<T> keyProvider)

Construye una tabla con el tamaño de página y el proveedor de claves dados.

6

CellTable(ProvidesKey<T> keyProvider)

Construye una tabla con un tamaño de página predeterminado de 15 y el proveedor de claves proporcionado.

Métodos de clase

No Señor. Nombre y descripción de la función
1

void addColumn(Column<T,?> col)

Agrega una columna a la tabla.

2

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

Agrega una columna a la tabla con un encabezado asociado.

3

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

Agrega una columna a la tabla con un encabezado y un pie de página asociados.

4

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

Agrega una columna a la tabla con un encabezado SafeHtml asociado.

5

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

Agrega una columna a la tabla con un encabezado y un pie de página SafeHtml asociados.

6

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

Agrega una columna a la tabla con un encabezado de cadena asociado.

7

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

Agrega una columna a la tabla con un encabezado y un pie de página de cadena asociados.

8

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

Agregue un nombre de estilo al TableColElement en el índice especificado, creándolo si es necesario.

9

protected Element convertToElements(SafeHtml html)

Convierta el HTML especificado en elementos DOM y devuelva el padre de los elementos DOM.

10

protected boolean dependsOnSelection()

Compruebe si las celdas de la vista dependen o no del estado de selección.

11

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

Obsoleto. utilice Abstract Has Data.add Cell Preview Handler (com.google.gwt.view.client. Cell Preview Event.Handler) en su lugar.

12

int getBodyHeight()

Devuelve la altura del cuerpo de la mesa.

13

protected Element getChildContainer()

Devuelve el elemento que contiene las celdas renderizadas.

14

int getHeaderHeight()

Devuelve la altura del encabezado de la tabla.

15

protected Element getKeyboardSelectedElement()

Obtiene el elemento que tiene selección de teclado.

dieciséis

TableRowElement getRowElement(int row)

Obtenga TableRowElement para la fila especificada.

17

protected boolean isKeyboardNavigationSuppressed()

Compruebe si se está suprimiendo la navegación con el teclado, como cuando el usuario está editando una celda.

18

protected void onBlur()

Llamado cuando el widget está borroso.

19

protected void onBrowserEvent2(Event event)

Se llama después de que se completa AbstractHasData.onBrowserEvent (Event).

20

protected void onFocus()

Se llama cuando el widget está enfocado.

21

void redrawFooters()

Vuelva a dibujar los pies de la tabla.

22

void redrawHeaders()

Vuelva a dibujar los encabezados de la tabla.

23

void removeColumn(Column<T,?> col)

Eliminar una columna.

24

void removeColumn(int index)

Eliminar una columna.

25

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

Elimina un estilo de TableColElement en el índice especificado.

26

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

Renderice todos los valores de fila en el SafeHtmlBuilder especificado.

27

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

Reemplace todos los niños con el html especificado.

28

protected boolean resetFocusOnCell()

Restablece el enfoque en la celda actualmente enfocada.

29

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

Actualiza un elemento para reflejar su estado seleccionado por teclado.

30

void setRowStyles(RowStyles<T> rowStyles)

Establece el objeto utilizado para determinar cómo se aplica el estilo a una fila; el cambio entrará en vigor la próxima vez que se represente la tabla.

31

protected void setSelected(Element elem, boolean selected)

Obsoleto. este método nunca es llamado por AbstractHasData, renderiza los estilos seleccionados en renderRowValues ​​(SafeHtmlBuilder, List, int, SelectionModel)

Métodos heredados

Esta clase hereda métodos de las siguientes clases:

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

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

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

  • java.lang.Object

Ejemplo de widget CellTable

Este ejemplo lo llevará a través de sencillos pasos para mostrar el uso de un widget CellTable en GWT. Siga los siguientes pasos para actualizar la aplicación GWT que creamos en GWT - Capítulo Crear aplicación -

Paso Descripción
1 Cree un proyecto con un nombre HelloWorld en un paquete com.tutorialspoint como se explica en el capítulo GWT - Crear aplicación .
2 Modifique HelloWorld.gwt.xml , HelloWorld.css , HelloWorld.html y HelloWorld.java como se explica a continuación. Mantenga el resto de los archivos sin cambios.
3 Compile y ejecute la aplicación para verificar el resultado de la lógica implementada.

A continuación se muestra el contenido del descriptor de 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 continuación se muestra el contenido del archivo de hoja 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 continuación se muestra el contenido del archivo de 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>

Tengamos el siguiente contenido del archivo Java src/com.tutorialspoint/HelloWorld.java que demostrará el uso del 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);
   }
}

Una vez que esté listo con todos los cambios realizados, compilemos y ejecutemos la aplicación en modo de desarrollo como hicimos en el capítulo GWT - Crear aplicación . Si todo está bien con su aplicación, esto producirá el siguiente resultado: