/*
 * Created on 15/08/2004
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package com.fenalco.utilities.lists;

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

import com.fenalco.entities.Company;
import com.fenalco.entities.Supplier;
import com.fenalco.entities.SupplierList;


import com.fenalco.entities.DataAccess;
import java.util.Hashtable;

/**
 * @author Andrés
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class SupplierListViewSysManager implements ListView
{

    /**
     * El listado (modelo o documento)
     */    
    SupplierList supplierList;
    /**
     * 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 Supplier 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 SupplierListViewSysManager( SupplierList list )
	{
		supplierList = list;
		keys = supplierList.getSuppliers().elements();
	}

	/* (non-Javadoc)
	 * @see com.fenalco.utilities.lists.ListView#move()
	 */
	public boolean move()
	{
        boolean res = false;
        if( keys.hasMoreElements() )
        {
            actualKey = keys.nextElement();
            actualValue = ( Supplier )actualKey;
            
            valuesToShow = new Vector();
            count = 0;
                       
            // TODO: añadir información de la empresa a la clase Supplier
            // y mostrar la necesaria aqui
            
            // siempre el primer elemento que mando es el id del objeto (se use o no)
            valuesToShow.addElement( actualValue.getSupplierId() + "" );
            Company company = new Company(actualValue.getSupplierId());
            valuesToShow.addElement( company.getStatus() + "");
            valuesToShow.addElement( actualValue.getbillingType() + "");
            valuesToShow.addElement( actualValue.getSupplierName() );
            valuesToShow.addElement( company.getPhoneNumber1());

            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;
	}

	public static void main( String args[] )
	{
		SupplierListViewSysManager lol = new SupplierListViewSysManager(new SupplierList());
		
                ListView view = (ListView)lol;
                String cType="1";

					while(view.move())
                                        {
                                                System.out.println("dentro");
						int i=0;
						String id="";
                                                String status="";
                                                String data="";

						while((data=(String)view.nextElement()) != null){
							if((i>1 && cType.equals("1")) || (i>2 && cType.equals("2")) ){
						
                                                      }else if(i==1){ 
                                                            status=data;
                                                        }else if(i==0){
                                                            id=data;
                                                        }
                                                        i++;
						   }

                                                        Hashtable companyStatus = DataAccess.getCompanyStatus();
                                                        Enumeration keys=companyStatus.keys();
                                                        String temp2=null;
                                                        
                                                        while(keys.hasMoreElements()){
                                                            Object object1 = keys.nextElement();
                                                            temp2=object1.toString();
                                                            Object object2 = companyStatus.get(new Integer(temp2));
                                                            String statusName=object2.toString();
                                                            if(status.equals(temp2)){
                                                                    System.out.println(statusName);
                                                            }
                                                           }
                                                         if(cType.equals("2")){

                                                         }else{ 
                                                         }
                                            }
        }
        
}
// “Copyright (C) <2008> Multilateral Investment Fund of the Inter-American Development Bank.
// Este archivo es parte de <ICT4BUS-PVL>
// < ICT4BUS-PVL > es software libre: usted puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General GNU publicada por la Fundación para el Software Libre, ya sea la versión 3 de la Licencia, o (a su elección) cualquier versión posterior.
// < ICT4BUS-PVL > se distribuye con la esperanza de que sea útil, pero SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita MERCANTIL o de APTITUD PARA UN PROPÓSITO DETERMINADO. 
// Consulte los detalles de la Licencia Pública General GNU para obtener una información más detallada. 
// Debería haber recibido una copia de la Licencia Pública General GNU junto a este programa. En caso contrario, consulte http://www.gnu.org/licenses/.”