Would be great to see different methods for searching nodes in TreeModel. Like:
/** * Searches for the first node that contains a specified object as its data. * * @param data the data to find its enclosing tree node * @return the first tree node that contains the specified data or {@code null} if there are no nodes that contain such data * @see org.zkoss.zul.TreeNode#getData() */ public TreeNode<E> find(E data);
And other methods like this one, it's very handy to have such methods directly in the TreeModel.