private String showNode(TreeNode node, boolean[] hasBar){
	StringBuffer text =  new StringBuffer();	

	for(int i=0; i < (node.level - 1); i++)
	    if(hasBar[i])
		text.append("  |       ");
	    else
		text.append("          ");

	if(node.level != 0)
	    text.append("  |------ ");
	text.append(node.value+"("+node.level+")"+"["+node.context+"]\n");

	if(node.children != null)
	    for(int i=0; i < node.children.size(); i++){
		boolean[] newBar = new boolean[node.level+1];
		int lvl = node.level;

		if(hasBar != null)
		    for(int j=0; j < lvl; j++)
			newBar[j] = hasBar[j];
		
		if((i == (node.children.size()-1)))
		    newBar[lvl] = false;
		else
		    newBar[lvl] = true;

		text.append(showNode((TreeNode)node.children.elementAt(i), newBar));		
	    }
	
	return text.toString();
    }