public void figureMoved(IFigure source) { Rectangle newBounds = source.getBounds().getCopy(); if (algorithm.updateObstacle((Rectangle) figuresToBounds.get(source), newBounds)) { queueSomeRouting(); isDirty = true; } // Skip labels as routing obstacles if (!(source instanceof TransparentLabel)) { figuresToBounds.put(source, newBounds); } }