def browseTags(path="", filters=None, expanded=False):
	treeItems = []
	results = system.tag.browse(path, {} if filters == None else filters)
	
	if results != None and results.getResults() != None:
		for result in results.getResults():
			name = result["name"]
			if name != "_types_":
				treeItem = {"label":name, "expanded":expanded, "data":{"path":result["fullPath"], "hasChildren":False}}
				treeItem["items"] = []
				
				if result["hasChildren"]:
					treeItem["items"].append({"label":"Click to load...", "expanded":expanded, "data":{"path":result["fullPath"], "hasChildren":True}, "items":[], "icon":{"path":"material/hourglass_empty"}})
				
				treeItems.append(treeItem)
	
	return treeItems
	
def browseHistoryTags(path="", filters=None, expanded=False):
	treeItems = []
	results = system.tag.browseHistoricalTags(path, [] if filters == None else filters)
	
	if results != None and results.getResults() != None:
		for result in results.getResults():
			name = result.getPath().toString().replace(path, "").replace(":/", "").replace("/", "")
			treeItem = {"label":name, "expanded":expanded, "data":{"path":result.getPath().toString(), "hasChildren":False}}
			treeItem["items"] = []
							
			if result.hasChildren():
				treeItem["items"].append({"label":"Click to load...", "expanded":expanded, "data":{"path":result.getPath().toString(), "hasChildren":True}, "items":[], "icon":{"path":"material/hourglass_empty"}})
				
			treeItems.append(treeItem)
	
	return treeItems