I encourage you to take a hack at ScrollPaneSkin. In particular the method 
computeScrollNodeSize. I suspect the change would be pretty much localized to 
this method. 

On Jan 31, 2014, at 2:02 PM, Jeff Martin <j...@reportmill.com> wrote:

> ScrollPane has the feature for content that needs to track the viewportBounds 
> size, FitToWidth/FitToHeight, which is nice for things like text areas that 
> wrap text. Conceptually, it seems like FitToWidth is basically binding 
> Content.PrefWidth to ViewportBounds.Width.
> 
> But it seems more often I really want to bind Content.MinWidth/MinHeight to 
> ViewportBounds.Width/Height. This is common for things like text areas that 
> don't wrap text or most text area height (and much more). So I end up doing a 
> bit of this:
> 
>    // Add content to ScrollPane and make sure it is at least as big as 
> ViewportBounds
>    final Region content = myContent;
>    ScrollPane scrollPane = new ScrollPane(); scrollPane.setContent(content);
>    scrollPane.viewportBoundsProperty().addListener(new 
> ChangeListener<Bounds>() {
>        public void changed(ObservableValue<? extends Bounds> arg0, Bounds 
> oldBounds, Bounds newBounds)
>        { content.setMinWidth(newBounds.getWidth()); 
> content.setMinHeight(newBounds.getHeight()); }});
> 
> To me, this makes it seem like the ScrollPane is only there when it's needed 
> (otherwise, it's like an invisible Parent Pane). This seems ideal for a 
> default ScrollPane.
> 
> Obviously, this isn't a lot of code, but it's non-obvious, and from googling, 
> it looks like people stumble over FitToWidth first. It seems to me that a 
> setGrowToFitWidth/setGrowToFitHeight would be at least as useful. Unless I 
> missed something. :-)
> 
> Jeff Martin
> 214.513.1636

Reply via email to