package org.archstudio.xadl.bna.logics.editing; import java.awt.geom.Point2D; import org.archstudio.bna.IThing; import org.archstudio.bna.facets.IHasStickyShape; import org.archstudio.bna.keys.IThingKey; import org.archstudio.bna.logics.editing.AbstractReshapeSplineGuide; import org.archstudio.xadl.bna.facets.IHasObjRef; import org.archstudio.xarchadt.IXArchADT; import org.archstudio.xarchadt.ObjRef; import org.eclipse.emf.ecore.EClass; public class XadlReshapeSplineGuide extends AbstractReshapeSplineGuide { protected final IXArchADT xarch; protected final EClass splineEClass; protected final EClass stickyEClass; @SafeVarargs public XadlReshapeSplineGuide(IXArchADT xarch, EClass splineEClass, EClass stickyEClass, IThingKey<Point2D>... pointKeys) { super(pointKeys); this.xarch = xarch; this.splineEClass = splineEClass; this.stickyEClass = stickyEClass; } @Override protected boolean isRelevantPointsThing(IThing pointsThing) { ObjRef objRef = pointsThing.get(IHasObjRef.OBJREF_KEY); if (objRef != null) { return xarch.isInstanceOf(objRef, splineEClass.getEPackage().getNsURI(), splineEClass.getName()); } return false; } @Override protected boolean isRelevantStickyThing(IHasStickyShape stickyThing) { ObjRef objRef = stickyThing.get(IHasObjRef.OBJREF_KEY); if (objRef != null) { return xarch.isInstanceOf(objRef, stickyEClass.getEPackage().getNsURI(), stickyEClass.getName()); } return false; } }