GWT - Widget ad albero
introduzione
Il Treewidget rappresenta un widget albero gerarchico standard. L'albero contiene una gerarchia di TreeItems che l'utente può aprire, chiudere e selezionare.
Dichiarazione di classe
Di seguito è riportata la dichiarazione per com.google.gwt.user.client.ui.Tree classe -
public class Tree
extends Widget
implements HasWidgets, SourcesTreeEvents, HasFocus,
HasAnimation, HasAllKeyHandlers, HasAllFocusHandlers,
HasSelectionHandlers<TreeItem>, HasOpenHandlers<TreeItem>,
HasCloseHandlers<TreeItem>, SourcesMouseEvents, HasAllMouseHandlers
Regole di stile CSS
Le seguenti regole di stile CSS predefinite verranno applicate a tutto il widget Albero. Puoi sovrascriverlo secondo le tue esigenze.
.gwt-Tree {}
.gwt-TreeItem {}
.gwt-TreeItem-selected {}
Costruttori di classi
Sr.No. | Costruttore e descrizione |
---|---|
1 |
Tree() Costruisce un albero vuoto. |
2 |
Tree(TreeImages images) Costruisce un albero che utilizza il bundle di immagini specificato per le immagini. |
3 |
Tree(TreeImages images, boolean useLeafImages) Costruisce un albero che utilizza il bundle di immagini specificato per le immagini. |
Metodi di classe
Sr.No. | Nome e descrizione della funzione |
---|---|
1 |
void add(Widget widget) Aggiunge il widget come elemento della struttura ad albero principale. |
2 |
void addFocusListener(FocusListener listener) Aggiunge un'interfaccia listener per ricevere gli eventi del mouse. |
3 |
TreeItem addItem(java.lang.String itemText) Aggiunge un semplice elemento della struttura ad albero contenente il testo specificato. |
4 |
void addItem(TreeItem item) Aggiunge un elemento al livello principale di questo albero. |
5 |
TreeItem addItem(Widget widget) Aggiunge un nuovo elemento della struttura ad albero contenente il widget specificato. |
6 |
void addKeyboardListener(KeyboardListener listener) Aggiunge un'interfaccia di ascolto per ricevere gli eventi della tastiera. |
7 |
void addMouseListener(MouseListener listener) |
8 |
void addTreeListener(TreeListener listener) Aggiunge un'interfaccia listener per ricevere eventi ad albero. |
9 |
void clear() Cancella tutti gli elementi dell'albero dall'albero corrente. |
10 |
protected void doAttachChildren() Se un widget implementa HasWidgets, deve sovrascrivere questo metodo e chiamare onAttach () per ciascuno dei suoi widget figlio. |
11 |
protected void doDetachChildren() Se un widget implementa HasWidgets, deve sovrascrivere questo metodo e chiamare onDetach () per ciascuno dei suoi widget figlio. |
12 |
void ensureSelectedItemVisible() Assicura che l'elemento attualmente selezionato sia visibile, aprendo i suoi genitori e scorrendo l'albero secondo necessità. |
13 |
java.lang.String getImageBase() Deprecato. Usa Tree (TreeImages) in quanto fornisce un modo più efficiente e gestibile per fornire un set di immagini da utilizzare all'interno di un albero. |
14 |
TreeItem getItem(int index) Ottiene l'elemento della struttura ad albero di primo livello in corrispondenza dell'indice specificato. |
15 |
int getItemCount() Ottiene il numero di elementi contenuti nella radice di questo albero. |
16 |
TreeItem getSelectedItem() Ottiene l'elemento attualmente selezionato. |
17 |
int getTabIndex() Ottiene la posizione del widget nell'indice della scheda. |
18 |
boolean isAnimationEnabled() |
19 |
protected boolean isKeyboardNavigationEnabled(TreeItem currentItem) Indica se la navigazione da tastiera è abilitata per la struttura ad albero e per un determinato oggetto TreeItem. |
20 |
java.util.Iterator<Widget> iterator() Ottiene un iteratore per i widget contenuti. |
21 |
void onBrowserEvent(Event event) Attivato ogni volta che viene ricevuto un evento del browser. |
22 |
protected void onEnsureDebugId(java.lang.String baseID) Elementi interessati: -root = La radice TreeItem. |
23 |
protected void onLoad() Questo metodo viene chiamato immediatamente dopo che un widget viene allegato al documento del browser. |
24 |
boolean remove(Widget w) Rimuove un widget figlio. |
25 |
void removeFocusListener(FocusListener listener) Rimuove un'interfaccia listener aggiunta in precedenza. |
26 |
void removeItem(TreeItem item) Rimuove un elemento dal livello principale di questo albero. |
27 |
void removeItems() Rimuove tutti gli elementi dal livello principale di questo albero. |
28 |
void removeKeyboardListener(KeyboardListener listener) Rimuove un'interfaccia listener aggiunta in precedenza. |
29 |
void removeTreeListener(TreeListener listener) Rimuove un'interfaccia listener aggiunta in precedenza. |
30 |
void setAccessKey(char key) Imposta la "chiave di accesso" del widget. |
31 |
void setAnimationEnabled(boolean enable) Abilita o disabilita le animazioni. |
32 |
void setFocus(boolean focus) Metti a fuoco / sfoca esplicitamente questo widget. |
33 |
void setImageBase(java.lang.String baseUrl) Deprecato. Usa Tree (TreeImages) in quanto fornisce un modo più efficiente e gestibile per fornire un set di immagini da utilizzare all'interno di un albero. |
34 |
void setSelectedItem(TreeItem item) Seleziona un elemento specificato. |
35 |
void setSelectedItem(TreeItem item, boolean fireEvents) Seleziona un elemento specificato. |
36 |
void setTabIndex(int index) Imposta la posizione del widget nell'indice della scheda. |
37 |
java.util.Iterator<TreeItem> treeItemIterator() Iteratore degli elementi dell'albero. |
Metodi ereditati
Questa classe eredita i metodi dalle seguenti classi:
com.google.gwt.user.client.ui.UIObject
com.google.gwt.user.client.ui.Widget
java.lang.Object
Esempio di widget albero
Questo esempio ti guiderà attraverso semplici passaggi per mostrare l'utilizzo di un widget albero 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 il resto dei file invariato. |
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;
}
.gwt-Label {
font-weight: bold;
color: maroon;
}
.gwt-Tree .gwt-TreeItem {
padding: 1px 0px;
margin: 0px;
white-space: nowrap;
cursor: hand;
cursor: pointer;
}
.gwt-Tree .gwt-TreeItem-selected {
background: #ebeff9;
}
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>Tree 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 Albero.
package com.tutorialspoint.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Tree;
import com.google.gwt.user.client.ui.TreeItem;
import com.google.gwt.user.client.ui.VerticalPanel;
public class HelloWorld implements EntryPoint {
public void onModuleLoad() {
//create a label
final Label labelMessage = new Label();
labelMessage.setWidth("300");
// Create a root tree item as department
TreeItem department = new TreeItem("Department");
//create other tree items as department names
TreeItem salesDepartment = new TreeItem("Sales");
TreeItem marketingDepartment = new TreeItem("Marketing");
TreeItem manufacturingDepartment = new TreeItem("Manufacturing");
//create other tree items as employees
TreeItem employee1 = new TreeItem("Robert");
TreeItem employee2 = new TreeItem("Joe");
TreeItem employee3 = new TreeItem("Chris");
//add employees to sales department
salesDepartment.addItem(employee1);
salesDepartment.addItem(employee2);
salesDepartment.addItem(employee3);
//create other tree items as employees
TreeItem employee4 = new TreeItem("Mona");
TreeItem employee5 = new TreeItem("Tena");
//add employees to marketing department
marketingDepartment.addItem(employee4);
marketingDepartment.addItem(employee5);
//create other tree items as employees
TreeItem employee6 = new TreeItem("Rener");
TreeItem employee7 = new TreeItem("Linda");
//add employees to sales department
manufacturingDepartment.addItem(employee6);
manufacturingDepartment.addItem(employee7);
//add departments to department item
department.addItem(salesDepartment);
department.addItem(marketingDepartment);
department.addItem(manufacturingDepartment);
//create the tree
Tree tree = new Tree();
//add root item to the tree
tree.addItem(department);
tree.addSelectionHandler(new SelectionHandlerL<TreeItem>() {
@Override
public void onSelection(SelectionEvent<TreeItem> event) {
labelMessage.setText("Selected Value: "
+ event.getSelectedItem().getText());
}
});
// Add text boxes to the root panel.
VerticalPanel panel = new VerticalPanel();
panel.setSpacing(10);
panel.add(tree);
panel.add(labelMessage);
//add the tree to the root panel
RootPanel.get("gwtContainer").add(panel);
}
}
Una volta che sei pronto con tutte le modifiche apportate, 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:
La selezione di un qualsiasi valore nell'albero aggiornerà un messaggio sotto l'albero che mostra il valore selezionato.