package lectures.inheritance;
import util.annotations.WebDocuments;
import java.util.Vector;

import lectures.arrays.collections_implementation.AStringHistory;
import util.models.VectorChangeEvent;
import util.models.VectorListener;
@WebDocuments({"Lectures/Inheritance.pptx", "Lectures/Inheritance.pdf", "Videos/Inheritance.avi"})
public class AnObservableStringHistory extends AStringHistory {
    Vector<VectorListener> listeners = new Vector();
    public void addVectorListener(VectorListener vectorListener) {
        listeners.addElement(vectorListener);
    }
    public void addElement(String element) {
        super.addElement(element);
        notifyListeners(new VectorChangeEvent(this, VectorChangeEvent.AddComponentEvent, size -1, null, element, size));        
    } 
    void notifyListeners (VectorChangeEvent event) {
        for (int i = 0; i < listeners.size(); i++) {
            listeners.elementAt(i).updateVector(event);
        }
        
    }
}