@Override
  protected void refreshVisuals() {
    super.refreshVisuals();
    OPPProceduralLink model = (OPPProceduralLink) getModel();
    getFigure().getCenterDecorationLabel().setText(model.getCenterDecoration());
    if (model.getSubKinds().size() != 0) {
      String subKindLabel = model.getSubKinds().toString();
      subKindLabel = subKindLabel.substring(1, subKindLabel.length() - 1);
      subKindLabel = subKindLabel.replace(" ", "");
      getFigure().setSubKindLabelText(subKindLabel);
    } else {
      getFigure().setSubKindLabelText("");
    }

    Connection connection = getConnectionFigure();
    List<OPPPoint> modelConstraint = getModel().getBendpoints();
    List<AbsoluteBendpoint> figureConstraint = new ArrayList<AbsoluteBendpoint>();
    for (OPPPoint p : modelConstraint) {
      figureConstraint.add(new AbsoluteBendpoint(p.getX(), p.getY()));
    }
    connection.setRoutingConstraint(figureConstraint);
  }
 public static Point pointFromOPPPoint(OPPPoint oppPoint) {
   Point point = new Point();
   point.setX(oppPoint.getX());
   point.setY(oppPoint.getY());
   return point;
 }
 public static OPPPoint oppPointFromPoint(Point point) {
   OPPPoint oppPoint = OPPFactory.eINSTANCE.createOPPPoint();
   oppPoint.setX(point.x);
   oppPoint.setY(point.y);
   return oppPoint;
 }