package tim.prune.gui; import java.util.ArrayList; import javax.swing.AbstractListModel; import tim.prune.data.DataPoint; import tim.prune.data.Track; /** * Class to act as list model for the waypoint list */ public class WaypointListModel extends AbstractListModel { Track _track = null; ArrayList _waypoints = null; /** * Constructor giving Track object * @param inTrack Track object */ public WaypointListModel(Track inTrack) { _track = inTrack; _waypoints = new ArrayList(); _track.getWaypoints(_waypoints); } /** * @see javax.swing.ListModel#getSize() */ public int getSize() { return _waypoints.size(); } /** * @see javax.swing.ListModel#getElementAt(int) */ public String getElementAt(int inIndex) { DataPoint p = null; if (inIndex < 0 || inIndex >= getSize() || _waypoints == null || (p = _waypoints.get(inIndex)) == null) return ""; return p.getWaypointName(); } /** * Get the waypoint at the given index * @param inIndex index number, starting at 0 * @return DataPoint object */ public DataPoint getWaypoint(int inIndex) { return _waypoints.get(inIndex); } /** * Fire event to notify that contents have changed */ public void fireChanged() { _track.getWaypoints(_waypoints); this.fireContentsChanged(this, 0, getSize()-1); } }