package org.cloudgraph.web.model.demo;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.cloudgraph.web.model.graph.CommonNode;
import org.cloudgraph.web.model.graph.DynamicGraphTreeBean;
import org.cloudgraph.web.model.graph.GraphTreeNodeType;
import org.cloudgraph.web.model.graph.NodeLabelFormat;
import org.cloudgraph.web.model.tree.TreeNodeTypeMap;
import commonj.sdo.DataGraph;
public class GraphTreeBean extends DynamicGraphTreeBean {
private static Log log = LogFactory.getLog(GraphTreeBean.class);
public GraphTreeBean() {
// this initialization hack makes RichFaces tree find it's tree state and
// be happy and not blow up even though the tree is not yet displayed
}
public GraphTreeBean(DataGraph[] dataGraphs) {
try {
typeMap = new GraphModelTreeNodeTypeMap();
this.setLabelFormat(new NodeLabelFormat() {
public String getLabel(CommonNode node) {
return node.getLabel();
}
});
initTree(dataGraphs);
}
catch (Throwable t) {
log.error(t.getMessage(), t);
}
}
class GraphModelTreeNodeTypeMap implements TreeNodeTypeMap {
/**
* Returns a business logic specific node type given the taxonomy level. We skip
* a level where a link node within the generic taxonomy structure is expected.
*/
public String getTreeNodeType(int level) {
switch (level)
{
default: return GraphTreeNodeType.level_any.name();
}
}
}
}