import java.util.*; /** * EXTRACTS FROM JPModel, the data model for JabberPoint. * It keeps track of all the slides in the presentation. */ public class JPModel extends Observable { /** the Vector of Slides */ Vector show = new Vector(); /** The currently-displayed page */ int pageNumber = 0; /** Append a slide to the presentation */ public void append(Slide s) { show.addElement(s); } public Slide getPage() { return (Slide)show.elementAt(pageNumber); } /* Here are some methods used * in the Controller(s) to control * what part of the data the view displays: */ /** setPage(int pnum) sets the current * page(slide) and notifies all the view(s) * of the current page */ public void setPage(int i) { if (i<0 || i>=show.size()) throw new IllegalArgumentException(); pageNumber = i; // for the Observers (required!) setChanged(); // tell the observers the current page notifyObservers(getPage()); } /** Move to the previous page, unless * at beginning */ public void prevPage() { if (pageNumber > 0) setPage(pageNumber-1); } // nextPage() is the same but in reverse }