Je crée un arbre GWT et je voudrais qu'il soit initialement affiché avec des noeuds ouverts. Prenons la norme Tree example from GWT javadocs:Afficher les noeuds ouverts dans un arbre GWT
public class TreeExample implements EntryPoint {
public void onModuleLoad() {
// Create a tree with a few items in it.
TreeItem root = new TreeItem("root");
root.addItem("item0");
root.addItem("item1");
root.addItem("item2");
// Add a CheckBox to the tree
TreeItem item = new TreeItem(new CheckBox("item3"));
root.addItem(item);
Tree t = new Tree();
t.addItem(root);
// Add it to the root panel.
RootPanel.get().add(t);
}
}
Je veux d'abord affiché comme:
root item0 item1 item2 item3
Maintenant, je pensais qu'il était aussi simple que de l'état de la TreeItem
que je veux être ouvert par appeler setState(true)
: javadoc pour setState
indique "Définit si les enfants de cet élément sont affichés". Cependant, si j'ajoute par exemple
root.setState(true);
à l'exemple ci-dessus, je n'obtiens pas l'effet attendu. Apparemment, rien ne change quand je fais root.setState(true);
ou root.setState(false);
: l'arbre est toujours affiché avec ses nœuds fermés.
Comment obtenir le comportement souhaité?
Juste après avoir posté la question j'ai trouvé un moyen de faire presque ce que je veux: Je dois appeler 't.setSelectedItem (item);' pour sélectionner un élément sous le nœud racine, puis appeler 't.ensureSelectedItemVisible() ; ', qui" garantit que l'élément actuellement sélectionné est visible, ouvre ses parents et fait défiler l'arbre si nécessaire ". Existe-t-il un autre moyen de le faire sans sélectionner explicitement un élément? – MarcoS
'root.setState (true)' fonctionne bien pour moi (GWT 2.0.4 et FF). Pouvez-vous nous donner des informations sur la version et le navigateur? – z00bs
J'utilise GWT 2.0.3 et Firefox 3.6.10. Serait-ce un bug dans GWT 2.0.3? – MarcoS