Hi!
Just a quick question - What's the logic behind dynamically calculating the threshold depending on the distance form current position to the target position (when started)? Why isn't the threshold a constant, say 1px? Don't see why anyone would want a threshold of much larger than 1px.
Reason I ask is because with the current solution, the SpringPanel will snap into target-position to soon if the distance is large between the two when the SpringPanel is begun, since the threshold might be >10px. This makes it look laggy.