package net.ms.designer.editors.enumcomponentdetail.model;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class Element implements Serializable
{
public static final String PRO_FIGURE = "__figure__property";
public static final String PRO_CHILD = "__child__property";
protected PropertyChangeSupport support = new PropertyChangeSupport(this);
protected Element parent;
protected List children;
public Element getParent()
{
return parent;
}
public void setParent(Element parent)
{
this.parent = parent;
}
public List getChildren()
{
if(children == null) children = new ArrayList();
return children;
}
public void setChildren(List children)
{
this.children = children;
}
public void addChild(Element child)
{
addChild(-1,child);
}
public void addChild(int index , Element child)
{
if(index == -1)
{
getChildren().add(child);
}
else
{
getChildren().add(index,child);
}
child.setParent(this);
this.fireChildenChange(child);
}
public void removeChild(Element child)
{
child.setParent(null);
getChildren().remove(child);
this.fireChildenChange(child);
}
public void addPropertyChangeListener(PropertyChangeListener l)
{
support.addPropertyChangeListener(l);
}
public void removePropertyChangeListener(PropertyChangeListener l)
{
support.removePropertyChangeListener(l);
}
public void fireFigurePropertyChange(Object old,Object now)
{
support.firePropertyChange(PRO_FIGURE,old,now);
}
public void fireChildenChange(Element child)
{
support.firePropertyChange(PRO_CHILD,null,child);
}
}