/** * Set the given view to be the current view. Fire a contentsChanged() event to registered view * listeners. Throw an exception if the view is not known. */ public void setCurrentView(View v) { if ((v != null) && !_views.contains(v)) { throw new IllegalArgumentException("View " + v + " is not known by application " + this); } _views.setSelectedItem(v); }
/** * Add a document to the list of documents currently known by this application. Fire a document * list event to registered listeners. Throw an exception if the document is already in the list * of documents. */ public void addDocument(Document d) { if (_documents.contains(d)) { throw new IllegalArgumentException( "Document " + d + " is already known by application " + this); } _documents.addElement(d); }
/** * Remove a view from the list of views currently known by this application. Fire a list data * event to registered view listeners. If the removed view is the current view it is up to the * application to decide which view to display next. Throw an exception if the view is not known. */ public void removeView(View v) { if (!_views.contains(v)) { throw new IllegalArgumentException("View " + v + " is not known by application " + this); } _views.removeElement(v); List views = (List) _documentMap.get(v.getDocument()); if (views != null) { views.remove(v); } }
/** * Add a view to the list of views currently known by this application. Fire a view list event to * registered listeners. Throw an exception if the view is already in the list of views. */ public void addView(View v) { if (_views.contains(v)) { throw new IllegalArgumentException("View " + v + " is already known by application " + this); } List l = (List) _documentMap.get(v.getDocument()); if (l == null) { l = new LinkedList(); _documentMap.put(v.getDocument(), l); } l.add(v); _views.addElement(v); }
/** * Remove a document from the list of documents currently known by this application, and remove * all of the views associated with this document. Fire a list data event to registered document * listeners. Throw an exception if the document is not known. */ public void removeDocument(Document d) { if (!_documents.contains(d)) { throw new IllegalArgumentException("Document " + d + " is not known by application " + this); } _documents.removeElement(d); List views = (List) _documentMap.get(d); for (Iterator i = views.iterator(); i.hasNext(); ) { View v = (View) i.next(); i.remove(); removeView(v); } _documentMap.remove(d); }
/** Get a list of all view objects known by this application. */ public List viewList() { return _views.getList(); }
/** Remove a view list listener from this application. */ public void removeViewListener(ListDataListener listener) { _views.removeListDataListener(listener); }
/** Remove a document list listener from this application. */ public void removeDocumentListener(ListDataListener listener) { _documents.removeListDataListener(listener); }
/** * Get the current view. Generally, this will be the one that is displayed in the window that is * top-most in the display. */ public View getCurrentView() { return (View) _views.getSelectedItem(); }
/** Get list of all document objects known by this application. */ public List documentList() { return _documents.getList(); }
/** * Add a view listener to this application. The view listener is in fact a ListDataListener, which * will be notified with intervalAdded() and intervalRemoved() events when views are added or * removed, and with a contentsChanged() event when the current view is changed. */ public void addViewListener(ListDataListener listener) { _views.addListDataListener(listener); }
/** * Add a document listener to this application. The document listener is in fact a * ListDataListener, which will be notified with intervalAdded() and intervalRemoved() events when * documents are added or removed, and with a contentsChanged() event when the current document is * changed. */ public void addDocumentListener(ListDataListener listener) { _documents.addListDataListener(listener); }