package app.navigps.gui.searchServices.swing; import app.database.odb.core.ServiceCore; import app.navigps.gui.svgComponents.DisplayObjects.ObjectService; import java.util.ArrayList; import java.util.Vector; import javax.swing.AbstractListModel; import org.neodatis.odb.OID; /** * * @author Grzegorz (wara) Warywoda */ public class ServiceListModel extends AbstractListModel{ private ArrayList<ServiceCore> arrayServices = new ArrayList<ServiceCore>(); public ServiceListModel(){ } public ServiceListModel(Vector<ServiceCore> vServiceCore){ setAllServices(vServiceCore); } @Override public int getSize() { return arrayServices.size(); } @Override public Object getElementAt(int index) { if(index>=0 && index<arrayServices.size()) return arrayServices.get(index); return "Bad array index "+index; } public void addServices(Vector<ServiceCore> vServiceCore){ if(vServiceCore == null) return; int lastIndex = arrayServices.size()-1; for (ServiceCore sc : vServiceCore) { if(!arrayServices.contains(sc)){ arrayServices.add(sc); } } int currentIndex = arrayServices.size()-1; fireContentsChanged(this, lastIndex,currentIndex); } public void setAllServices(Vector<ServiceCore> vServiceCore){ arrayServices.clear(); arrayServices.addAll(vServiceCore); fireContentsChanged(this, 0,arrayServices.size()-1); } public void removeElement(Object o){ if(o instanceof ServiceCore){ for (int i = 0; i < arrayServices.size(); i++) { if(getElementAt(i).equals(o)){ removeElementAt(i); } } }else if(o instanceof ObjectService){ removeElement( ((ObjectService)o).getOID()); } } public void removeElement(OID o){ for (int i = 0; i < arrayServices.size(); i++) { if( ((ServiceCore)getElementAt(i)).getOID().equals(o)){ removeElementAt(i); } } } public void removeElementAt(int index) { try{ arrayServices.remove(index); fireContentsChanged(this, index, index); }catch(IndexOutOfBoundsException e){} } public void removeAll(){ int index = arrayServices.size()-1; arrayServices.clear(); if(index >=0) fireContentsChanged(this, 0, index); } public boolean isEmpty(){ return arrayServices.isEmpty(); } @Override public String toString() { return arrayServices.toString(); } }