new AbstractBoundaryEventOperation() {
@Override
protected void doWorkInternal(ContainerShape container) {
GraphicsAlgorithm ga = container.getGraphicsAlgorithm();
MoveShapeContext newContext = new MoveShapeContext(container);
newContext.setDeltaX(context.getDeltaX());
newContext.setDeltaY(context.getDeltaY());
newContext.setSourceContainer(context.getSourceContainer());
newContext.setTargetContainer(context.getTargetContainer());
newContext.setTargetConnection(context.getTargetConnection());
newContext.setLocation(ga.getX(), ga.getY());
newContext.putProperty(ACTIVITY_MOVE_PROPERTY, true);
IMoveShapeFeature moveFeature = getFeatureProvider().getMoveShapeFeature(newContext);
if (moveFeature.canMoveShape(newContext)) {
moveFeature.moveShape(newContext);
}