/* * MapPanelDataModel.java * * Created on June 11, 2007, 1:49 PM */ package editor; import eug.specific.eu3.EU3DataSource; import eug.specific.eu3.EU3History; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; /** * * @author Michael Myers */ public class MapPanelDataModel implements java.io.Serializable { private static final long serialVersionUID = 1L; // TODO: Perhaps an abstract superclass should be extracted? private final ProvinceData provinceData; private final MapData mapData; private EU3DataSource dataSource; private String date; /** Creates a new instance of MapPanelDataModel */ public MapPanelDataModel(final MapData data) { this(data, null); } public MapPanelDataModel(final MapData data, final EU3DataSource source) { provinceData = Main.provinceData; mapData = data; dataSource = source; } public ProvinceData getProvinceData() { return provinceData; } public MapData getMapData() { return mapData; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public void setDataSource(EU3DataSource source) { this.dataSource = source; } public EU3DataSource getDataSource() { return dataSource; } public void preloadProvs() { dataSource.preloadProvinces(Main.map.getFirstSeaProv()); } public void preloadCountries() { dataSource.preloadCountries(); } public List<String> isCoreOf(int provId, String date) { return EU3History.isCoreOf(dataSource.getProvinceHistory(provId), date); } public List<String> isCoreOf(int provId) { return isCoreOf(provId, date); } public String getHistString(int provId, String name) { return EU3History.getHistString(dataSource.getProvinceHistory(provId), name, date); } public List<String> getHistStrings(int provId, String name) { return EU3History.getHistStrings(dataSource.getProvinceHistory(provId), name, date); } public String getHistString(String tag, String name) { return EU3History.getHistString(dataSource.getCountryHistory(tag), name, date); } public List<String> getHistStrings(String tag, String name) { return EU3History.getHistStrings(dataSource.getCountryHistory(tag), name, date); } public List<String> getCountries() { return getCountries(date); } public List<String> getCountries(String date) { final java.util.Map<String, Object> ret = new HashMap<String, Object>(); for (Integer id : Main.map.getLandProvs()) { ProvinceData.Province p = provinceData.getProvByID(id); String owner = EU3History.getHistString(dataSource.getProvince(p.getId()), "owner", date); if (owner == null || owner.length() == 0 || owner.equals("none") || owner.equals("XXX")) { continue; } else { ret.put(Text.getText(owner), null); } } final List<String> list = new ArrayList<String>(ret.keySet()); Collections.sort(list); return list; } public List<String> getTags() { return getTags(date); } public List<String> getTags(String date) { final java.util.Map<String, Object> ret = new HashMap<String, Object>(); for (Integer id : Main.map.getLandProvs()) { ProvinceData.Province p = provinceData.getProvByID(id); String owner = EU3History.getHistString(dataSource.getProvince(p.getId()), "owner", date); if (owner == null || owner.length() == 0 || owner.equals("none") || owner.equals("XXX")) { continue; } else { ret.put(owner, null); } } final List<String> list = new ArrayList<String>(ret.keySet()); Collections.sort(list); return list; } public List<Integer[]> getLinesInProv(int provId) { return mapData.getLinesInProv(provinceData.getProvByID(provId).getColor()); } }