Cloud Software Group, Inc. EBX®
Data Model and Data Visualization Add-on Documentation > Developer Guide > Customizing graph nodes
Navigation modeData Model and Data Visualization Add-on Documentation > Developer Guide > Customizing graph nodes

Using a node value renderer

You can create a class that implements NodeValueRenderer if you want to customize the elements of a NodeValueTemplate based on node data. When you declare the getValue() method, you can use NodeTemplateContext to retrieve current node data. See the following example implementation:

class SourcePictureRenderer implements NodeValueRenderer
{
	@Override
	public String getValue(NodeTemplateContext context)
	{
		String countryCode = (String) context.getNodeContext()
		.getNode()
		.getRecord()
		.get(Path.parse("/country_code"));
		if(StringUtils.isEmpty(countryCode))
		{
			return "";
		}
		switch (countryCode)
		{
			case "fr":
				return "/common/icons/french_flag.png"
			case "vn":
				return "/common/icons/vietnam_flag.png"
			case "us"
				return "/common/icons/usa_flag.png"
			default:
				return "";
		}
	}
}

Once created, you can pass the class to certain template element methods:

The following shows how the example NodeValueRenderer above can be passed to a setBindingSource() method to retrieve an image:

NodeImage avatar = new NodeImage();
avatar.setBindingSource(new SourcePictureRenderer())