package uonlineeditor; import javax.swing.ComboBoxModel; import javax.swing.JComboBox; import javax.swing.event.ListDataListener; /** * * @author houjing */ public class Way { public int lid; public String desc = "Way"; public static final int TEXT = 0; public static final int LOCATION_ID = 1; JComboBox cb = new JComboBox(new ComboBoxModel() { @Override public void setSelectedItem(Object anItem) { lid = Areas.getLocationId(anItem); } @Override public Object getSelectedItem() { return Areas.getLocationById(lid); } @Override public int getSize() { if (MainFrame.getSelectedArea() == null || MainFrame.getSelectedArea().locs == null) return 0; return Areas.getLocations().size(); } @Override public Object getElementAt(int index) { return Areas.getLocations().get(index).getParameter(Location.TITLE); } @Override public void addListDataListener(ListDataListener l) { } @Override public void removeListDataListener(ListDataListener l) { } }); Way(int lid) { this.lid = lid; } Way(String s) { String sa[] = s.split("="); if (sa.length > 1) { desc = sa[0]; lid = Integer.parseInt(sa[1]); } } Way(String lid, String desc) { this.lid = Integer.parseInt(lid); this.desc = desc; } Object getParameter(int columnIndex) { switch (columnIndex) { case TEXT: return this.desc; case LOCATION_ID: return this.cb; default: return ""; } } void setParameter (Object value, int columnIndex) { switch (columnIndex) { case TEXT: this.desc = value.toString(); break; case LOCATION_ID: this.lid = Integer.parseInt(value.toString()); break; default: } } String AsData() { return ExtString.join( new String [] {desc, Integer.toString(lid)}, "="); } }