/** * */ package tml.vectorspace.operations.visualizations; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import tml.vectorspace.operations.results.TagCloudsResult; /** * @author Jorge * */ public class TagClouds extends AbstractVisualization { private int maxSizePixels = 24; private int maxResults = 50; public int getMaxSizePixels() { return maxSizePixels; } public void setMaxSizePixels(int maxSizePixels) { this.maxSizePixels = maxSizePixels; } @SuppressWarnings("unchecked") @Override public String getHTML() { List<TagCloudsResult> newResults = new ArrayList<TagCloudsResult>(); int i=0; for(TagCloudsResult result : (List<TagCloudsResult>) operation.getResults()) { newResults.add(result); i++; if(i>maxResults) break; } Collections.sort(newResults,new Comparator<TagCloudsResult>() { @Override public int compare(TagCloudsResult o1, TagCloudsResult o2) { return o1.getTerm().compareTo(o2.getTerm()); } }); StringBuffer buffer = new StringBuffer(); buffer.append("<div class=\"tml-tagcloud\">"); for(TagCloudsResult result : newResults) { buffer.append("<font size=\"" + calculateSize(result.getWeight()) + "\">"); buffer.append(result.getTerm()); buffer.append("</font> "); } buffer.append("</div>"); return buffer.toString(); } private int calculateSize(double weight) { double size = (double) maxSizePixels; size = size * weight; return (int) size; } }