package com.xrosstools.xunit.editor.treeparts; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.List; import org.eclipse.gef.editparts.AbstractTreeEditPart; import org.eclipse.swt.graphics.Image; import com.xrosstools.xunit.editor.Activator; import com.xrosstools.xunit.editor.model.UnitConstants; import com.xrosstools.xunit.editor.model.UnitNode; import com.xrosstools.xunit.editor.model.UnitNodeDiagram; public class UnitNodeDiagramTreePart extends AbstractTreeEditPart implements UnitConstants, PropertyChangeListener { protected List<UnitNode> getModelChildren() { UnitNodeDiagram diagram = (UnitNodeDiagram)getModel(); List<UnitNode> list = new ArrayList<UnitNode>(); list.addAll(diagram.getUnits()); return list; } protected String getText() { UnitNodeDiagram diagram = (UnitNodeDiagram)getModel(); return diagram.getPackageId() + SEPARATER + diagram.getName(); } protected Image getImage() { return Activator.getDefault().getImage(getModel().getClass()); } public void activate() { super.activate(); ((UnitNodeDiagram)getModel()).getListeners().addPropertyChangeListener(this); } public void deactivate() { super.deactivate(); ((UnitNodeDiagram)getModel()).getListeners().removePropertyChangeListener(this); } public void propertyChange(PropertyChangeEvent evt) { refresh(); } }