Spring consists of a range: min, pref and max a value some where in
the middle of that and a location. Subclasses must override
methods to get the min/max/pref and will likely want to override
the setSize method. Spring automatically caches the
min/max/pref. If the min/pref/max has internally changes, or needs
to be updated you must invoked clear.