/*
 * HelpItemView.java
 *
 * Created on 20 de septiembre de 2004, 12:41 PM
 */

package com.fenalco.utilities.lists;

import java.util.Enumeration;
import java.util.Vector;

import com.fenalco.entities.HelpItem;
import com.fenalco.entities.HelpItemList;
/**
 *Esta clase representa la vista de los items  que conforman la ayuda
 * @author  Mario Linares Vásquez
 */
public class HelpItemListView {
    
    /**
	 * El listado (modelo o documento)
	 */
	HelpItemList itemsList;

	/**
	 * Como el listado es un hashtable, aqui almaceno los keys
	 */
	private Enumeration keys;

	/**
	 * La llave actual que se está trabajando, se usa para tener acceso a los
	 * objetos que se deben mostrar de ese elemento de la lista
	 */
	private Object actualKey;

	/**
	 * valor actual en el que se está trabajando, es decir, la fila actual de la
	 * lista
	 */
	private HelpItem actualValue;

	/**
	 * aqui se almacenan los datos que se van a mostrar en las diferentes
	 * columnas de la lista
	 */
	private Vector valuesToShow;

	/**
	 * contador que indica en que columna voy
	 */
	private int count;

	public HelpItemListView( HelpItemList list )
	{
		itemsList = list;
		keys = itemsList.getItems().keys();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.fenalco.utilities.lists.ListView#move()
	 */
	public boolean move( )
	{
        boolean res = false;
        if( keys.hasMoreElements() )
        {
            actualKey = keys.nextElement();
            actualValue = ( HelpItem )itemsList.getItems().get( actualKey );
            
            valuesToShow = new Vector();
            count = 0;
            
            // siempre el primer elemento que mando es el id del objeto (se use o no)
            valuesToShow.addElement( actualValue.getId() + "" );
            valuesToShow.addElement( actualValue.getPageUrl()+ "" );
            
            res = true;
        }
        return res;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.fenalco.utilities.lists.ListView#nextElement()
	 */
	public Object nextElement( )
	{
        Object res = null;
        if( valuesToShow != null && valuesToShow.size() > 0)
        {
            if( count < valuesToShow.size() )
            {
                res = valuesToShow.elementAt( count++ );
            }
        }
        return res;
	}

    
}
