Bonjour,

J'aurai besoin d'un arbre qui lorsqu'on clique sur un de ses éléments, met à jour une Portlet.

Mais mon souci vient que je n'arrive pas à mettre à jour cette portlet sur l'action Click.
J'arrive à le mettre à jour lors de l'initialisation de l'arbre mais pas sur le handleEvent du Click

Voici mon code :

ArbreRecherche.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
public class ArbreRecherche extends LayoutContainer {
 
	public  Portlet portlet;
 
	public ArbreRecherche(Portlet port){
		super();
		this.portlet = port;
	}
 
	public void ajouterText(String text){
		System.out.println(text);
		this.portlet.addText(text); //rien d'ajouté
	}
 
	@Override
	protected void onRender(Element parent, int pos) {
		super.onRender(parent, pos);
 
		Tree tree = new Tree();
 
		TreeLoader loader = new BaseTreeLoader(new TreeModelReader());
		TreeStore<ModelData> store = new TreeStore<ModelData>(loader);
 
		this.portlet.addText("toto"); //là cela marche bien
 
		TreeBinder binder = new TreeBinder(tree, store);
		binder.setAutoLoad(true);
		binder.setDisplayProperty("name");
 
		Listener<TreeEvent> listenClick = new Listener<TreeEvent>(){
 
			public void handleEvent(TreeEvent be) {
				// TODO Auto-generated method stub
				System.out.println("ici : "+be.item.getText());
 
				ajouterText(be.item.getText());		
			}
 
		};
 
		tree.addListener(Events.OnClick, listenClick);
		//tree.addListener(1,listen);
 
		//Icone
		binder.setIconProvider(new ModelStringProvider() {
 
			public String getStringValue(ModelData model, String property) {
				if (((TreeModel) model).isLeaf()) {
					return "icon-music";
				}
				return null;
			}
		});
 
		loader.load(TestData.getTreeModel());
 
		//Champs texte
		StoreFilterField filter = new StoreFilterField<ModelData>() {
 
			@Override
			protected boolean doSelect(Store store, ModelData parent, ModelData record, String property, String filter) {
				// only match leaf nodes
				if (record instanceof Folder) {
					return false;
				}
				String name = record.get("name");
				name = name.toLowerCase();
				if (name.startsWith(filter.toLowerCase())) {
					return true;
				}
				return false;
			}
		};
 
		filter.bind(store);
 
		VerticalPanel panel = new VerticalPanel();
		panel.addStyleName("x-small-editor");
		panel.setSpacing(8);
 
		panel.add(new Html("<span class=text>Recherche :</span>"));
		panel.add(filter);
		panel.add(tree);
 
		add(panel);
	}
}
Classe Principale
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
    Portlet portlet = new Portlet();
    portlet.setHeading("Panel de test");
    configPanel(portlet);
    portal.add(portlet, 0);
 
    ContentPanel rechL = new ContentPanel();
    rechL.setHeading("Recherche par Liste");
    rechL.setBorders(false);
    rechL.setBodyStyle("fontSize: 12px; padding: 6px");
    rechL.add(new ArbreRecherche(portlet));
    west.add(rechL);
Si quelqu'un a la solution ou un petit lien qui pourrait m'aider ?

Merci bien
William