}
@Override
public void encodeBegin(FacesContext facesContext, UIComponent component) throws IOException {
final UITreeNode node = (UITreeNode) component;
final UITreeMenu tree = ComponentUtils.findAncestor(node, UITreeMenu.class);
final boolean folder = node.isFolder();
final String id = node.getClientId(facesContext);
final int level = node.getLevel();
final boolean root = level == 0;
final boolean expanded = folder && node.isExpanded() || level == 0;
final boolean showRoot = tree.isShowRoot();
final boolean ie6
= VariableResolverUtils.resolveClientProperties(facesContext).getUserAgent().equals(UserAgent.MSIE_6_0);
// XXX todo: find a better way to determine the parentId
final String clientId = node.getClientId(facesContext);
final int colon = clientId.lastIndexOf(":");
final int underscore = clientId.substring(0, colon).lastIndexOf("_");
final String parentId = root ? null : clientId.substring(0, underscore) + clientId.substring(colon);
final TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);