I solved the problem. The article which helped is here.
There’s a simple example of code.
You should create an inherited class AbstractCell and override the render method:
public class SimpleAbstractCell extends AbstractCell<String> { @Override public void render(Context context, String value, SafeHtmlBuilder sb) { /* * Always do a null check on the value. Cell widgets can pass null to * cells if the underlying data contains a null, or if the data arrives * out of order. */ if (value == null) { return; } SafeHtml safeValue = SafeHtmlUtils.fromTrustedString(value); sb.append(safeValue); } }
During creation a tree you should declare contentCell:
protected void createTree(TreeStore<ProjectExtended> treeStore) { ValueProvider<ProjectExtended, String> provider = new ValueProvider<ProjectExtended, String>() { @Override public void setValue(ProjectExtended object, String value) { } @Override public String getValue(ProjectExtended object) { if(object == null) return ""; if (!object.getActive()) { return "<span class=\"projectNotActive\">" + object.getName() + "</span> " + "<span class=\"dictIdText\"> ( " + object.getId() + " / " + object.getParentId() + " ) </span>"; } else { return object.getName() + "<span class=\"dictIdText\"> ( " + object.getId() + " / " + object.getParentId() + " ) </span>"; } } @Override public String getPath() { return "name"; } }; Tree<ProjectExtended, String> tree = new Tree<ProjectExtended, String>(treeStore, provider); tree.setCell(new SimpleAbstractCell()); tree.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); add(tree); }
That’s all. I hope it’ll be useful for smb.