summaryrefslogtreecommitdiff
path: root/propertysheet/src/org/eclipse/wb/internal/core/utils/ui/GridDataFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'propertysheet/src/org/eclipse/wb/internal/core/utils/ui/GridDataFactory.java')
-rw-r--r--propertysheet/src/org/eclipse/wb/internal/core/utils/ui/GridDataFactory.java541
1 files changed, 0 insertions, 541 deletions
diff --git a/propertysheet/src/org/eclipse/wb/internal/core/utils/ui/GridDataFactory.java b/propertysheet/src/org/eclipse/wb/internal/core/utils/ui/GridDataFactory.java
deleted file mode 100644
index 4ccda40..0000000
--- a/propertysheet/src/org/eclipse/wb/internal/core/utils/ui/GridDataFactory.java
+++ /dev/null
@@ -1,541 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2011 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
- *******************************************************************************/
-package org.eclipse.wb.internal.core.utils.ui;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This class provides a convienient shorthand for creating and initializing GridData. This offers
- * several benefits over creating GridData normal way:
- *
- * <ul>
- * <li>The same factory can be used many times to create several GridData instances</li>
- * <li>The setters on GridDataFactory all return "this", allowing them to be chained</li>
- * <li>GridDataFactory uses vector setters (it accepts Points), making it easy to set X and Y values
- * together</li>
- * </ul>
- *
- * <p>
- * GridDataFactory instances are created using one of the static methods on this class.
- * </p>
- *
- * <p>
- * Example usage:
- * </p>
- * <code>
- *
- * ////////////////////////////////////////////////////////////
- * // Example 1: Typical grid data for a non-wrapping label
- *
- * // GridDataFactory version
- * GridDataFactory.fillDefaults().applyTo(myLabel);
- *
- * // Equivalent SWT version
- * GridData labelData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
- * myLabel.setLayoutData(labelData);
- *
- * ///////////////////////////////////////////////////////////
- * // Example 2: Typical grid data for a wrapping label
- *
- * // GridDataFactory version
- * GridDataFactory.fillDefaults()
- * .align(SWT.FILL, SWT.CENTER)
- * .hint(150, SWT.DEFAULT)
- * .grab(true, false)
- * .applyTo(wrappingLabel);
- *
- * // Equivalent SWT version
- * GridData wrappingLabelData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER);
- * wrappingLabelData.minimumWidth = 1;
- * wrappingLabelData.widthHint = 150;
- * wrappingLabel.setLayoutData(wrappingLabelData);
- *
- * //////////////////////////////////////////////////////////////
- * // Example 3: Typical grid data for a scrollable control (a list box, tree, table, etc.)
- *
- * // GridDataFactory version
- * GridDataFactory.fillDefaults().grab(true, true).hint(150, 150).applyTo(listBox);
- *
- * // Equivalent SWT version
- * GridData listBoxData = new GridData(GridData.FILL_BOTH);
- * listBoxData.widthHint = 150;
- * listBoxData.heightHint = 150;
- * listBoxData.minimumWidth = 1;
- * listBoxData.minimumHeight = 1;
- * listBox.setLayoutData(listBoxData);
- *
- * /////////////////////////////////////////////////////////////
- * // Example 4: Typical grid data for a button
- *
- * // GridDataFactory version
- * Point preferredSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, false);
- * Point hint = Geometry.max(LayoutConstants.getMinButtonSize(), preferredSize);
- * GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).hint(hint).applyTo(button);
- *
- * // Equivalent SWT version
- * Point preferredSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, false);
- * Point hint = Geometry.max(LayoutConstants.getMinButtonSize(), preferredSize);
- * GridData buttonData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER);
- * buttonData.widthHint = hint.x;
- * buttonData.heightHint = hint.y;
- * button.setLayoutData(buttonData);
- * </code>
- *
- * <p>
- * IMPORTANT: WHEN ASSIGNING LAYOUT DATA TO A CONTROL, BE SURE TO USE
- * gridDataFactory.applyTo(control) AND NEVER control.setLayoutData(gridDataFactory).
- * </p>
- *
- * @since 3.2
- */
-public final class GridDataFactory {
- private final Control m_control;
- private final PixelConverter m_pixelConverter;
- private final GridData m_data;
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Constructor
- //
- ////////////////////////////////////////////////////////////////////////////
- private GridDataFactory(Control control, GridData gridData) {
- m_control = control;
- m_pixelConverter = new PixelConverter(m_control);
- //
- m_data = gridData;
- if (m_control.getLayoutData() != m_data) {
- m_control.setLayoutData(m_data);
- }
- }
-
- /**
- * Creates new {@link GridDataFactory} with new {@link GridData}.
- */
- public static GridDataFactory create(Control control) {
- return new GridDataFactory(control, new GridData());
- }
-
- /**
- * Creates new {@link GridDataFactory} for modifying {@link GridData} already installed in
- * control.
- */
- public static GridDataFactory modify(Control control) {
- GridData gridData;
- {
- Object existingLayoutData = control.getLayoutData();
- if (existingLayoutData instanceof GridData) {
- gridData = (GridData) existingLayoutData;
- } else {
- gridData = new GridData();
- }
- }
- return new GridDataFactory(control, gridData);
- }
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Span
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Sets the GridData span. The span controls how many cells are filled by the control.
- *
- * @param hSpan
- * number of columns spanned by the control
- * @param vSpan
- * number of rows spanned by the control
- * @return this
- */
- public GridDataFactory span(int hSpan, int vSpan) {
- m_data.horizontalSpan = hSpan;
- m_data.verticalSpan = vSpan;
- return this;
- }
-
- /**
- * Sets the GridData span. The span controls how many cells are filled by the control.
- *
- * @param hSpan
- * number of columns spanned by the control
- * @return this
- */
- public GridDataFactory spanH(int hSpan) {
- m_data.horizontalSpan = hSpan;
- return this;
- }
-
- /**
- * Sets the GridData span. The span controls how many cells are filled by the control.
- *
- * @param vSpan
- * number of rows spanned by the control
- * @return this
- */
- public GridDataFactory spanV(int vSpan) {
- m_data.verticalSpan = vSpan;
- return this;
- }
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Hint
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Sets the width and height hints. The width and height hints override the control's preferred
- * size. If either hint is set to SWT.DEFAULT, the control's preferred size is used.
- *
- * @param xHint
- * horizontal hint (pixels), or SWT.DEFAULT to use the control's preferred size
- * @param yHint
- * vertical hint (pixels), or SWT.DEFAULT to use the control's preferred size
- * @return this
- */
- public GridDataFactory hint(int xHint, int yHint) {
- m_data.widthHint = xHint;
- m_data.heightHint = yHint;
- return this;
- }
-
- /**
- * Sets hint in chars.
- */
- public GridDataFactory hintC(int xHintInChars, int yHintInChars) {
- hintHC(xHintInChars);
- hintVC(yHintInChars);
- return this;
- }
-
- /**
- * Sets the width hint.
- *
- * @return this
- */
- public GridDataFactory hintH(int xHint) {
- m_data.widthHint = xHint;
- return this;
- }
-
- /**
- * Sets the width hint to the minimum of current hint and given <code>otherHint</code>.
- *
- * @return this
- */
- public GridDataFactory hintHMin(int otherHint) {
- m_data.widthHint = Math.min(m_data.widthHint, otherHint);
- return this;
- }
-
- /**
- * Sets the width hint in chars.
- *
- * @return this
- */
- public GridDataFactory hintHC(int hintInChars) {
- return hintH(m_pixelConverter.convertWidthInCharsToPixels(hintInChars));
- }
-
- /**
- * Sets the width hint.
- *
- * @return this
- */
- public GridDataFactory hintHU(int hintInDLU) {
- return hintH(m_pixelConverter.convertHorizontalDLUsToPixels(hintInDLU));
- }
-
- /**
- * Sets the height hint.
- *
- * @return this
- */
- public GridDataFactory hintV(int yHint) {
- m_data.heightHint = yHint;
- return this;
- }
-
- /**
- * Sets the height hint in chars.
- *
- * @return this
- */
- public GridDataFactory hintVC(int hintInChars) {
- return hintV(m_pixelConverter.convertHeightInCharsToPixels(hintInChars));
- }
-
- /**
- * Increments horizontal hint on given value.
- *
- * @return this
- */
- public GridDataFactory hintHAdd(int increment) {
- return hintV(m_data.widthHint + increment);
- }
-
- /**
- * Increments vertical hint on given value.
- *
- * @return this
- */
- public GridDataFactory hintVAdd(int increment) {
- return hintV(m_data.heightHint + increment);
- }
-
- /**
- * Sets the width and height hints. The width and height hints override the control's preferred
- * size. If either hint is set to SWT.DEFAULT, the control's preferred size is used.
- *
- * @param hint
- * size (pixels) to be used instead of the control's preferred size. If the x or y values
- * are set to SWT.DEFAULT, the control's computeSize() method will be used to obtain that
- * dimension of the preferred size.
- * @return this
- */
- public GridDataFactory hint(Point hint) {
- m_data.widthHint = hint.x;
- m_data.heightHint = hint.y;
- return this;
- }
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Minimum size
- //
- ////////////////////////////////////////////////////////////////////////////
- public GridDataFactory minH(int minimumWidth) {
- m_data.minimumWidth = minimumWidth;
- return this;
- }
-
- public GridDataFactory minHC(int widthInChars) {
- return minH(m_pixelConverter.convertWidthInCharsToPixels(widthInChars));
- }
-
- public GridDataFactory minV(int minimumHeight) {
- m_data.minimumHeight = minimumHeight;
- return this;
- }
-
- public GridDataFactory minVC(int heightInChars) {
- return minV(m_pixelConverter.convertHeightInCharsToPixels(heightInChars));
- }
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Alignment
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Sets the alignment of the control within its cell.
- *
- * @param hAlign
- * horizontal alignment. One of SWT.BEGINNING, SWT.CENTER, SWT.END, or SWT.FILL.
- * @param vAlign
- * vertical alignment. One of SWT.BEGINNING, SWT.CENTER, SWT.END, or SWT.FILL.
- * @return this
- */
- public GridDataFactory align(int hAlign, int vAlign) {
- m_data.horizontalAlignment = hAlign;
- m_data.verticalAlignment = vAlign;
- return this;
- }
-
- /**
- * Sets the horizontal and vertical alignment to GridData.FILL.
- */
- public GridDataFactory fill() {
- return align(GridData.FILL, GridData.FILL);
- }
-
- /**
- * Sets the horizontal alignment of the control within its cell.
- *
- * @param hAlign
- * horizontal alignment. One of SWT.BEGINNING, SWT.CENTER, SWT.END, or SWT.FILL.
- * @return this
- */
- public GridDataFactory alignH(int hAlign) {
- m_data.horizontalAlignment = hAlign;
- return this;
- }
-
- /**
- * Sets the horizontal alignment of the control to GridData.BEGINNING
- *
- * @return this
- */
- public GridDataFactory alignHL() {
- return alignH(GridData.BEGINNING);
- }
-
- /**
- * Sets the horizontal alignment of the control to GridData.CENTER
- *
- * @return this
- */
- public GridDataFactory alignHC() {
- return alignH(GridData.CENTER);
- }
-
- /**
- * Sets the horizontal alignment of the control to GridData.FILL
- *
- * @return this
- */
- public GridDataFactory alignHF() {
- return alignH(GridData.FILL);
- }
-
- /**
- * Sets the horizontal alignment of the control to GridData.FILL
- *
- * @return this
- */
- public GridDataFactory fillH() {
- return alignHF();
- }
-
- /**
- * Sets the horizontal alignment of the control to GridData.END
- *
- * @return this
- */
- public GridDataFactory alignHR() {
- return alignH(GridData.END);
- }
-
- /**
- * Sets the vertical alignment of the control within its cell.
- *
- * @param vAlign
- * vertical alignment. One of SWT.BEGINNING, SWT.CENTER, SWT.END, or SWT.FILL.
- * @return this
- */
- public GridDataFactory alignV(int vAlign) {
- m_data.verticalAlignment = vAlign;
- return this;
- }
-
- /**
- * Sets the vertical alignment of the control to GridData.BEGINNING
- *
- * @return this
- */
- public GridDataFactory alignVT() {
- return alignV(GridData.BEGINNING);
- }
-
- /**
- * Sets the vertical alignment of the control to GridData.CENTER
- *
- * @return this
- */
- public GridDataFactory alignVM() {
- return alignV(GridData.CENTER);
- }
-
- /**
- * Sets the vertical alignment of the control to GridData.FILL
- *
- * @return this
- */
- public GridDataFactory alignVF() {
- return alignV(GridData.FILL);
- }
-
- /**
- * Sets the vertical alignment of the control to GridData.FILL
- *
- * @return this
- */
- public GridDataFactory fillV() {
- return alignVF();
- }
-
- /**
- * Sets the vertical alignment of the control to GridData.END
- *
- * @return this
- */
- public GridDataFactory alignVB() {
- return alignV(GridData.END);
- }
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Indent
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Sets the indent of the control within the cell in pixels.
- */
- public GridDataFactory indentH(int hIndent) {
- m_data.horizontalIndent = hIndent;
- return this;
- }
-
- /**
- * Sets the indent of the control within the cell in characters.
- */
- public GridDataFactory indentHC(int hIndent) {
- m_data.horizontalIndent = m_pixelConverter.convertWidthInCharsToPixels(hIndent);
- return this;
- }
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Grab
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Determines whether extra horizontal or vertical space should be allocated to this control's
- * column when the layout resizes. If any control in the column is set to grab horizontal then the
- * whole column will grab horizontal space. If any control in the row is set to grab vertical then
- * the whole row will grab vertical space.
- *
- * @param horizontal
- * true if the control's column should grow horizontally
- * @param vertical
- * true if the control's row should grow vertically
- * @return this
- */
- public GridDataFactory grab(boolean horizontal, boolean vertical) {
- m_data.grabExcessHorizontalSpace = horizontal;
- m_data.grabExcessVerticalSpace = vertical;
- return this;
- }
-
- public GridDataFactory grabH() {
- m_data.grabExcessHorizontalSpace = true;
- return this;
- }
-
- public GridDataFactory grabV() {
- m_data.grabExcessVerticalSpace = true;
- return this;
- }
-
- public GridDataFactory grab() {
- return grab(true, true);
- }
-
- ////////////////////////////////////////////////////////////////////////////
- //
- // Exclude
- //
- ////////////////////////////////////////////////////////////////////////////
- public GridDataFactory exclude(boolean value) {
- m_data.exclude = value;
- return this;
- }
-}