package net.ms.designer.editors.enumcomponentdetail.editpart;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
import net.ms.designer.editors.enumcomponentdetail.editpolicy.PropertyEditPolicy;
import net.ms.designer.editors.enumcomponentdetail.model.Element;
import org.eclipse.draw2d.IFigure;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
public class BaseEditPart extends AbstractGraphicalEditPart implements PropertyChangeListener
{
public void activate()
{
if(getModel() != null && getModel() instanceof Element)
{
((Element)getModel()).addPropertyChangeListener(this);
}
super.activate();
}
public void deactivate()
{
if(getModel() != null && getModel() instanceof Element)
{
((Element)getModel()).removePropertyChangeListener(this);
}
super.deactivate();
}
protected IFigure createFigure()
{
return null;
}
protected void createEditPolicies()
{
this.installEditPolicy(EditPolicy.LAYOUT_ROLE,new PropertyEditPolicy());
}
protected List getModelChildren()
{
if(getModel() instanceof Element)
{
return ((Element)getModel()).getChildren();
}
return super.getModelChildren();
}
public void propertyChange(PropertyChangeEvent evt)
{
String pName = evt.getPropertyName();
if(pName.equals(Element.PRO_FIGURE))
{
this.refreshVisuals();
}
if(pName.equals(Element.PRO_CHILD))
{
this.refreshChildren();
this.refreshVisuals();
}
}
}