package lectures.mvc.properties;
import util.annotations.WebDocuments;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import lectures.composite.objects_shapes_extra.ClassifiedObjectHolder;
import lectures.mvc.properties.atomic.APropertyListenerSupport;
import util.annotations.ComponentWidth;
import util.models.PropertyListenerRegisterer;
@WebDocuments({"Lectures/MvcProperties.pptx", "Lectures/MvcProperties.pdf", "Videos/MvcProperties.avi"})
public class AnObservableClassifiedObjectHolder implements PropertyListenerRegisterer, ClassifiedObjectHolder {
Object object;
String kind;
PropertyListenerSupport propertyListenerSupport = new APropertyListenerSupport();
@Override
public Object getObject() {
return object;
}
@Override
public void setObject(Object newVal) {
Object oldVal = object;
object = newVal;
propertyListenerSupport.notifyAllListeners(
new PropertyChangeEvent(this, "Object", oldVal, newVal));
}
@Override
@ComponentWidth(285)
public String getKind() {
return kind;
}
@Override
public void setKind(String newVal) {
String oldVal = kind;
kind = newVal;
propertyListenerSupport.notifyAllListeners(
new PropertyChangeEvent(this, "Kind", oldVal, newVal));
}
@Override
public void addPropertyChangeListener(PropertyChangeListener aListener) {
propertyListenerSupport.add(aListener);
}
}