package cnp.ew.list;

import java.util.*;
import cnp.ew.util.*;
import cnp.ew.displayer.*;
import cnp.ew.converter.*;
import cnp.ew.properties.*;

public class CpVectorListModel extends CpDefaultObservable implements CpListModel
{
    Vector vector;

    public CpVectorListModel()
    {
    }

    public CpVectorListModel(Vector newVector)
    {
        setItems(newVector);
    }

    public void setItems(Vector newVector)
    {
        vector = newVector;
		notifyObservers(CpEvent.LISTMODEL_SET_ITEMS, null);
	}

    public Object getItem(int index)
    {
        return vector.elementAt(index);
    }

    public void setItem(int index, Object o)
    {
        vector.setElementAt(o, index);
    }

    public int getSize()
    {
        return vector.size();
    }

    public Object getProperty(int index, CpProperty property)
    {
        CpListItem item = (CpListItem)getItem(index);
        return item.getProperty(property);
    }

    public void setProperty(int index, CpProperty property, Object o)
    {
        CpListItem item = (CpListItem)getItem(index);
        item.setProperty(property, o);
    }

    public CpModelSelectableDisplayable getDisplayer(int index, CpProperty property)
    {
        return property.getType().getDefaultDisplayer();
    }

    public CpToStringConverter getConverter(int index, CpProperty property)
    {
        return property.getType().getDefaultConverter();
    }
}

