2010-08-22 1 views
2

Je me demandais si quelqu'un savait s'il était possible de supprimer le signe '+' qui apparaît à côté de l'élément racine dans un arbre GWT? Je n'ai pas vu de règle CSS pour le gérer. Peut-on remplacer le signe + par say, un GIF?Supprimer + (signe plus) à côté de la racine de l'arbre GWT Item

(Code Adapté de mode GWT ci-dessous, à titre d'illustration)

TreeItem racine = new TreeItem ("root"); // à supprimer + signe à côté de cet objet

root.addItem("item0"); 
    root.addItem("item1"); 
    root.addItem("item2"); 
    root.setState(true, true); 
    // 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); 

Répondre

7

Le style CSS ne s'applique pas du tout. Plutôt, il nécessite l'utilisation d'un constructeur différent pour l'arbre. Si vous définissez spacer.png à un PNG transparent 1x1, il supprimera les signes +. Voici le code complet que j'ai utilisé.

La bonne façon de le faire est la suivante:

public interface MyResources extends ClientBundle { 
     public static final MyResources INSTANCE = GWT.create(MyResources.class); 

     @Source("spacer.png") 
     public ImageResource leaf(); 


    } 


public class TreeImagesExample implements Tree.Resources 
{ 


    @Override 
    public ImageResource treeClosed() { 
     // TODO Auto-generated method stub 
     return MyResources.INSTANCE.leaf(); 
    } 

    @Override 
    public ImageResource treeLeaf() { 
     // TODO Auto-generated method stub 
     return MyResources.INSTANCE.leaf(); 
    } 

    @Override 
    public ImageResource treeOpen() { 
     // TODO Auto-generated method stub 
     return MyResources.INSTANCE.leaf(); 
    } 

} 

Main Function: 
    TreeImagesExample tx= new TreeImagesExample(); 
       Tree t = new Tree(tx); 
       t.addItem(root); 

Pour que cela fonctionne correctement, nous aurons également besoin d'un SelectionHandler, bien sûr, afin que nous puissions enregistrer les clics d'arbres sur les éléments d'arbre plutôt que les signes (maintenant inexistants) +.

+0

hey super ça marche ... –

0

Vous devez utiliser CSS pour remplacer l'image d'icône plus, qui est défini comme l'image d'arrière-plan de l'élément avec une gauche marge pour se déplacer le texte de celui-ci. L'élément racine n'a pas son propre style spécifique. Vous devrez donc ajouter un nom de style (c'est-à-dire, classe CSS) sur l'élément de l'arborescence et supprimer vous-même l'image d'arrière-plan, en CSS.

+0

J'ai essayé cette solution mais je n'ai pas réussi à la faire fonctionner, par ex. essayé: TreeItem root = new TreeItem ("Ma racine"); root.addStyleName ("clearBG"); et/ou root.setStyleName ("clearBG"); où clearBG est défini comme (spacer.png est un pixel transparent PNG): clearBG {\t background-image: url ('spacer.png'); \t} Est-ce que je fais quelque chose de mal? – user427897

+0

Essayez '.clearBg {background-image: none; ! important} ' –