| |
|
| java.lang.Object org.wings.SAbstractLayoutManager org.wings.SGridBagLayout
SGridBagLayout | public class SGridBagLayout extends SAbstractLayoutManager implements SComponentListener(Code) | | Tries to simulate swing GridBag behaviour as close as possible.
This layout is similar to Swing's GridBagLayout, though it can't
implement all functionalities because of the limitations of
HTML-table. It probably doesn't work exactly like its
Swing-counterpart - as a general hint: don't be too clever...
SComponents are usually added using an instance of
java.awt.GridBagConstraints which is copied while adding it (so you
might reuse it to add other SComponents). There are basically two
ways of adding: explicitly setting gridx and gridy or leaving
those at the default (RELATIVE) and let SGridBagLayout decide where
to put them. Normally they will be added horizontally, unless you
explicitly set gridx, which will add the SComponents
vertically. With setting gridy you can choose a row in which the
SComponents will be added. If you want to finish a row/column, you
can set gridwidth/gridheight to REMAINDER or RELATIVE - REMAINDER
marks the row/column to be finished while RELATIVE tells
SGridBagLayout that the next added SComponent will be the
last cell of the row/column which will always be placed at the end
(while the 'RELATIVE'-SComponent will be expanded to fill the gap).
Important: When choosing a new row/column, the next
gridx/gridy-value that SGridLayout will choose will always be 0,
even if there is already a SComponent at that position. If you
really need to be clever, explicitly set gridx and gridy,
especially if you plan to dynamically add and remove SComponents.
The size of a cell can be influenced in two ways: either set
gridwidth/gridheight to a value larger than 1 to say how many
regular cells this cell should span or use weightx/weighty to tell
the browser how much of the empty space this cell should eat up
(e.g. if there are 3 cells with each weight=1, they will all get
33%). The last method has two disadvantages: firstly, it uses the
deprecated width/height-parameters of the HTML-td statement and
secondly, it must be carefully used to get the correct result: all
cells of a row/column should have the same weighty/weightx or 0, so
it might be easier to set these values only in the first
column/row.
GridBagConstraints has many more options than those described
above, but the current implementation can't use them.
author: Jochen Scharrlach |
Inner Class :public class Grid | |
Field Summary | |
final public static int | LAST_CELL Indicates that the corresponding SComponent should be at the
end of the row/column. | protected int | border | protected transient Grid | currentGrid | protected GridBagConstraints | defaultConstraints The defaults to use if the addComponent()-call does not give
the constraints. | protected boolean | header | protected int | hgap The horizontal gap (in pixels) specifiying the space
between columns. | protected int | vgap The vertical gap (in pixels) which specifiying the space
between rows. |
LAST_CELL | final public static int LAST_CELL(Code) | | Indicates that the corresponding SComponent should be at the
end of the row/column. This value is only for internal use and
cannot be used with addComponent.
|
currentGrid | protected transient Grid currentGrid(Code) | | Contains a pre-calculated grid (or null)
|
defaultConstraints | protected GridBagConstraints defaultConstraints(Code) | | The defaults to use if the addComponent()-call does not give
the constraints.
|
hgap | protected int hgap(Code) | | The horizontal gap (in pixels) specifiying the space
between columns. They can be changed at any time.
This should be a non-negative integer.
|
vgap | protected int vgap(Code) | | The vertical gap (in pixels) which specifiying the space
between rows. They can be changed at any time.
This should be a non negative integer.
|
SGridBagLayout | public SGridBagLayout()(Code) | | creats a new gridbag layout
|
addComponent | public void addComponent(SComponent comp, Object constraint, int index)(Code) | | Add the given component with the given constraints to the
layout.
Parameters: comp - the component to add Parameters: constraint - instance of GridBagConstraints or null Parameters: index - ignored |
getBorder | public int getBorder()(Code) | | Get the border width.
the border width in pixels |
getConstraints | final public GridBagConstraints getConstraints(SComponent comp)(Code) | | Retrieve the constraint of a SComponent. The constraint must
not be altered!
Parameters: comp - the component the constraint or null if the component is unknown |
getGrid | public Grid getGrid()(Code) | | Build a grid from the current configuration. Make sure the
layout is not altered while using the Grid!
the Grid-instance |
getHeader | public boolean getHeader()(Code) | | Query if the first row will be printed as header
true=the first row is used as header |
getHgap | public int getHgap()(Code) | | Gets the horizontal gap between components in pixel. Rendered half as margin left and margin right
Some PLAFs might ignore this property.
the horizontal gap between components |
getVgap | public int getVgap()(Code) | | Gets the vertical gap between components in pixel. Rendered half as margin top and margin bottom
Some PLAFs might ignore this property.
the vertical gap between components |
setBorder | public void setBorder(int pixel)(Code) | | Set the border width.
Parameters: pixel - the new border width in pixels |
setHeader | public void setHeader(boolean b)(Code) | | Specify if the first row should be printed as header
Parameters: b - true=the first row is used as header |
setHgap | public void setHgap(int hgap)(Code) | | Sets the horizontal gap between components to the specified value in pixe. Rendered half as margin left and margin right
Some PLAFs might ignore this property.
Parameters: hgap - the horizontal gap between components |
setVgap | public void setVgap(int vgap)(Code) | | Sets the vertical gap between components to the specified value in pixel.
Rendered half as margin top and margin bottom. Some PLAFs might ignore this property.
Parameters: vgap - the vertical gap between components |
|
|
|