Try using a TablePane instead of the BoxPane.  The reason you are seeing this 
is the following:

·         BoxPane, vertical with fill=true will lay out its children from top 
to bottom and size them horizontally to fill the space, but only take as much 
room as required vertically to fit its children’s size(s).

·         Since the SplitPane doesn’t have a native size (it will stretch 
itself horizontally to fill the space, but has no vertical size without 
something to give it a size) it will end up with a 0 height.

 

So, you could, instead of a BoxPane, use a TablePane with two rows (sizes “1*” 
and “-1”) and one column (size “1*”).  This option will leave room for your 
status row (as the bottom row of the TablePane) and take up the rest of the 
space with the other row, which will give a size to the SplitPane.

 

The code would look something like this:

<Frame …>

  <menuBar>

…

  </menuBar>

  <TablePane>

    <columns>

      <TablePane.Column width=”1*”/>

    </columns>

    <rows>

      <TablePane.Row height=”1*”>

        <SplitPane …>

…

        </SplitPane>

      </TablePane.Row>

      <TablePane.Row height=”-1”>

        <Label text=”Status Bar Text”/>

      </TablePane.Row>

    </rows>

  </TablePane>

</Frame>

  

Try that and see how it goes.

    

~Roger Whitcomb

 

From: Joseph Paterson [mailto:[email protected]] 
Sent: Tuesday, June 05, 2012 7:01 PM
To: [email protected]
Subject: SplitPane within a BoxPane

 

Hello,

 

I'm trying to setup the general layout of my application, and ideally I would 
like a menu at the top, something in the middle and a placeholder for a status 
bar at the bottom. I'm using a Frame as it has built-in support for the menu, 
and for the content I am using a BoxPane. The BoxPane will contain a SplitPane 
followed by a Label for the status bar, but I can't get the SplitPane to show 
up. If I have it on it's own (ie. not within the BoxPane) it is fine, but it 
disappears when I have it in the BoxPane. My BXML file looks like this:

 

<Frame xmlns="org.apache.pivot.wtk"

  title="My Title" styles="{showWindowControls:false}" maximized="true">

 

  <menuBar>

    [...]

  </menuBar>

 

  <BoxPane orientation="vertical" styles="{fill:true}">

    <SplitPane orientation="vertical" splitRatio="0.8">

      <left>

        <Border/>

      </left>

      <right>

        <Border/>

      </right>

    </SplitPane>

    <Label text="Status Bar Text"/>

  </BoxPane>

<Frame>

 

Am I missing something?

 

Many thanks,

 

Joseph.

Reply via email to