diff -rc snipsnap-1.0b1-uttoxeter/src/org/snipsnap/render/macro/list/AtoZListFormatter.java snipsnap-1.0b1-rc/src/org/snipsnap/render/macro/list/AtoZListFormatter.java
*** snipsnap-1.0b1-uttoxeter/src/org/snipsnap/render/macro/list/AtoZListFormatter.java 2004-05-17 03:56:17.000000000 -0700
--- snipsnap-1.0b1-rc/src/org/snipsnap/render/macro/list/AtoZListFormatter.java 2004-12-29 01:08:20.000000000 -0800
***************
*** 24,29 ****
--- 24,32 ----
*/
package org.snipsnap.render.macro.list;
+ import org.snipsnap.snip.Snip;
+ import org.snipsnap.snip.SnipLink;
+
import java.io.IOException;
import java.io.Writer;
import java.util.Collection;
***************
*** 75,81 ****
}
String finalName = removeParents(name);
indexChar = finalName.substring(0, 1).toUpperCase();
! if (object instanceof Linkable) {
name = ((Linkable) object).getLink();
}
--- 78,86 ----
}
String finalName = removeParents(name);
indexChar = finalName.substring(0, 1).toUpperCase();
! if (object instanceof Snip) {
! name = SnipLink.formatSnipName((Snip) object);
! } else if (object instanceof Linkable) {
name = ((Linkable) object).getLink();
}
diff -rc snipsnap-1.0b1-uttoxeter/src/org/snipsnap/render/macro/list/CollationListFormatter.java snipsnap-1.0b1-rc/src/org/snipsnap/render/macro/list/CollationListFormatter.java
*** snipsnap-1.0b1-uttoxeter/src/org/snipsnap/render/macro/list/CollationListFormatter.java 2004-06-24 05:00:11.000000000 -0700
--- snipsnap-1.0b1-rc/src/org/snipsnap/render/macro/list/CollationListFormatter.java 2004-12-29 01:08:20.000000000 -0800
***************
*** 25,30 ****
--- 25,32 ----
package org.snipsnap.render.macro.list;
import org.radeox.util.i18n.ResourceManager;
+ import org.snipsnap.snip.Snip;
+ import org.snipsnap.snip.SnipLink;
import java.io.IOException;
import java.io.Writer;
***************
*** 85,91 ****
String finalName = removeParents(name);
indexChar = finalName.substring(0, 1).toUpperCase();
! if (object instanceof Linkable) {
name = ((Linkable) object).getLink();
}
--- 87,95 ----
String finalName = removeParents(name);
indexChar = finalName.substring(0, 1).toUpperCase();
! if (object instanceof Snip) {
! name = SnipLink.formatSnipName((Snip) object);
! } else if (object instanceof Linkable) {
name = ((Linkable) object).getLink();
}
diff -rc snipsnap-1.0b1-uttoxeter/src/org/snipsnap/render/macro/list/ExampleListFormatter.java snipsnap-1.0b1-rc/src/org/snipsnap/render/macro/list/ExampleListFormatter.java
*** snipsnap-1.0b1-uttoxeter/src/org/snipsnap/render/macro/list/ExampleListFormatter.java 2004-05-17 03:56:17.000000000 -0700
--- snipsnap-1.0b1-rc/src/org/snipsnap/render/macro/list/ExampleListFormatter.java 2004-12-29 01:08:20.000000000 -0800
***************
*** 24,29 ****
--- 24,32 ----
*/
package org.snipsnap.render.macro.list;
+ import org.snipsnap.snip.Snip;
+ import org.snipsnap.snip.SnipLink;
+
import java.io.IOException;
import java.io.Writer;
import java.util.Collection;
***************
*** 59,65 ****
while (nameIterator.hasNext()) {
writer.write("
");
Object object = nameIterator.next();
! if (object instanceof Linkable) {
writer.write(((Linkable) object).getLink());
} else if (object instanceof Nameable) {
writer.write(((Nameable) object).getName());
--- 62,70 ----
while (nameIterator.hasNext()) {
writer.write("");
Object object = nameIterator.next();
! if (object instanceof Snip) {
! writer.write(SnipLink.formatSnipName((Snip) object));
! } else if (object instanceof Linkable) {
writer.write(((Linkable) object).getLink());
} else if (object instanceof Nameable) {
writer.write(((Nameable) object).getName());
diff -rc snipsnap-1.0b1-uttoxeter/src/org/snipsnap/render/macro/list/SimpleList.java snipsnap-1.0b1-rc/src/org/snipsnap/render/macro/list/SimpleList.java
*** snipsnap-1.0b1-uttoxeter/src/org/snipsnap/render/macro/list/SimpleList.java 2004-05-17 03:56:17.000000000 -0700
--- snipsnap-1.0b1-rc/src/org/snipsnap/render/macro/list/SimpleList.java 2004-12-29 01:08:20.000000000 -0800
***************
*** 24,29 ****
--- 24,32 ----
*/
package org.snipsnap.render.macro.list;
+ import org.snipsnap.snip.Snip;
+ import org.snipsnap.snip.SnipLink;
+
import java.io.IOException;
import java.io.Writer;
import java.util.Collection;
***************
*** 56,62 ****
Iterator nameIterator = c.iterator();
while (nameIterator.hasNext()) {
Object object = nameIterator.next();
! if (object instanceof Linkable) {
writer.write(((Linkable) object).getLink());
} else if (object instanceof Nameable) {
writer.write(((Nameable) object).getName());
--- 59,67 ----
Iterator nameIterator = c.iterator();
while (nameIterator.hasNext()) {
Object object = nameIterator.next();
! if (object instanceof Snip) {
! writer.write(SnipLink.formatSnipName((Snip) object));
! } else if (object instanceof Linkable) {
writer.write(((Linkable) object).getLink());
} else if (object instanceof Nameable) {
writer.write(((Nameable) object).getName());
diff -rc snipsnap-1.0b1-uttoxeter/src/org/snipsnap/render/macro/list/VerticalListFormatter.java snipsnap-1.0b1-rc/src/org/snipsnap/render/macro/list/VerticalListFormatter.java
*** snipsnap-1.0b1-uttoxeter/src/org/snipsnap/render/macro/list/VerticalListFormatter.java 2004-06-24 05:24:16.000000000 -0700
--- snipsnap-1.0b1-rc/src/org/snipsnap/render/macro/list/VerticalListFormatter.java 2004-12-29 01:08:20.000000000 -0800
***************
*** 24,34 ****
*/
package org.snipsnap.render.macro.list;
- import org.snipsnap.container.Components;
import org.snipsnap.snip.Snip;
import org.snipsnap.snip.SnipLink;
- import org.snipsnap.snip.SnipSpace;
- import org.snipsnap.user.UserManagerFactory;
import java.io.IOException;
import java.io.Writer;
--- 24,31 ----
***************
*** 73,79 ****
Object object = nameIterator.next();
writer.write("");
if (object instanceof Snip) {
! formatSnipName(object, writer);
} else if (object instanceof Linkable) {
writer.write(((Linkable) object).getLink());
} else if (object instanceof Nameable) {
--- 70,76 ----
Object object = nameIterator.next();
writer.write("");
if (object instanceof Snip) {
! writer.write(SnipLink.formatSnipName((Snip) object));
} else if (object instanceof Linkable) {
writer.write(((Linkable) object).getLink());
} else if (object instanceof Nameable) {
***************
*** 90,123 ****
writer.write("");
return;
}
-
- private void formatSnipName(Object object, Writer writer) throws IOException {
- Snip snip = (Snip) object;
- String name = snip.getName();
- String realName = snip.getTitle();
- if (name.startsWith("comment-")) {
- int lastIndex = name.lastIndexOf("-");
- SnipSpace space = (SnipSpace) Components.getComponent(SnipSpace.class);
- Snip commentedSnip = space.load(name.substring(name.indexOf("-") + 1, lastIndex));
- realName = commentedSnip.getTitle();
- SnipLink.appendImage(writer, "Icon-Comment", "");
- writer.write(" ");
- SnipLink.appendLinkWithRoot(writer, SnipLink.getCommentsRoot(),
- SnipLink.encode(commentedSnip.getName()) + "#" + name, realName);
- //SnipLink.appendLink(writer, name, realName);
- writer.write(" (");
- SnipLink.appendLink(writer, snip.getCUser());
- writer.write(")");
- // @TODO replace with Type Snip check
- } else if (UserManagerFactory.getInstance().exists(name)) {
- SnipLink.appendImage(writer, "Icon-Person", "");
- writer.write(" ");
- SnipLink.appendLink(writer, ((Nameable) object).getName());
- //SnipLink.appendLinkWithRoot(writer, SnipLink.getCommentsRoot(), SnipLink.encode(realName) + "#" + name, realName);
- } else {
- SnipLink.appendImage(writer, "Icon-Snip", "");
- writer.write(" ");
- SnipLink.appendLink(writer, name, realName);
- }
- }
}
--- 87,90 ----
diff -rc snipsnap-1.0b1-uttoxeter/src/org/snipsnap/snip/SnipLink.java snipsnap-1.0b1-rc/src/org/snipsnap/snip/SnipLink.java
*** snipsnap-1.0b1-uttoxeter/src/org/snipsnap/snip/SnipLink.java 2004-05-17 03:56:18.000000000 -0700
--- snipsnap-1.0b1-rc/src/org/snipsnap/snip/SnipLink.java 2004-12-29 01:10:42.000000000 -0800
***************
*** 30,40 ****
--- 30,44 ----
import org.radeox.util.i18n.ResourceManager;
import org.snipsnap.app.Application;
import org.snipsnap.config.Configuration;
+ import org.snipsnap.container.Components;
import org.snipsnap.util.URLEncoderDecoder;
+ import org.snipsnap.snip.SnipSpace;
import org.snipsnap.snip.name.NameFormatter;
import org.snipsnap.snip.name.PathRemoveFormatter;
+ import org.snipsnap.user.UserManagerFactory;
import java.io.IOException;
+ import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.util.Arrays;
***************
*** 208,213 ****
--- 212,223 ----
private static List extensions = Arrays.asList(new String[]{"png", "jpg", "jpeg", "gif"});
+ public static void appendImage(StringBuffer buf, String name, String alt) throws IOException {
+ StringWriter writer = new StringWriter();
+ appendImage(writer, name, alt);
+ buf.append(writer.toString());
+ }
+
public static Writer appendImage(Writer writer, String name, String alt) throws IOException {
return appendImageWithRoot(writer, getImageRoot(), name, alt, "png", null);
}
***************
*** 220,225 ****
--- 230,278 ----
return appendImageWithRoot(writer, getSpaceRoot()+"/"+snip.getNameEncoded(), name, alt, ext, position);
}
+
+ /**
+ * Returns HTML that links to a snip. The snip's name is formatted
+ * appropriately based on its type, and may include an icon. Comments, users'
+ * home snips, and blog posts are handled specially.
+ *
+ * This code used to live in VerticalListFormatter.
+ *
+ * @param snip the snip
+ * @return HTML code with the snip's name, appropriate for viewing, linked to
+ * the snip itself
+ */
+ public static String formatSnipName(Snip snip) throws IOException {
+ StringBuffer buf = new StringBuffer();
+ String name = snip.getName();
+ String realName = snip.getTitle();
+ if (name.startsWith("comment-")) {
+ int lastIndex = name.lastIndexOf("-");
+ SnipSpace space = (SnipSpace) Components.getComponent(SnipSpace.class);
+ Snip commentedSnip = space.load(name.substring(name.indexOf("-") + 1, lastIndex));
+ realName = commentedSnip.getTitle();
+ appendImage(buf, "Icon-Comment", "");
+ buf.append(" ");
+ appendLinkWithRoot(buf, getCommentsRoot(),
+ encode(commentedSnip.getName()) + "#" + name, realName);
+ //appendLink(buf, name, realName);
+ buf.append(" (");
+ appendLink(buf, snip.getCUser());
+ buf.append(")");
+ // @TODO replace with Type Snip check
+ } else if (UserManagerFactory.getInstance().exists(name)) {
+ appendImage(buf, "Icon-Person", "");
+ buf.append(" ");
+ appendLink(buf, snip.getName());
+ //appendLinkWithRoot(writer, getCommentsRoot(), encode(realName) + "#" + name, realName);
+ } else {
+ appendImage(buf, "Icon-Snip", "");
+ buf.append(" ");
+ appendLink(buf, name, realName);
+ }
+ return buf.toString();
+ }
+
/**
* Append and image tag to a string buffer. Additionally takes an alternative text to display
* if the browser cannot display the image.