/******************************************************************************* | |
* Copyright (c) 2000, 2009 IBM Corporation and others. | |
* All rights reserved. This program and the accompanying materials | |
* are made available under the terms of the Eclipse Public License v1.0 | |
* which accompanies this distribution, and is available at | |
* http://www.eclipse.org/legal/epl-v10.html | |
* | |
* Contributors: | |
* IBM Corporation - initial API and implementation | |
* BSI Business Systems Integration AG - adapted to Scout SDK | |
*******************************************************************************/ | |
package org.eclipse.scout.sdk.ui.util; | |
import org.eclipse.swt.SWT; | |
import org.eclipse.swt.graphics.Point; | |
/** | |
* <h3>{@link TableWrapDataEx}</h3> ... | |
* | |
* @author Andreas Hoegger | |
* @since 1.0.8 25.11.2010 | |
*/ | |
public final class TableWrapDataEx { | |
/** | |
* The control will be left-justified. | |
*/ | |
public static final int LEFT = 1 << 1; | |
/** | |
* The control will be centered horizontally. | |
*/ | |
public static final int CENTER = 1 << 2; | |
/** | |
* The control will be right-justified. | |
*/ | |
public static final int RIGHT = 1 << 3; | |
/** | |
* The control will be aligned with the top of the cell. | |
*/ | |
public static final int TOP = 1 << 4; | |
/** | |
* The control will be centered vertically. | |
*/ | |
public static final int MIDDLE = 1 << 5; | |
/** | |
* The control will be aligned with the bottom of the cell. | |
*/ | |
public static final int BOTTOM = 1 << 6; | |
/** | |
* The control will have the same width as the column it occupies. | |
*/ | |
public static final int FILL = 1 << 7; | |
/** | |
* In addition to filling width or height, the control will take part in | |
* allocation of any excess space. Note that this constant can only be | |
* passed to the constructor (cannot be directly assigned to <code>align</code> variable). | |
*/ | |
public static final int FILL_GRAB = 1 << 8; | |
/** | |
* Number of columns to span (default is 1). | |
*/ | |
public int colspan = 1; | |
/** | |
* Number of rows to span (default is 1). | |
*/ | |
public int rowspan = 1; | |
/** | |
* Horizontal alignment (LEFT, CENTER, RIGHT or FILL; default is LEFT). | |
*/ | |
public int align = LEFT; | |
/** | |
* Vertical alignment (TOP, MIDDLE, BOTTOM or FILL; default is TOP). | |
*/ | |
public int valign = TOP; | |
/** | |
* Horizontal indent (default is 0). | |
*/ | |
public int indent = 0; | |
/** | |
* Maximum width of the control (default is SWT.DEFAULT). | |
*/ | |
public int maxWidth = SWT.DEFAULT; | |
/** | |
* Maximum height of the control (default is SWT.DEFAULT). | |
*/ | |
public int maxHeight = SWT.DEFAULT; | |
/** | |
* Height hint of the control (default is SWT.DEFAULT). | |
*/ | |
public int heightHint = SWT.DEFAULT; | |
/** | |
* If <code>true</code>, take part in excess horizontal space | |
* distribution. (default is <code>false</code>). | |
*/ | |
public boolean grabHorizontal; | |
/** | |
* If <code>true</code>, the component will not be visible | |
*/ | |
public boolean exclude; | |
/** | |
* If <code>true</code>, will grab any excess vertical space (default is <code>false</code>). Note that since | |
* TableWrapLayout works top-down | |
* and does not grows to fill the parent, this only applies to local excess | |
* space created by fixed-height children that span multiple rows. | |
*/ | |
public boolean grabVertical; | |
int childIndex; | |
boolean isItemData = true; | |
int compWidth; | |
Point compSize; | |
/** | |
* The default constructor. | |
*/ | |
public TableWrapDataEx() { | |
} | |
/** | |
* The convenience constructor - allows passing the horizontal alignment | |
* style. | |
* | |
* @param align | |
* horizontal alignment (LEFT, CENTER, RIGHT, FILL or FILL_GRAB). | |
*/ | |
public TableWrapDataEx(int align) { | |
this(align, TOP, 1, 1); | |
} | |
/** | |
* The convenience constructor - allows passing the alignment styles. | |
* | |
* @param align | |
* horizontal alignment (LEFT, CENTER, RIGHT, FILL or FILL_GRAB). | |
* @param valign | |
* vertical alignment (TOP, MIDDLE, BOTTOM, FILL or FILL_GRAB). | |
*/ | |
public TableWrapDataEx(int align, int valign) { | |
this(align, valign, 1, 1); | |
} | |
/** | |
* The convenience constructor - allows passing the alignment styles, column | |
* and row spans. | |
* | |
* @param align | |
* horizontal alignment (LEFT, CENTER, RIGHT, FILL or FILL_GRAB). | |
* @param valign | |
* vertical alignment (TOP, MIDDLE, BOTTOM, FILL or FILL_GRAB) | |
* @param rowspan | |
* row span (1 or more) | |
* @param colspan | |
* column span (1 or more) | |
*/ | |
public TableWrapDataEx(int align, int valign, int rowspan, int colspan) { | |
if (align != LEFT && align != CENTER && align != RIGHT && align != FILL | |
&& align != FILL_GRAB) SWT.error(SWT.ERROR_INVALID_ARGUMENT, null, "align"); //$NON-NLS-1$ | |
if (valign != TOP && valign != MIDDLE && valign != BOTTOM | |
&& valign != FILL && valign != FILL_GRAB) SWT.error(SWT.ERROR_INVALID_ARGUMENT, null, "valign"); //$NON-NLS-1$ | |
if (rowspan < 1) SWT.error(SWT.ERROR_INVALID_ARGUMENT, null, "rowspan"); //$NON-NLS-1$ | |
if (colspan < 1) SWT.error(SWT.ERROR_INVALID_ARGUMENT, null, "colspan"); //$NON-NLS-1$ | |
if (align == FILL_GRAB) { | |
this.align = FILL; | |
grabHorizontal = true; | |
} | |
else this.align = align; | |
if (valign == FILL_GRAB) { | |
this.valign = FILL; | |
grabVertical = true; | |
} | |
else this.valign = valign; | |
this.rowspan = rowspan; | |
this.colspan = colspan; | |
} | |
} |