FileDocCategorySizeDatePackage
UsernameSuggestAction.javaAPI DocExample2229Wed Apr 05 20:04:52 BST 2006com.oreilly.ajax

UsernameSuggestAction.java

package com.oreilly.ajax;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

import javax.servlet.http.HttpServletRequest;

import fr.improve.struts.taglib.layout.suggest.SuggestAction;

public class UsernameSuggestAction extends SuggestAction {
  

    private static Collection getUserSuggestions()
    {
        
        ArrayList arrayList = null;
        Connection con = DatabaseConnector.getConnection();
        try
        {
            Statement statement = con.createStatement();
 
            String sqlString = "select username from users;";
            ResultSet resultSet = statement.executeQuery(sqlString);
            arrayList = new ArrayList();
            while (resultSet.next())
            {
                arrayList.add(resultSet.getString(1));
            }
        }
        catch (Exception e)
        {
            System.out.println("exception caught getting usernames");

        }
        finally
        {
            if (con != null)
            {
                try
                {
                    con.close();
                }
                catch (SQLException e)
                {
                }
            }
        }
        return arrayList;

    }
    public Collection getSuggestionList(HttpServletRequest in_request, 
            String in_word) {
        
        // Get all the user names
        Collection usernames = getUserSuggestions();
        
        // Start to build the suggestions list
        ArrayList suggestions = new ArrayList();
        
        if (in_word != null && in_word.length() > 0)
        {
            Iterator iter = usernames.iterator();
            
            while(iter.hasNext())
            {
                String currentWord = (String) iter.next();
                
                if(currentWord.toLowerCase().startsWith(in_word.toLowerCase()))
                    suggestions.add(currentWord);
            }
        }
        
        return suggestions;
    }
    
}