From: <die...@us...> - 2011-04-01 12:26:09
|
Revision: 3398 http://openutils.svn.sourceforge.net/openutils/?rev=3398&view=rev Author: diego_schivo Date: 2011-04-01 12:26:03 +0000 (Fri, 01 Apr 2011) Log Message: ----------- TAGCLOUD-13 customizable tags provider Modified Paths: -------------- trunk/openutils-mgnltagcloud/src/main/java/net/sourceforge/openutils/mgnltagcloud/dialog/TagCloudDialog.java Modified: trunk/openutils-mgnltagcloud/src/main/java/net/sourceforge/openutils/mgnltagcloud/dialog/TagCloudDialog.java =================================================================== --- trunk/openutils-mgnltagcloud/src/main/java/net/sourceforge/openutils/mgnltagcloud/dialog/TagCloudDialog.java 2011-04-01 10:45:17 UTC (rev 3397) +++ trunk/openutils-mgnltagcloud/src/main/java/net/sourceforge/openutils/mgnltagcloud/dialog/TagCloudDialog.java 2011-04-01 12:26:03 UTC (rev 3398) @@ -26,6 +26,7 @@ import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -56,6 +57,8 @@ */ private Logger log = LoggerFactory.getLogger(ConfiguredDialog.class); + private TagsProvider tagsProvider; + /** * {@inheritDoc} */ @@ -76,6 +79,32 @@ this.setConfig( "saveHandler", "net.sourceforge.openutils.mgnltagcloud.dialog.TagCloudDialogSafeMultivalueSaveHandler"); + + if (!StringUtils.isEmpty(getConfigValue("tagsProvider"))) + { + try + { + tagsProvider = (TagsProvider) Class.forName(getConfigValue("tagsProvider")).newInstance(); + } + catch (Exception e) + { + log.error("Failed to instantiate custom tags provider due to {}", e.getMessage()); + } + } + if (tagsProvider == null) + { + tagsProvider = new TagsProvider() + { + + /** + * {@inheritDoc} + */ + public Collection<String> provideTags(TagCloud tagCloud) + { + return tagCloud != null ? tagCloud.getTags().keySet() : Collections.<String> emptyList(); + } + }; + } } /** @@ -118,14 +147,9 @@ } TagCloud tagCloud = buildTagCloud(); - if (tagCloud == null) - { - parameters.put("configuredTagList", new String[]{}); - return; - } - Map<String, Map<String, Object>> tags = new HashMap<String, Map<String, Object>>(tagCloud.getTags().size()); - for (String key : tagCloud.getTags().keySet()) + Map<String, Map<String, Object>> tags = new HashMap<String, Map<String, Object>>(); + for (String key : tagsProvider.provideTags(tagCloud)) { Map<String, Object> values = new HashMap<String, Object>(2); values.put("selected", tagList.contains(key)); @@ -152,6 +176,12 @@ } + public interface TagsProvider + { + + Collection<String> provideTags(TagCloud tagCloud); + } + protected TagCloud buildTagCloud() { // Get configured node This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |