001 package org.apache.tapestry.scriptaculous;
002
003 import org.apache.tapestry.IMarkupWriter;
004 import org.apache.tapestry.IRequestCycle;
005
006 import java.util.Iterator;
007
008 /**
009 * Default implementation of {@link ListItemRenderer}. Simply displays
010 * the values of each object supplied by invoking toString(). Other more
011 * advanced renderers may add html content to the <code><li></code> elements or
012 * similarly advanced UI displays.
013 */
014 public class DefaultListItemRenderer implements ListItemRenderer {
015
016 /**
017 * Shared global instance default used by {@link Suggest} when no custom renderer
018 * is specified.
019 */
020 public static final ListItemRenderer SHARED_INSTANCE = new DefaultListItemRenderer();
021
022 /**
023 * {@inheritDoc}
024 */
025 public void renderList(IMarkupWriter writer, IRequestCycle cycle, Iterator values)
026 {
027 if (cycle.isRewinding())
028 return;
029
030 writer.begin("ul");
031
032 while (values.hasNext())
033 {
034 Object value = values.next();
035
036 if (value == null)
037 continue;
038
039 writer.begin("li");
040 writer.print(value.toString());
041 writer.end("li");
042 }
043
044 writer.end();
045 }
046 }