>>> At the moment, the "fill" style of BoxPane is doing double duty. >>> It means two things for a vertical boxpane >>> (1) make the component fill the available width if the component is smaller >>> than the boxpane width >>> (2) if the components preferred width is greater than the available width, >>> cut off the component. >> Actually, in #2 the component isn't simply clipped to the box pane's width - >> it is given its constrained preferred height. This gives the component a >> chance to wrap its content, which wouldn't be possible without the fill >> style (we need a width to constrain against). >> > Yeah, but we want to give components the chance to wrap even if fill is > false, which is not currently the case.
In order to wrap, a component needs a width constraint. The "fill" flag allows us to use the width of the BoxPane as this constraint. Otherwise, how would we know what the wrap width should be? The only other way to do it would be to assign an explicit preferred width to the component. >>> Border could do with having alignment and fill styles, which is a fairly >>> straightforward change and would make this >>> class more useful. >> It could, but I'm not sure how much value that might really offer. How often >> do you want to put something in a border that doesn't completely fill the >> internal space of the border? Probably not that often, and when you do, you >> can use BoxPane, TablePane, ScrollPane, etc. >> > Alignment and fill would affect how the bordered component sits within the > space allocated by the parent container. So > if I wrap a component in a border and put it inside something else, I don't > necessarily want it to fill the space within > it's parent. That sounds similar to what Bill described. But, as I mentioned earlier, Pivot doesn't define horizontal or vertical alignment properties on the Component class. Layout customization properties are defined by the container, not the child component. The only input a child component has into the layout process is preferred size.
