001    package org.util.html.objects;
002    
003    
004    import java.util.*;
005    import java.io.*;
006    import java.net.*;
007    import java.awt.*;
008    import java.awt.event.*;
009    import javax.swing.*;
010    import javax.swing.event.*;
011    
012    
013    import org.util.html.event.*;
014    
015    public class HTMLDocument {
016    
017        private URL url_;
018        private ArrayList<HTMLListener> listener_list_ = new ArrayList<HTMLListener>();
019        private ArrayList<HTMLObject> object_list_ = new ArrayList<HTMLObject>();
020    
021        public HTMLDocument() {
022        }
023    
024        public void clear() {
025            url_ = null;
026            object_list_.clear();
027            for(HTMLListener listener : listener_list_)
028                listener.cleared(this);
029        }
030    
031        public void add(HTMLObject obj) {
032            object_list_.add(obj);
033            for(HTMLListener listener : listener_list_)
034                listener.added(this, obj);
035        }
036    
037        public void changed(HTMLObject obj){
038            for(HTMLListener listener : listener_list_)
039                listener.changed(this, obj);
040        }
041    
042        public HTMLObject[] getObjectList() {
043            return object_list_.toArray(new HTMLObject[0]);
044        }
045    
046        public void setDocumentBase(URL url) {
047            url_ = url;
048            for(HTMLListener listener : listener_list_)
049                listener.changed(this, null);
050        }
051    
052        public URL getDocumentBase() {
053            return url_;
054        }
055    
056        public void addHTMLListener(HTMLListener listener) {
057            listener_list_.add(listener);
058        }
059        public void removeHTMLListener(HTMLListener listener) {
060            listener_list_.remove(listener);
061        }
062    }