GWT - Widget CellTable

introduzione

Il CellTable widget rappresenta una vista tabulare che supporta la paginazione e le colonne.

Dichiarazione di classe

Di seguito è riportata la dichiarazione per com.google.gwt.user.cellview.client.CellTable<T> classe -

public class CellTable<T>
   extends AbstractHasData<T>

Costruttori di classi

Sr.No. Costruttore e descrizione
1

CellTable()

Costruisce una tabella con una dimensione pagina predefinita di 15.

2

CellTable(int pageSize)

Costruisce una tabella con le dimensioni della pagina specificate.

3

CellTable(int pageSize, CellTable.Resources resources)

Costruisce una tabella con le dimensioni di pagina specificate con CellTable.BasicResources specificato.

4

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

Costruisce una tabella con le dimensioni di pagina specificate, il CellTable.BasicResources specificato e il provider di chiavi specificato.

5

CellTable(int pageSize, ProvidesKey<T> keyProvider)

Costruisce una tabella con le dimensioni di pagina specificate e il provider di chiavi specificato.

6

CellTable(ProvidesKey<T> keyProvider)

Costruisce una tabella con una dimensione pagina predefinita di 15 e il provider di chiavi specificato.

Metodi di classe

Sr.No. Nome e descrizione della funzione
1

void addColumn(Column<T,?> col)

Aggiunge una colonna alla tabella.

2

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

Aggiunge una colonna alla tabella con un'intestazione associata.

3

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

Aggiunge una colonna alla tabella con un'intestazione e un piè di pagina associati.

4

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

Aggiunge una colonna alla tabella con un'intestazione SafeHtml associata.

5

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

Aggiunge una colonna alla tabella con un'intestazione e un piè di pagina SafeHtml associati.

6

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

Aggiunge una colonna alla tabella con un'intestazione String associata.

7

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

Aggiunge una colonna alla tabella con un'intestazione e un piè di pagina String associati.

8

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

Aggiungi un nome di stile a TableColElement all'indice specificato, creandolo se necessario.

9

protected Element convertToElements(SafeHtml html)

Converti l'HTML specificato in elementi DOM e restituisce il genitore degli elementi DOM.

10

protected boolean dependsOnSelection()

Verificare se le celle nella vista dipendono dallo stato di selezione.

11

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

Deprecato. utilizzare invece Abstract Has Data.add Cell Preview Handler (com.google.gwt.view.client. Cell Preview Event.Handler).

12

int getBodyHeight()

Restituisce l'altezza del corpo della tabella.

13

protected Element getChildContainer()

Restituisce l'elemento che contiene le celle renderizzate.

14

int getHeaderHeight()

Restituisce l'altezza dell'intestazione della tabella.

15

protected Element getKeyboardSelectedElement()

Ottieni l'elemento che ha la selezione della tastiera.

16

TableRowElement getRowElement(int row)

Ottieni TableRowElement per la riga specificata.

17

protected boolean isKeyboardNavigationSuppressed()

Controlla se la navigazione da tastiera viene soppressa, ad esempio quando l'utente modifica una cella.

18

protected void onBlur()

Chiamato quando il widget è sfocato.

19

protected void onBrowserEvent2(Event event)

Chiamato dopo il completamento di AbstractHasData.onBrowserEvent (Event).

20

protected void onFocus()

Chiamato quando il widget è attivo.

21

void redrawFooters()

Ridisegna i piè di pagina della tabella.

22

void redrawHeaders()

Ridisegna le intestazioni della tabella.

23

void removeColumn(Column<T,?> col)

Rimuovi una colonna.

24

void removeColumn(int index)

Rimuovi una colonna.

25

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

Rimuove uno stile da TableColElement all'indice specificato.

26

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

Renderizza tutti i valori di riga nel SafeHtmlBuilder specificato.

27

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

Sostituisci tutti i figli con l'html specificato.

28

protected boolean resetFocusOnCell()

Reimposta lo stato attivo sulla cella attualmente attiva.

29

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

Aggiorna un elemento per riflettere lo stato selezionato dalla tastiera.

30

void setRowStyles(RowStyles<T> rowStyles)

Imposta l'oggetto utilizzato per determinare lo stile di una riga; la modifica avrà effetto al successivo rendering della tabella.

31

protected void setSelected(Element elem, boolean selected)

Deprecato. questo metodo non viene mai chiamato da AbstractHasData, rende gli stili selezionati in renderRowValues ​​(SafeHtmlBuilder, List, int, SelectionModel)

Metodi ereditati

Questa classe eredita i metodi dalle seguenti classi:

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

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

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

  • java.lang.Object

Esempio di widget CellTable

Questo esempio ti guiderà attraverso semplici passaggi per mostrare l'utilizzo di un widget CellTable in GWT. Segui i passaggi seguenti per aggiornare l'applicazione GWT che abbiamo creato in GWT - Capitolo Crea applicazione -

Passo Descrizione
1 Crea un progetto con un nome HelloWorld sotto un pacchetto com.tutorialspoint come spiegato nel capitolo GWT - Crea applicazione .
2 Modifica HelloWorld.gwt.xml , HelloWorld.css , HelloWorld.html e HelloWorld.java come spiegato di seguito. Mantieni invariato il resto dei file.
3 Compilare ed eseguire l'applicazione per verificare il risultato della logica implementata.

Di seguito è riportato il contenuto del descrittore del modulo modificato 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>

Di seguito è riportato il contenuto del file del foglio di stile modificato 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;
}

Di seguito è riportato il contenuto del file host HTML modificato 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>

Cerchiamo di avere il seguente contenuto del file Java src/com.tutorialspoint/HelloWorld.java che dimostrerà l'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 volta che sei pronto con tutte le modifiche fatte, compiliamo ed eseguiamo l'applicazione in modalità sviluppo come abbiamo fatto nel capitolo GWT - Crea applicazione . Se tutto va bene con la tua applicazione, questo produrrà il seguente risultato: