> 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

Reply via email to