@Override
 protected void doExecute() {
   List list = part.getSourceConnections();
   if (part.isArrowVertical()) {
     part.setArrowDirection(HORIZONTAL);
   } else {
     part.setArrowDirection(VERTICAL);
   }
 }
 @Override
 public void relocate(IFigure target) {
   if (constraint.y == 0) {
     if (durationConstraintEditPart.getCurrentSideOfParent() == PositionConstants.WEST) {
       Point r = parentFigure.getBounds().getLeft().translate(-20, -5);
       target.setBounds(new Rectangle(r, target.getPreferredSize()));
     } else {
       Point r = parentFigure.getBounds().getRight().translate(5, -5);
       target.setBounds(new Rectangle(r, target.getPreferredSize()));
     }
   } else super.relocate(target);
 }