@Override
public void execute(Environment env, @SuppressWarnings("rawtypes") Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body)
throws TemplateException, IOException
{
StringModel projectStringModel = (StringModel) params.get("project");
ProjectModel projectModel = (ProjectModel) projectStringModel.getWrappedObject();
String filename = projectModel.getRootFileModel().getPrettyPath();
TemplateBooleanModel recursiveBooleanModel = (TemplateBooleanModel) params.get("recursive");
boolean recursive = recursiveBooleanModel.getAsBoolean();
SimpleScalar elementIDStringModel = (SimpleScalar) params.get("elementID");
String elementID = elementIDStringModel.getAsString();
TypeReferenceService typeReferenceService = new TypeReferenceService(context);
Map<String, Integer> data = typeReferenceService.getPackageUseFrequencies(projectModel, 2, recursive);
if (data.keySet().size() > 0)
{
drawPie(env.getOut(), data, elementID);
}
else
{
Writer writer = env.getOut();
writer.append("<script type='text/javascript'>");
writer.append("$('#" + elementID + "').parent().remove()");
writer.append("</script>");
}
}