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     * Renderer used by {@link Suggest} component to render lists usable
010     * by the currently integrated
011     * <a href="http://wiki.script.aculo.us/scriptaculous/show/Ajax.Autocompleter">script.aculo.us</a>
012     * javascript library.
013     *
014     * <p/>This particular library expects the rendered contents of this class to
015     * be an unordered html list.
016     * <p/>
017     * <pre>
018     * &lt;ul&gt;
019     *   &lt;li&gt;Apple&lt;/li&gt;
020     *   &lt;li&gt;Apricot&lt;/li&gt;
021     * &lt;/ul&gt;
022     * </pre>
023     */
024    public interface ListItemRenderer {
025    
026        /**
027         * Renders an unordered html list to the response, using the specified
028         * collection of values as the contents to fill in the <pre><li></pre> elements
029         * with.
030         * 
031         * @param writer
032         *          Markup writer to write content in to.
033         * @param cycle
034         *          Current request cycle.
035         * @param values
036         *          Values used to render list.
037         */
038        public void renderList(IMarkupWriter writer, IRequestCycle cycle, Iterator values);
039    }
040