@Override public void setPosition(final Point position) { final Point oldPosition = getPosition(); if (position != null && !position.equals(oldPosition)) { super.setPosition(position); graphController.updateSVGDocument( new Runnable() { @Override public void run() { if (graphController.isAnimatable()) animate( animatePosition, polygon, graphController.getAnimationSpeed(), oldPosition.x + ", " + oldPosition.y, position.x + ", " + position.y); else polygon.setAttribute( SVG_TRANSFORM_ATTRIBUTE, "translate(" + position.x + " " + position.y + ")"); } }); } }