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 }