package org.jboss.tools.smooks.gef.common;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.ArrayList;
import java.util.List;
import org.jboss.tools.smooks.gef.model.AbstractSmooksGraphicalModel;
public class RootModel extends AbstractSmooksGraphicalModel{
public RootModel() {
super(null);
}
public static final String ADD_CHILDREN = "__pro_add_children"; //$NON-NLS-1$
public static final String REMOVE_CHILDREN = "__pro_remove_children"; //$NON-NLS-1$
private PropertyChangeSupport support = new PropertyChangeSupport(this);
private List<AbstractSmooksGraphicalModel> children;
public List<AbstractSmooksGraphicalModel> getChildren() {
if (children == null) {
children = new ArrayList<AbstractSmooksGraphicalModel>();
}
return children;
}
public void removeAllTreeNode() {
getChildren().clear();
support.firePropertyChange(REMOVE_CHILDREN, new Object(), null);
}
public void removeTreeNode(AbstractSmooksGraphicalModel node) {
this.getChildren().remove(node);
node.setParent(null);
support.firePropertyChange(REMOVE_CHILDREN, node, null);
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
support.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
support.removePropertyChangeListener(listener);
}
public void addTreeNode(AbstractSmooksGraphicalModel node) {
this.getChildren().add(node);
node.setParent(this);
support.firePropertyChange(ADD_CHILDREN, null, node);
}
}