package org.agilejava.icustomer.web.util; import java.util.Map; import javax.faces.component.UIComponent; import org.apache.myfaces.custom.tree2.HtmlTree; import org.apache.myfaces.shared_impl.renderkit.JSFAttr; import com.sun.facelets.FaceletContext; import com.sun.facelets.tag.MetaRuleset; import com.sun.facelets.tag.jsf.ComponentConfig; import com.sun.facelets.tag.jsf.ComponentHandler; public class Tree2TagHandler extends ComponentHandler { public Tree2TagHandler(ComponentConfig cfg) { super(cfg); } protected void onComponentCreated(FaceletContext ctx, UIComponent c, UIComponent parent) { super.onComponentCreated(ctx, c, parent); HtmlTree component = (HtmlTree)c; Map attrs = component.getAttributes(); ensureBoolean(attrs, JSFAttr.SHOW_NAV); ensureBoolean(attrs, JSFAttr.SHOW_LINES); ensureBoolean(attrs, JSFAttr.CLIENT_SIDE_TOGGLE); ensureBoolean(attrs, JSFAttr.SHOW_ROOT_NODE); ensureBoolean(attrs, JSFAttr.PRESERVE_TOGGLE); } private void ensureBoolean(Map attributes, String attrName) { Object value = attributes.get(attrName); if (value == null || !(value instanceof String)) return; attributes.put(attrName, Boolean.valueOf((String)value)); } protected MetaRuleset createMetaRuleset(Class type) { return super.createMetaRuleset(type) .alias("showNav", JSFAttr.SHOW_NAV) .alias("showLines", JSFAttr.SHOW_LINES) .alias("clientSideToggle", JSFAttr.CLIENT_SIDE_TOGGLE) .alias("showRootNode", JSFAttr.SHOW_ROOT_NODE) .alias("preserveToggle", JSFAttr.PRESERVE_TOGGLE); } }