package com.kolakcc.loljclient.model.swing;
import java.util.ArrayList;
import javax.swing.ComboBoxModel;
import javax.swing.event.ListDataListener;
import com.kolakcc.loljclient.model.ServerInfo;
import com.kolakcc.loljclient.util.Configuration;
import com.kolakcc.loljclient.util.RegionsXMLReader;
public class RegionsComboBoxModel implements ComboBoxModel<String> {
protected ArrayList<ServerInfo> regionList;
protected ServerInfo selectedRegion;
public RegionsComboBoxModel() {
this.regionList = RegionsXMLReader.getServerInfo();
//System.exit(0);
}
public ServerInfo getRegion(String abbreviation) {
for (ServerInfo region : regionList) {
if (region.getRegion().equals(abbreviation)) { return region; }
}
return null;
}
@Override
public void addListDataListener(ListDataListener l) {
}
@Override
public String getElementAt(int index) {
return this.regionList.get(index).getName();
}
@Override
public Object getSelectedItem() {
if (selectedRegion == null) {
for (ServerInfo info : regionList) {
if (info.getRegion().equals(Configuration.getDefaultRegion())) {
selectedRegion = info;
break;
}
}
if (selectedRegion == null) { selectedRegion = regionList.get(0); }
}
return this.selectedRegion.getName();
}
public ServerInfo getSelectedRegion() {
return this.selectedRegion;
}
@Override
public int getSize() {
return this.regionList.size();
}
@Override
public void removeListDataListener(ListDataListener l) {
}
@Override
public void setSelectedItem(Object anItem) {
String search = (String) anItem;
for (ServerInfo r : this.regionList) {
if (r.getName().equals(search)) {
this.selectedRegion = r;
}
}
}
}