package uonlineeditor;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
*
* @author houjing
*/
public class Locations {
public ArrayList<Location> locs = new ArrayList<>();
public int areaId;
public Integer lastId = 0;
public int selected = -1;
Locations (int areaId) {
this.areaId = areaId;
}
Locations (List<String[]> locs) {
for (Iterator<String[]> it = locs.iterator(); it.hasNext();) {
Location l = new Location(it.next());
lastId = Math.max(lastId, l.id);
this.locs.add(l);
}
}
static List<String[]> asData(List<Location> ll) {
List<String[]> csv = new ArrayList<>();
for(Location l: ll) {
csv.add(l.asData());
}
return csv;
}
int getIndexOf(Object obj, int param) {
for (int i = 0; i < locs.size(); i++) {
if (locs.get(i).getParameter(param) == obj) {
return i;
}
}
return -1;
}
Location getSelected() {
if (selected == -1 || selected > locs.size() - 1) return null;
return locs.get(selected);
}
void addLocation() {
if (selected == -1 || selected > locs.size() - 1) {
locs.add(new Location(areaId, ++Areas.lastLocId));
selected = 0;
}
else if (locs.size() == selected + 1) {
locs.add(new Location(areaId, ++Areas.lastLocId));
selected = locs.size()-1;
}
else {
locs.add(selected + 1, new Location(areaId, ++Areas.lastLocId));
selected = selected + 1;
}
}
void removeLocation() {
if(selected == -1) return;
locs.remove(selected);
selected--;
if(selected == -1 && !locs.isEmpty()) selected=0;
}
}