1 25 26 package org.snipsnap.render.macro; 27 28 import org.snipsnap.render.macro.parameter.SnipMacroParameter; 29 import org.snipsnap.render.context.SnipRenderContext; 30 import org.snipsnap.snip.Snip; 31 import org.snipsnap.snip.SnipLink; 32 import org.radeox.util.i18n.ResourceManager; 33 34 import java.io.IOException ; 35 import java.io.Writer ; 36 import java.text.MessageFormat ; 37 import java.util.ResourceBundle ; 38 39 46 47 public class AnchorMacro extends SnipMacro { 48 49 public AnchorMacro() { 50 } 51 52 public String getName() { 53 return "anchor"; 54 } 55 56 public String getDescription() { 57 return ResourceManager.getString("i18n.messages", "macro.anchor.description"); 58 } 59 60 public String [] getParamDescription() { 61 return ResourceManager.getString("i18n.messages", "macro.anchor.params").split(";"); 62 } 63 64 public void execute(Writer writer, SnipMacroParameter params) 65 throws IllegalArgumentException , IOException { 66 67 if (params.getLength() == 1) { 68 String anchor = params.get("0").replace(' ', '_'); 69 writer.write("<a name=\""); 70 writer.write(anchor); 71 writer.write("\"/>"); 72 writer.write("<a HREF=\""); 73 Snip snip = params.getSnipRenderContext().getSnip(); 74 if (null != snip) { 75 SnipLink.appendUrl(writer, snip.getName(), anchor); 76 } else { 77 SnipLink.appendUrl(writer, "", anchor); 78 } 79 writer.write("\" title=\""); 80 MessageFormat mf = new MessageFormat (ResourceManager.getString("i18n.messages", "macro.anchor.permalink")); 81 writer.write(mf.format(new Object [] { anchor })); 82 writer.write("\">"); 83 SnipLink.appendImage(writer, "Icon-Permalink", ""); 84 writer.write("</a>"); 85 } 86 return; 87 } 88 } 89 | Popular Tags |