01: /*
02: * GWT-Ext Widget Library
03: * Copyright(c) 2007-2008, GWT-Ext.
04: * licensing@gwt-ext.com
05: *
06: * http://www.gwt-ext.com/license
07: */
08: package com.gwtext.client.widgets.layout;
09:
10: import com.google.gwt.core.client.JavaScriptObject;
11:
12: /**
13: * <p>This is the layout style of choice for creating structural layouts in a multi-column format where the width of
14: * each column can be specified as a percentage or fixed width, but the height is allowed to vary based on the content.</p>
15: * <p>ColumnLayout does not have any direct config options (other than inherited ones), but it does support a
16: * specific config property of <b>columnWidth</b> that can be included in the config of any panel added to it. The
17: * layout will use the width (if pixels) or columnWidth (if percent) of each panel during layout to determine how to size each panel.
18: * If width or columnWidth is not specified for a given panel, its width will default to the panel's width (or auto).</p>
19: *
20: * <p>The width property is always evaluated as pixels, and must be a number greater than or equal to 1.
21: * The columnWidth property is always evaluated as a percentage, and must be a decimal value greater than 0 and
22: * less than 1 (e.g., .25).</p>
23: *
24: * <p>The basic rules for specifying column widths are pretty simple. The logic makes two passes through the
25: * set of contained panels. During the first layout pass, all panels that either have a fixed width or none
26: * specified (auto) are skipped, but their widths are subtracted from the overall container width. During the second
27: * pass, all panels with columnWidths are assigned pixel widths in proportion to their percentages based on
28: * the total <b>remaining</b> container width. In other words, percentage width panels are designed to fill the space
29: * left over by all the fixed-width or auto-width panels. Because of this, while you can specify any number of columns
30: * with different percentages, the columnWidths must always add up to 1 (or 100%) when added together, otherwise your
31: * layout may not render as expected.
32: *
33: * @see com.gwtext.client.widgets.layout.ColumnLayoutData
34: */
35: public class ColumnLayout extends ContainerLayout {
36:
37: public ColumnLayout() {
38: }
39:
40: protected native JavaScriptObject create(JavaScriptObject config) /*-{
41: return new $wnd.Ext.layout.ColumnLayout(config);
42: }-*/;
43: }
|