Changes to how scape part hierarchy is searched.
diff --git a/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.core/src/org/eclipse/amp/agf/gef/AgentNodeEditPart.java b/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.core/src/org/eclipse/amp/agf/gef/AgentNodeEditPart.java
index c3244ad..78e29e3 100644
--- a/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.core/src/org/eclipse/amp/agf/gef/AgentNodeEditPart.java
+++ b/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.core/src/org/eclipse/amp/agf/gef/AgentNodeEditPart.java
@@ -18,9 +18,13 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 
+import org.eclipse.amp.axf.core.ICompositionProvider;
+import org.eclipse.amp.axf.space.ILocation2D;
+import org.eclipse.amp.axf.space.ILocationProvider;
 import org.eclipse.draw2d.ChopboxAnchor;
 import org.eclipse.draw2d.ConnectionAnchor;
 import org.eclipse.draw2d.Ellipse;
@@ -32,89 +36,119 @@
 /**
  * 
  * @author mparker
- *
+ * 
  */
 public class AgentNodeEditPart extends GenericEditPart implements NodeEditPart {
 
-    @SuppressWarnings("unchecked")
-    @Override
-    public synchronized List getModelSourceConnections() {
-        Collection<ScapeGraphEditPart> graphParts = ((ScapeEditPart) getParent()).getRootScapeEditPart()
-        .getGraphParts();
-        Collection<?> allGraphConnections = new HashSet();
-        for (ScapeGraphEditPart scapeGraphEditPart : graphParts) {
-            allGraphConnections.addAll(scapeGraphEditPart.getModelSourceConnections(getModel()));
-        }
-        return new ArrayList(allGraphConnections);
-    }
+	private boolean provides2D = true;
 
-    @SuppressWarnings("unchecked")
-    @Override
-    public synchronized List getModelTargetConnections() {
-        Collection<ScapeGraphEditPart> graphParts = ((ScapeEditPart) getParent()).getRootScapeEditPart()
-                .getGraphParts();
-        Collection allGraphConnections = new HashSet();
-        for (ScapeGraphEditPart scapeGraphEditPart : graphParts) {
-            allGraphConnections.addAll(scapeGraphEditPart.getModelTargetConnections(getModel()));
-        }
-        return new ArrayList(allGraphConnections);
-    }
+	@SuppressWarnings("unchecked")
+	@Override
+	public synchronized List getModelSourceConnections() {
+		ScapeEditPart parentPart = (ScapeEditPart) getParent();
+		ILocationProvider locationProvider = parentPart.getLocationProvider();
+		ICompositionProvider memberProvider = parentPart.getMemberProvider();
+		if (getParent() instanceof ScapeGraphEditPart
+			|| parentPart.getLocationProvider().getLocation(getModel()) instanceof ILocation2D) {
+			Collection<?> allGraphConnections = new HashSet();
+			Collection<ScapeGraphEditPart> graphParts = parentPart.getRootScapeEditPart().getGraphParts();
+			for (ScapeGraphEditPart scapeGraphEditPart : graphParts) {
+				allGraphConnections.addAll(scapeGraphEditPart.getModelSourceConnections(getModel()));
+			}
+			if (!(parentPart instanceof ScapeGraphEditPart)) {
+				Collection<?> all2DAgents = new HashSet();
+				for (ScapeEditPart scapeEditPart : parentPart.getRootScapeEditPart().get2DParts()) {
+					all2DAgents.addAll(memberProvider.getList(scapeEditPart.getModel()));
+				}
+				allGraphConnections.retainAll(all2DAgents);
+			}
+			return new ArrayList(allGraphConnections);
+		} else {
+			return Collections.emptyList();
+		}
+	}
 
-    protected ConnectionAnchor getConnectionAnchor() {
-        if (anchor == null) {
-            if (getFigure() instanceof Ellipse) {
-                anchor = new EllipseAnchor(getFigure());
-            } else {
-                anchor = new ChopboxAnchor(getFigure());
-            }
-        }
-        return anchor;
-    }
+	@SuppressWarnings("unchecked")
+	@Override
+	public synchronized List getModelTargetConnections() {
+		ScapeEditPart parentPart = (ScapeEditPart) getParent();
+		ILocationProvider locationProvider = parentPart.getLocationProvider();
+		ICompositionProvider memberProvider = parentPart.getMemberProvider();
+		if (getParent() instanceof ScapeGraphEditPart
+			|| parentPart.getLocationProvider().getLocation(getModel()) instanceof ILocation2D) {
+			Collection<?> allGraphConnections = new HashSet();
+			Collection<ScapeGraphEditPart> graphParts = parentPart.getRootScapeEditPart().getGraphParts();
+			for (ScapeGraphEditPart scapeGraphEditPart : graphParts) {
+				allGraphConnections.addAll(scapeGraphEditPart.getModelTargetConnections(getModel()));
+			}
+			if (!(parentPart instanceof ScapeGraphEditPart)) {
+				Collection<?> all2DAgents = new HashSet();
+				for (ScapeEditPart scapeEditPart : parentPart.getRootScapeEditPart().get2DParts()) {
+					all2DAgents.addAll(memberProvider.getList(scapeEditPart.getModel()));
+				}
+				allGraphConnections.retainAll(all2DAgents);
+			}
+			return new ArrayList(allGraphConnections);
+		} else {
+			return Collections.emptyList();
+		}
+	}
 
-    // /**
-    // *
-    // * @see org.eclipse.amp.agf.gef.GenericEditPart#refresh()
-    // */
-    // public synchronized void refresh() {
-    // super.refresh();
-    // // TODO let's optimize this as it will now slow down every non-network implementation
-    // refreshSourceConnections();
-    // refreshTargetConnections();
-    // }
+	protected ConnectionAnchor getConnectionAnchor() {
+		if (anchor == null) {
+			if (getFigure() instanceof Ellipse) {
+				anchor = new EllipseAnchor(getFigure());
+			} else {
+				anchor = new ChopboxAnchor(getFigure());
+			}
+		}
+		return anchor;
+	}
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.gef.NodeEditPart#getSourceConnectionAnchor(org.eclipse.gef .ConnectionEditPart)
-     */
-    public ConnectionAnchor getSourceConnectionAnchor(ConnectionEditPart connection) {
-        return getConnectionAnchor();
-    }
+	// /**
+	// *
+	// * @see org.eclipse.amp.agf.gef.GenericEditPart#refresh()
+	// */
+	// public synchronized void refresh() {
+	// super.refresh();
+	// // TODO let's optimize this as it will now slow down every non-network implementation
+	// refreshSourceConnections();
+	// refreshTargetConnections();
+	// }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.gef.NodeEditPart#getSourceConnectionAnchor(org.eclipse.gef .Request)
-     */
-    public ConnectionAnchor getSourceConnectionAnchor(Request request) {
-        return getConnectionAnchor();
-    }
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.NodeEditPart#getSourceConnectionAnchor(org.eclipse.gef .ConnectionEditPart)
+	 */
+	public ConnectionAnchor getSourceConnectionAnchor(ConnectionEditPart connection) {
+		return getConnectionAnchor();
+	}
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.gef.NodeEditPart#getTargetConnectionAnchor(org.eclipse.gef .ConnectionEditPart)
-     */
-    public ConnectionAnchor getTargetConnectionAnchor(ConnectionEditPart connection) {
-        return getConnectionAnchor();
-    }
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.NodeEditPart#getSourceConnectionAnchor(org.eclipse.gef .Request)
+	 */
+	public ConnectionAnchor getSourceConnectionAnchor(Request request) {
+		return getConnectionAnchor();
+	}
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.gef.NodeEditPart#getTargetConnectionAnchor(org.eclipse.gef .Request)
-     */
-    public ConnectionAnchor getTargetConnectionAnchor(Request request) {
-        return getConnectionAnchor();
-    }
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.NodeEditPart#getTargetConnectionAnchor(org.eclipse.gef .ConnectionEditPart)
+	 */
+	public ConnectionAnchor getTargetConnectionAnchor(ConnectionEditPart connection) {
+		return getConnectionAnchor();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.gef.NodeEditPart#getTargetConnectionAnchor(org.eclipse.gef .Request)
+	 */
+	public ConnectionAnchor getTargetConnectionAnchor(Request request) {
+		return getConnectionAnchor();
+	}
 }
diff --git a/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.core/src/org/eclipse/amp/agf/gef/ScapeEditPart.java b/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.core/src/org/eclipse/amp/agf/gef/ScapeEditPart.java
index 146e3d5..f7146dd 100644
--- a/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.core/src/org/eclipse/amp/agf/gef/ScapeEditPart.java
+++ b/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.core/src/org/eclipse/amp/agf/gef/ScapeEditPart.java
@@ -46,257 +46,271 @@
 
 public class ScapeEditPart extends GenericEditPart implements PropertyChangeListener, NodeEditPart {
 
-    ICompositionProvider memberProvider;
+	ICompositionProvider memberProvider;
 
-    ILocationProvider locationProvider;
+	ILocationProvider locationProvider;
 
-    private IFilter filter;
+	private IFilter filter;
 
-    boolean updating;
+	boolean updating;
 
-    public ScapeEditPart(ICompositionProvider memberProvider, ILocationProvider locationProvider, IFilter filter) {
-        super();
-        this.memberProvider = memberProvider;
-        this.locationProvider = locationProvider;
-        this.setFilter(filter);
-    }
+	public ScapeEditPart(ICompositionProvider memberProvider, ILocationProvider locationProvider, IFilter filter) {
+		super();
+		this.memberProvider = memberProvider;
+		this.locationProvider = locationProvider;
+		this.setFilter(filter);
+	}
 
-    @Override
-    protected IFigure createFigure() {
-        Figure f = null;
-        Dimension calculateDimension = calculateDimension();
-        if (calculateDimension != null) {
-            ScalableFreeformLayeredPane scalableFreeformLayeredPane = new ScalableFreeformLayeredPane();
-            f = scalableFreeformLayeredPane;
-            f.setBounds(new Rectangle(new Point(0, 0), calculateDimension));
-        } else {
-            f = new FreeformLayer();
-            ScapeEditPart rootScapeEditPart = getRootScapeEditPart();
-            if (rootScapeEditPart != this) {
-                f.setBounds(rootScapeEditPart.getFigure().getBounds());
-            }
-        }
-        f.setLayoutManager(new XYLayout());
-        f.setOpaque(false);
-        return f;
-    }
+	@Override
+	protected IFigure createFigure() {
+		Figure f = null;
+		Dimension calculateDimension = calculateDimension();
+		if (calculateDimension != null) {
+			ScalableFreeformLayeredPane scalableFreeformLayeredPane = new ScalableFreeformLayeredPane();
+			f = scalableFreeformLayeredPane;
+			f.setBounds(new Rectangle(new Point(0, 0), calculateDimension));
+		} else {
+			f = new FreeformLayer();
+			ScapeEditPart rootScapeEditPart = getRootScapeEditPart();
+			if (rootScapeEditPart != this) {
+				f.setBounds(rootScapeEditPart.getFigure().getBounds());
+			}
+		}
+		f.setLayoutManager(new XYLayout());
+		f.setOpaque(false);
+		return f;
+	}
 
-    // @Override
-    public synchronized void refresh() {
-        if (getFilter() == null || getFilter().select(getModel())) {
-            refreshVisuals();
-            refreshChildren();
-            // performance improvement..we only need to do this once for Array2D
-            if (memberProvider.isMutable(getModel())) {
-                for (Object child : getChildren()) {
-                    ((EditPart) child).refresh();
-                    calculateConstraints(((GraphicalEditPart) child));
-                }
-            } else {
-                for (Object child : getChildren()) {
-                    ((GenericEditPart) child).refreshVisuals();
-                }
-            }
-            if (this instanceof ScapeGraphEditPart) {
-                super.refreshSourceConnections();
-                super.refreshTargetConnections();
-            }
-        }
-    }
+	// @Override
+	public synchronized void refresh() {
+		if (getFilter() == null || getFilter().select(getModel())) {
+			refreshVisuals();
+			refreshChildren();
+			// performance improvement..we only need to do this once for Array2D
+			if (memberProvider.isMutable(getModel())) {
+				for (Object child : getChildren()) {
+					((EditPart) child).refresh();
+					calculateConstraints(((GraphicalEditPart) child));
+				}
+			} else {
+				for (Object child : getChildren()) {
+					((GenericEditPart) child).refreshVisuals();
+				}
+			}
+			if (this instanceof ScapeGraphEditPart) {
+				super.refreshSourceConnections();
+				super.refreshTargetConnections();
+			}
+		}
+	}
 
-    public Dimension calculateDimension() {
-        ILocation extent = locationProvider.getExtent(getModel());
-        if (extent instanceof ILocation2D) {
-            return GEFUtils.toScaledDimension((ILocation2D) extent);
-        }
-        return null;
-    }
+	public Dimension calculateDimension() {
+		ILocation extent = locationProvider.getExtent(getModel());
+		if (extent instanceof ILocation2D) {
+			return GEFUtils.toScaledDimension((ILocation2D) extent);
+		}
+		return null;
+	}
 
-    protected void calculateConstraints(GraphicalEditPart editPart) {
-        Object agent = editPart.getModel();
-        ILocation2D location = (ILocation2D) locationProvider.getLocation(agent);
-        if (location != null) {
-            IFigure childFigure = editPart.getFigure();
-            Rectangle bounds = new Rectangle(GEFUtils.toScaledPoint(location), childFigure.getSize());
-            getFigure().setConstraint(childFigure, bounds);
-        }
-    }
+	protected void calculateConstraints(GraphicalEditPart editPart) {
+		Object agent = editPart.getModel();
+		ILocation2D location = (ILocation2D) locationProvider.getLocation(agent);
+		if (location != null) {
+			IFigure childFigure = editPart.getFigure();
+			Rectangle bounds = new Rectangle(GEFUtils.toScaledPoint(location), childFigure.getSize());
+			getFigure().setConstraint(childFigure, bounds);
+		}
+	}
 
-    /**
-     * Must not be called while scape is updating.
-     */
-    protected synchronized void refreshChildren() {
-        if (getRootScapeEditPart() != this) {
-            if (memberProvider.isMutable(getModel())) {
-                Map<Object, EditPart> modelToEditPart = new HashMap<Object, EditPart>();
+	/**
+	 * Must not be called while scape is updating.
+	 */
+	protected synchronized void refreshChildren() {
+		if (getRootScapeEditPart() != this) {
+			if (memberProvider.isMutable(getModel())) {
+					Map<Object, EditPart> modelToEditPart = new HashMap<Object, EditPart>();
+					for (Object object : getChildren()) {
+						EditPart editPart = (EditPart) object;
+						modelToEditPart.put(editPart.getModel(), editPart);
+					}
+					for (Object agent : memberProvider.getIteratable(getModel())) {
+							EditPart editPart = modelToEditPart.remove(agent);
+							if (editPart == null) {
+								editPart = createChild(agent);
+								addChild(editPart, -1);
+							}
+					}
+					for (EditPart part : modelToEditPart.values()) {
+						removeChild(part);
+					}
+				}
+		} else {
+				for (Object agent : memberProvider.getIteratable(getModel())) {
+					boolean hasChild = false;
+					for (Object child : getChildren()) {
+						EditPart part = (EditPart) child;
+						if (agent == part.getModel()) {
+							hasChild = true;
+							break;
+						}
+					}
+					if (!hasChild) {
+						EditPart editPart = createChild(agent);
+						addChild(editPart, -1);
+					}
+				}
+			}
+		}
 
-                for (Object object : getChildren()) {
-                    EditPart editPart = (EditPart) object;
-                    modelToEditPart.put(editPart.getModel(), editPart);
-                }
-                for (Object agent : memberProvider.getIteratable(getModel())) {
-                    EditPart editPart = modelToEditPart.remove(agent);
-                    if (editPart == null) {
-                        editPart = createChild(agent);
-                        addChild(editPart, -1);
-                    }
-                }
-                for (EditPart part : modelToEditPart.values()) {
-                    removeChild(part);
-                }
-            }
-        } else {
-            for (Object agent : memberProvider.getIteratable(getModel())) {
-                boolean hasChild = false;
-                for (Object child : getChildren()) {
-                    EditPart part = (EditPart) child;
-                    if (agent == part.getModel()) {
-                        hasChild = true;
-                        break;
-                    }
-                }
-                if (!hasChild) {
-                    EditPart editPart = createChild(agent);
-                    addChild(editPart, -1);
-                }
-            }
-        }
-    }
+	public synchronized List<ScapeGraphEditPart> getGraphParts() {
+		if (memberProvider.isChildrenComposition(getModel())) {
+			List<ScapeGraphEditPart> parts = new ArrayList<ScapeGraphEditPart>();
+			for (Object editPart : getChildren()) {
+				if (editPart instanceof ScapeGraphEditPart) {
+					parts.add((ScapeGraphEditPart) editPart);
+				} else if (editPart instanceof ScapeEditPart) {
+					parts.addAll(((ScapeEditPart) editPart).getGraphParts());
+				}
+			}
+			return parts;
+		}
+		return Collections.emptyList();
+	}
 
-    public synchronized List<ScapeGraphEditPart> getGraphParts() {
-        if (memberProvider.isChildrenComposition(getModel())) {
-            List<ScapeGraphEditPart> parts = new ArrayList<ScapeGraphEditPart>();
-            for (Object editPart : getChildren()) {
-                if (editPart instanceof ScapeGraphEditPart) {
-                    parts.add((ScapeGraphEditPart) editPart);
-                } else if (editPart instanceof ScapeEditPart) {
-                    parts.addAll(((ScapeEditPart) editPart).getGraphParts());
-                }
-            }
-            return parts;
-        }
-        return Collections.emptyList();
-    }
+	public synchronized List<ScapeEditPart> get2DParts() {
+		if (memberProvider.isChildrenComposition(getModel())) {
+			List<ScapeEditPart> parts = new ArrayList<ScapeEditPart>();
+			for (Object editPart : getChildren()) {
+				if (editPart instanceof ScapeGraphEditPart && locationProvider.getLocation(memberProvider.getChildrenPrototype(((ScapeEditPart) editPart).getModel())) instanceof ILocation2D) {
+					parts.add((ScapeGraphEditPart) editPart);
+				} else if (editPart instanceof ScapeEditPart) {
+					parts.addAll(((ScapeEditPart) editPart).get2DParts());
+				}
+			}
+			return parts;
+		}
+		return Collections.emptyList();
+	}
 
-    public ScapeEditPart getRootScapeEditPart() {
-        if (memberProvider.getParent(getModel()) == null || !(getParent() instanceof ScapeEditPart)) {
-            return this;
-        }
-        return ((ScapeEditPart) getParent()).getRootScapeEditPart();
-    }
+	public ScapeEditPart getRootScapeEditPart() {
+		if (memberProvider.getParent(getModel()) == null || !(getParent() instanceof ScapeEditPart)) {
+			return this;
+		}
+		return ((ScapeEditPart) getParent()).getRootScapeEditPart();
+	}
 
-    @Override
-    public List getSourceConnections() {
-        return Collections.EMPTY_LIST;
-    }
+	@Override
+	public List getSourceConnections() {
+		return Collections.EMPTY_LIST;
+	}
 
-    @Override
-    public List getTargetConnections() {
-        return Collections.EMPTY_LIST;
-    }
+	@Override
+	public List getTargetConnections() {
+		return Collections.EMPTY_LIST;
+	}
 
-    @Override
-    protected void createEditPolicies() {
-        // TODO Auto-generated method stub
-        // installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new
-        // SelectionEditPolicy() {
-        //
-        // @Override
-        // protected void setSelectedState(int type) {
-        // super.setSelectedState(type);
-        // IFigure f = ((GraphicalEditPart) getHost()).getFigure();
-        // System.err.println("h  "+getHost());
-        // System.err.println("f " + f.getClass());
-        // if (f instanceof Shape) {
-        // Shape s = (Shape) f;
-        // if (type == EditPart.SELECTED_PRIMARY) {
-        // s.setForegroundColor(ColorConstants.yellow);
-        // s.setOutline(true);
-        // } else if (type == EditPart.SELECTED) {
-        // showSelection();
-        // } else {
-        // hideSelection();
-        // }
-        // }
-        // }
-        //
-        // @Override
-        // protected void hideSelection() {
-        // }
-        //
-        // @Override
-        // protected void showSelection() {
-        // }
-        // });
+	@Override
+	protected void createEditPolicies() {
+		// TODO Auto-generated method stub
+		// installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new
+		// SelectionEditPolicy() {
+		//
+		// @Override
+		// protected void setSelectedState(int type) {
+		// super.setSelectedState(type);
+		// IFigure f = ((GraphicalEditPart) getHost()).getFigure();
+		// System.err.println("h  "+getHost());
+		// System.err.println("f " + f.getClass());
+		// if (f instanceof Shape) {
+		// Shape s = (Shape) f;
+		// if (type == EditPart.SELECTED_PRIMARY) {
+		// s.setForegroundColor(ColorConstants.yellow);
+		// s.setOutline(true);
+		// } else if (type == EditPart.SELECTED) {
+		// showSelection();
+		// } else {
+		// hideSelection();
+		// }
+		// }
+		// }
+		//
+		// @Override
+		// protected void hideSelection() {
+		// }
+		//
+		// @Override
+		// protected void showSelection() {
+		// }
+		// });
 
-    }
+	}
 
-    public ConnectionAnchor getSourceConnectionAnchor(ConnectionEditPart connection) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+	public ConnectionAnchor getSourceConnectionAnchor(ConnectionEditPart connection) {
+		// TODO Auto-generated method stub
+		return null;
+	}
 
-    public ConnectionAnchor getSourceConnectionAnchor(Request request) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+	public ConnectionAnchor getSourceConnectionAnchor(Request request) {
+		// TODO Auto-generated method stub
+		return null;
+	}
 
-    public ConnectionAnchor getTargetConnectionAnchor(ConnectionEditPart connection) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+	public ConnectionAnchor getTargetConnectionAnchor(ConnectionEditPart connection) {
+		// TODO Auto-generated method stub
+		return null;
+	}
 
-    public ConnectionAnchor getTargetConnectionAnchor(Request request) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+	public ConnectionAnchor getTargetConnectionAnchor(Request request) {
+		// TODO Auto-generated method stub
+		return null;
+	}
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @seejava.beans.PropertyChangeListener#propertyChange(java.beans. PropertyChangeEvent)
-     */
-    public void propertyChange(PropertyChangeEvent evt) {
-        // String prop = evt.getPropertyName();
-        // if (Shape.SIZE_PROP.equals(prop) || Shape.LOCATION_PROP.equals(prop))
-        // {
-        // refreshVisuals();
-        // } else if (Shape.SOURCE_CONNECTIONS_PROP.equals(prop)) {
-        // refreshSourceConnections();
-        // } else if (Shape.TARGET_CONNECTIONS_PROP.equals(prop)) {
-        // refreshTargetConnections();
-        // }
-    }
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seejava.beans.PropertyChangeListener#propertyChange(java.beans. PropertyChangeEvent)
+	 */
+	public void propertyChange(PropertyChangeEvent evt) {
+		// String prop = evt.getPropertyName();
+		// if (Shape.SIZE_PROP.equals(prop) || Shape.LOCATION_PROP.equals(prop))
+		// {
+		// refreshVisuals();
+		// } else if (Shape.SOURCE_CONNECTIONS_PROP.equals(prop)) {
+		// refreshSourceConnections();
+		// } else if (Shape.TARGET_CONNECTIONS_PROP.equals(prop)) {
+		// refreshTargetConnections();
+		// }
+	}
 
-    public IFilter getFilter() {
-        return filter;
-    }
+	public IFilter getFilter() {
+		return filter;
+	}
 
-    public void setFilter(IFilter filter) {
-        this.filter = filter;
-    }
+	public void setFilter(IFilter filter) {
+		this.filter = filter;
+	}
 
-    public ICompositionProvider getMemberProvider() {
-        return memberProvider;
-    }
+	public ICompositionProvider getMemberProvider() {
+		return memberProvider;
+	}
 
-    public void setMemberProvider(ICompositionProvider memberProvider) {
-        this.memberProvider = memberProvider;
-    }
+	public void setMemberProvider(ICompositionProvider memberProvider) {
+		this.memberProvider = memberProvider;
+	}
 
-    public ILocationProvider getLocationProvider() {
-        return locationProvider;
-    }
+	public ILocationProvider getLocationProvider() {
+		return locationProvider;
+	}
 
-    public void setLocationProvider(ILocationProvider locationProvider) {
-        this.locationProvider = locationProvider;
-    }
+	public void setLocationProvider(ILocationProvider locationProvider) {
+		this.locationProvider = locationProvider;
+	}
 
-    public Object getModelRoot() {
-        Object model = getModel();
-        if (model instanceof IModel) {
-            return ((IModel) getModel()).getRoot();
-        }
-        return model;
-    }
+	public Object getModelRoot() {
+		Object model = getModel();
+		if (model instanceof IModel) {
+			return ((IModel) getModel()).getRoot();
+		}
+		return model;
+	}
 }