GWT - Widget CellTable

introduction

le CellTable widget représente une vue tabulaire qui prend en charge la pagination et les colonnes.

Déclaration de classe

Voici la déclaration pour com.google.gwt.user.cellview.client.CellTable<T> classe -

public class CellTable<T>
   extends AbstractHasData<T>

Constructeurs de classe

N ° Sr. Constructeur et description
1

CellTable()

Construit un tableau avec une taille de page par défaut de 15.

2

CellTable(int pageSize)

Construit une table avec la taille de page donnée.

3

CellTable(int pageSize, CellTable.Resources resources)

Construit une table avec la taille de page donnée avec le CellTable.BasicResources spécifié.

4

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

Construit une table avec la taille de page donnée, le CellTable.BasicResources spécifié et le fournisseur de clé donné.

5

CellTable(int pageSize, ProvidesKey<T> keyProvider)

Construit une table avec la taille de page donnée et le fournisseur de clé donné.

6

CellTable(ProvidesKey<T> keyProvider)

Construit une table avec une taille de page par défaut de 15 et le fournisseur de clé donné.

Méthodes de classe

N ° Sr. Nom et description de la fonction
1

void addColumn(Column<T,?> col)

Ajoute une colonne à la table.

2

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

Ajoute une colonne au tableau avec un en-tête associé.

3

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

Ajoute une colonne au tableau avec un en-tête et un pied de page associés.

4

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

Ajoute une colonne au tableau avec un en-tête SafeHtml associé.

5

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

Ajoute une colonne au tableau avec un en-tête et un pied de page SafeHtml associés.

6

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

Ajoute une colonne à la table avec un en-tête String associé.

sept

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

Ajoute une colonne au tableau avec un en-tête et un pied de page String associés.

8

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

Ajoutez un nom de style au TableColElement à l'index spécifié, en le créant si nécessaire.

9

protected Element convertToElements(SafeHtml html)

Convertit le HTML spécifié en éléments DOM et renvoie le parent des éléments DOM.

dix

protected boolean dependsOnSelection()

Vérifiez si les cellules de la vue dépendent ou non de l'état de la sélection.

11

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

Obsolète. utilisez plutôt le gestionnaire d'aperçu de cellule Abstract Has Data.add (com.google.gwt.view.client. Cell Preview Event.Handler).

12

int getBodyHeight()

Renvoie la hauteur du corps de la table.

13

protected Element getChildContainer()

Renvoie l'élément contenant les cellules rendues.

14

int getHeaderHeight()

Renvoie la hauteur de l'en-tête du tableau.

15

protected Element getKeyboardSelectedElement()

Obtenez l'élément qui a la sélection du clavier.

16

TableRowElement getRowElement(int row)

Obtenez le TableRowElement pour la ligne spécifiée.

17

protected boolean isKeyboardNavigationSuppressed()

Vérifiez si la navigation au clavier est supprimée, par exemple lorsque l'utilisateur modifie une cellule.

18

protected void onBlur()

Appelé lorsque le widget est flou.

19

protected void onBrowserEvent2(Event event)

Appelé après la fin de AbstractHasData.onBrowserEvent (Event).

20

protected void onFocus()

Appelé lorsque le widget est focalisé.

21

void redrawFooters()

Redessinez les pieds de page du tableau.

22

void redrawHeaders()

Redessinez les en-têtes du tableau.

23

void removeColumn(Column<T,?> col)

Supprimer une colonne.

24

void removeColumn(int index)

Supprimer une colonne.

25

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

Supprimez un style de TableColElement à l'index spécifié.

26

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

Rendez toutes les valeurs de ligne dans le SafeHtmlBuilder spécifié.

27

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

Remplacez tous les enfants par le code HTML spécifié.

28

protected boolean resetFocusOnCell()

Réinitialisez le focus sur la cellule actuellement focalisée.

29

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

Mettez à jour un élément pour refléter son état sélectionné au clavier.

30

void setRowStyles(RowStyles<T> rowStyles)

Définit l'objet utilisé pour déterminer le style d'une ligne; la modification prendra effet la prochaine fois que le tableau sera rendu.

31

protected void setSelected(Element elem, boolean selected)

Obsolète. cette méthode n'est jamais appelée par AbstractHasData, restituer les styles sélectionnés dans renderRowValues ​​(SafeHtmlBuilder, List, int, SelectionModel)

Méthodes héritées

Cette classe hérite des méthodes des classes suivantes -

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

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

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

  • java.lang.Object

Exemple de widget CellTable

Cet exemple vous guidera à travers des étapes simples pour montrer l'utilisation d'un widget CellTable dans GWT. Suivez les étapes suivantes pour mettre à jour l'application GWT que nous avons créée dans GWT - Chapitre Créer une application -

Étape La description
1 Créez un projet avec un nom HelloWorld sous un package com.tutorialspoint comme expliqué dans le chapitre GWT - Créer une application .
2 Modifiez HelloWorld.gwt.xml , HelloWorld.css , HelloWorld.html et HelloWorld.java comme expliqué ci-dessous. Gardez le reste des fichiers inchangé.
3 Compilez et exécutez l'application pour vérifier le résultat de la logique implémentée.

Voici le contenu du descripteur de module modifié 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>

Voici le contenu du fichier de feuille de style modifié 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;
}

Voici le contenu du fichier hôte HTML modifié 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>

Laissez-nous avoir le contenu suivant du fichier Java src/com.tutorialspoint/HelloWorld.java qui démontrera l'utilisation du 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);
   }
}

Une fois que vous êtes prêt avec tous les changements effectués, laissez-nous compiler et exécuter l'application en mode développement comme nous l'avons fait dans le chapitre GWT - Créer une application . Si tout va bien avec votre application, cela produira le résultat suivant -