> You could do something similar in BXML by using a BoxPane with
> orientation="vertical" as the root element. However, since BXML isn't
> compiled, this file won't be tied to any code. So, you need to create a class
> that extends BoxPane and use that as your root element: <my:MyBoxPane>. This
> class will generally implement Bindable, which provides the initialize()
> method that you can use to perform your initialization, similar to XAML and
> MXML.
>
> Which is exactly what I'm doing, except that I've elected to use StackPane
> rather than BoxPane, which is a terrible choice for the reasons I mentioned
> earlier (not layout-transparent -- even if I put orientation="vertical"
> styles="{fill:true}" on my root element, which is a nuisance, it still
> doesn't do what I want. Apparently fill only applies to the orthogonal
> dimension of the BoxPane's orientation).
This is why I keep driving the question about use case. BoxPane isn't a
"terrible" component. There are plenty of use cases where BoxPane would be a
valid base class - in fact, as I mentioned, when I was doing Flex development I
often used a VBox as a base class for MXML components. Same goes for TablePane.
What I'd like to understand is why BoxPane (or TablePane) is "terrible" for
this particular case. If you were focusing purely on layout (never mind the
code behind), what container would you use? TablePane is pretty flexible, and
very similar to an HTML table, which is also popular for laying out complex
forms. Why not use it?
I understand that it seems odd to you to have row and column markup associated
with an element that isn't obviously a TablePane, but in practice, it works
pretty well. In fact, it is no different from any other subclass - you
generally can't tell until you look at the Javadoc what a given class's base
class is. Once you know that TabSettingsGeneralPanel extends TablePane, you
know that you can either use the row and column markup on it, or you can call
getRows() and getColumns() directly. So I don't think it is all that weird.
G