@Override public void setLabelPosition(final Point labelPosition) { final Point oldLabelPosition = getLabelPosition(); if (labelPosition != null && !labelPosition.equals(oldLabelPosition)) { super.setLabelPosition(labelPosition); graphController.updateSVGDocument( new Runnable() { @Override public void run() { if (graphController.isAnimatable() && oldLabelPosition != null) animate( animateLabel, labelGroup, graphController.getAnimationSpeed(), oldLabelPosition.x + ", " + oldLabelPosition.y, labelPosition.x + ", " + labelPosition.y); else labelGroup.setAttribute( SVG_TRANSFORM_ATTRIBUTE, "translate(" + labelPosition.x + " " + labelPosition.y + ")"); } }); } }