1 25 26 package org.snipsnap.render.macro; 27 28 import org.radeox.util.logging.Logger; 29 import org.radeox.util.i18n.ResourceManager; 30 import org.snipsnap.render.macro.parameter.SnipMacroParameter; 31 import org.snipsnap.xmlrpc.SnipSnapPing; 32 33 import java.io.IOException ; 34 import java.io.Writer ; 35 import java.util.Collection ; 36 37 44 45 public class RecentWeblogMacro extends ListOutputMacro { 46 public String getName() { 47 return "recent-weblog"; 48 } 49 50 public String getDescription() { 51 return ResourceManager.getString("i18n.messages", "macro.weblogs.description"); 52 } 53 54 public String [] getParamDescription() { 55 return ResourceManager.getString("i18n.messages", "macro.weblogs.params").split(";"); 56 } 57 58 public void execute(Writer writer, SnipMacroParameter params) 59 throws IllegalArgumentException , IOException { 60 String type = "Vertical"; 61 boolean showSize = false; 62 int length = 10; 63 if (params != null) { 64 if (params.getLength() > 0) { 65 type = params.get("0"); 66 } 67 if (params.getLength() > 1) { 68 try { 69 length = Integer.parseInt(params.get("1")); 70 } catch (NumberFormatException e) { 71 Logger.warn("RecentWeblogMacro: illegal parameter count='" + params.get("1") + "'"); 72 } 73 } 74 } 75 76 if (params == null || params.getLength() <= 2) { 77 Collection c = SnipSnapPing.getInstance().getChanged(length); 78 output(writer, params.getSnipRenderContext().getSnip(), 79 ResourceManager.getString("i18n.messages", "macro.weblogs.title"), 80 c, ResourceManager.getString("i18n.messages", "macro.weblogs.nochanges"), 81 type, showSize); 82 } else { 83 throw new IllegalArgumentException ("Number of arguments does not match"); 84 } 85 } 86 } 87 | Popular Tags |