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);
}
} |
Partager