diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/SWTUtils.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/SWTUtils.java | 1032 |
1 files changed, 0 insertions, 1032 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/SWTUtils.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/SWTUtils.java deleted file mode 100644 index 862b26bc2..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/guiutils/SWTUtils.java +++ /dev/null @@ -1,1032 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 Sybase, Inc. 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: - * Sybase, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.jsf.common.ui.internal.guiutils; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.ScrolledComposite; -import org.eclipse.swt.events.ControlEvent; -import org.eclipse.swt.events.ControlListener; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.List; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.swt.widgets.Text; - -/** - * This utility class provides convenience methods in creating controls on - * preference pages. - * - * @author mengbo - */ -public class SWTUtils { - // Defaults of controls - private static final int DEFAULT_BUTTON_WIDTH = 70; - - private static final int DEFAULT_COMBO_WIDTH = 100; - - private static final int DEFAULT_TEXTBOX_WIDTH = 100; - - private static final int DEFAULT_RADIO_FILL = GridData.HORIZONTAL_ALIGN_BEGINNING - | GridData.VERTICAL_ALIGN_CENTER; - - /** - * Creates a new checkbox and sets the default layout data. - * - * @param parent - * the composite in which to create the checkbox - * @return the new checkbox - */ - public static Button createCheckBox(Composite parent) { - return createCheckBox(parent, null, 1, 0); - } - - /** - * Creates a new checkbox and sets the default layout data. - * - * @param parent - * the composite in which to create the checkbox - * @param label - * the string to set into the checkbox - * @param numColumns - * the number of columns the new checkbox is to occupy - * @return the new checkbox - */ - public static Button createCheckBox(Composite parent, String label, - int numColumns) { - return createCheckBox(parent, label, numColumns, 0); - } - - /** - * Creates a new checkbox and sets the default layout data. - * - * @param parent - * the composite in which to create the checkbox - * @param label - * the string to set into the checkbox - * @param numColumns - * the number of columns the new checkbox is to occupy - * @param indent - * the number of pixels to indent from the left - * @return the new checkbox - */ - public static Button createCheckBox(Composite parent, String label, - int numColumns, int indent) { - Button button = new Button(parent, SWT.CHECK | SWT.LEFT); - if (label == null) { - button.setAlignment(SWT.CENTER); - } - GridData data = new GridData(GridData.FILL); - data.horizontalSpan = numColumns; - data.horizontalIndent = indent; - button.setLayoutData(data); - if (label != null) { - button.setText(label); - } - return button; - } - - /** - * Creates a combo box and sets the default layout data. - * - * @param parent - * the composite in which to create the combo - * @param items - * the items in the combo - * @param numColumns - * the number of columns the new combo is to occupy - * @return the new combo box - */ - public static Combo createCombo(Composite parent, String[] items, - int numColumns) { - return createCombo(parent, items, numColumns, DEFAULT_COMBO_WIDTH); - } - - /** - * Creates a combo box and sets the default layout data. - * - * @param parent - * the composite in which to create the combo - * @param tokenString - * a tokenized string that will be split into the fields. - * @param numColumns - * the number of columns the new combo is to occupy - * @return the new combo box - */ - public static Combo createCombo(Composite parent, String tokenString, - int numColumns) { - return createCombo(parent, getTokenNames(tokenString), numColumns, - DEFAULT_COMBO_WIDTH); - } - - /** - * Creates a combo box and sets the default layout data. - * - * @param parent - * the composite in which to create the combo - * @param tokenString - * a tokenized string that will be split into the fields. - * @param numColumns - * the number of columns the new combo is to occupy - * @param minWidth - * minimum width of combo box in pixels - * @return the new combo box - */ - public static Combo createCombo(Composite parent, String tokenString, - int numColumns, int minWidth) { - return createCombo(parent, getTokenNames(tokenString), numColumns, - minWidth); - } - - /** - * Creates a combo box and sets the default layout data. - * - * @param parent - * the composite in which to create the combo - * @param items - * the items in the combo - * @param numColumns - * the number of columns the new combo is to occupy - * @param minWidth - * minimum width of combo box in pixels - * @return the new combo box - */ - public static Combo createCombo(Composite parent, String[] items, - int numColumns, int minWidth) { - return createCombo(parent, items, numColumns, minWidth, false); - } - - /** - * Creates a combo box and sets the default layout data. - * - * @param parent - * the composite in which to create the combo - * @param tokenString - * @param numColumns - * the number of columns the new combo is to occupy - * @param minWidth - * minimum width of combo box in pixels - * @param editable - * whether the items in the combo is editable - * @return the new combo box - */ - public static Combo createCombo(Composite parent, String tokenString, - int numColumns, int minWidth, boolean editable) { - return createCombo(parent, getTokenNames(tokenString), numColumns, - minWidth, editable); - } - - /** - * Creates a combo box and sets the default layout data. - * - * @param parent - * the composite in which to create the combo - * @param items - * the items in the combo - * @param numColumns - * the number of columns the new combo is to occupy - * @param minWidth - * minimum width of combo box in pixels - * @param editable - * whether the items in the combo is editable - * @return the new combo box - */ - public static Combo createCombo(Composite parent, String[] items, - int numColumns, int minWidth, boolean editable) { - Combo combo; - GridData data; - if (editable) { - combo = new Combo(parent, SWT.DROP_DOWN); - data = new GridData(GridData.FILL_HORIZONTAL); - } else { - combo = new Combo(parent, SWT.DROP_DOWN | SWT.READ_ONLY); - data = new GridData(GridData.FILL); - } - data.horizontalSpan = numColumns; - data.widthHint = minWidth; - combo.setLayoutData(data); - combo.setItems(items); - return combo; - } - - /** - * Creates composite control and sets the default layout data. - * - * @param parent - * the parent of the new composite - * @param numColumns - * the number of columns for the new composite - * @return the newly-created coposite - */ - public static Composite createComposite(Composite parent, int numColumns) { - return createComposite(parent, numColumns, -1, -1, - GridData.FILL_HORIZONTAL, -1, -1, -1); - } - - /** - * Creates composite control and sets the default layout data. - * - * @param parent - * the parent of the new composite - * @param numColumns - * the number of columns for the new composite - * @param verticalSpacing - * the spacing between rows. - * @param horizontalSpan - * the span for this new composite over the original composite. - * @return the newly-created coposite - */ - public static Composite createComposite(Composite parent, int numColumns, - int verticalSpacing, int horizontalSpan) { - return createComposite(parent, numColumns, verticalSpacing, - horizontalSpan, GridData.FILL_HORIZONTAL, -1, -1, -1); - } - - /** - * Creates composite control and sets the default layout data. - * - * @param parent - * the parent of the new composite - * @param numColumns - * the number of columns for the new composite - * @param verticalSpacing - * the spacing between rows. - * @param horizontalSpan - * the span for this new composite over the original composite. - * @param gridDataFill - * the fill to use for this composite. - * @return the newly-created coposite - */ - public static Composite createComposite(Composite parent, int numColumns, - int verticalSpacing, int horizontalSpan, int gridDataFill) { - return createComposite(parent, numColumns, verticalSpacing, - horizontalSpan, gridDataFill, -1, -1, -1); - } - - /** - * Creates composite control and sets the default layout data. - * - * @param parent - * the parent of the new composite - * @param numColumns - * the number of columns for the new composite - * @param verticalSpacing - * the spacing between rows. - * @param horizontalSpan - * the span for this new composite over the original composite. - * @param gridDataFill - * the fill to use for this composite. - * @param horizontalSpacing - * the spacing between objects. - * @param marginWidth - * the spacing at start and end of composite. - * @param marginHeight - * the spacing above and below composite. - * @return the newly-created coposite - */ - public static Composite createComposite(Composite parent, int numColumns, - int verticalSpacing, int horizontalSpan, int gridDataFill, - int horizontalSpacing, int marginWidth, int marginHeight) { - Composite composite = new Composite(parent, SWT.NULL); - GridLayout layout = new GridLayout(); - layout.numColumns = numColumns; - if (verticalSpacing >= 0) { - layout.verticalSpacing = verticalSpacing; - } - if (horizontalSpacing >= 0) { - layout.horizontalSpacing = horizontalSpacing; - } - if (marginWidth >= 0) { - layout.marginWidth = marginWidth; - } - if (marginHeight >= 0) { - layout.marginHeight = marginHeight; - } - composite.setLayout(layout); - GridData gd = new GridData(gridDataFill); - if (horizontalSpan > 0) { - gd.horizontalSpan = horizontalSpan; - } - composite.setLayoutData(gd); - - return composite; - } - - /** - * Utility method that creates a group and sets the default layout data. - * - * @param parent - * the parent for the new group - * @param title - * the label for the new group - * @param numColumns - * the number of columns for the new group - * @return the newly created group - */ - public static Group createGroup(Composite parent, String title, - int numColumns) { - return createGroup(parent, title, numColumns, -1, - GridData.FILL_HORIZONTAL); - } - - /** - * Utility method that creates a group and sets the default layout data. - * - * @param parent - * the parent for the new group - * @param title - * the label for the new group - * @param numColumns - * the number of columns for the new group - * @param horizontalSpan - * the number of columns this group should span on the parent - * composite. - * @param gridDataFill - * the fill style of the new group -- set to for filling just - * around the object: GridData.BEGINNING | GridData.CENTER - * @return the newly created group - */ - public static Group createGroup(Composite parent, String title, - int numColumns, int horizontalSpan, int gridDataFill) { - Group group = new Group(parent, SWT.SHADOW_ETCHED_IN); - GridLayout layout = new GridLayout(); - layout.numColumns = numColumns; - group.setLayout(layout); - GridData data = new GridData(gridDataFill); - - if (horizontalSpan > 0) { - data.horizontalSpan = horizontalSpan; - } - group.setLayoutData(data); - group.setText(title); - return group; - } - - /** - * Utility method that creates a label instance and sets the default layout - * data. - * - * @param parent - * the parent for the new label - * @param text - * the text for the new label - * @param numColumns - * the number of columns for the new composite - * @return the new label - */ - public static Label createLabel(Composite parent, String text, - int numColumns) { - return createLabel(parent, text, numColumns, 0); - } - - /** - * Utility method that creates a label instance and sets the default layout - * data. - * - * @param parent - * the parent for the new label - * @param text - * the text for the new label - * @param numColumns - * the number of columns for the new composite - * @param indent - * number of pixels to indent from the left - * @return the new label - */ - public static Label createLabel(Composite parent, String text, - int numColumns, int indent) { - Label label = new Label(parent, SWT.LEFT); - GridData data = new GridData(); - data.horizontalSpan = numColumns; - data.horizontalAlignment = GridData.FILL; - data.horizontalIndent = indent; - label.setLayoutData(data); - label.setText(text); - return label; - } - - /** - * Create a image label for sticking in a composite. The backgroud color is - * optional. Because images can have "transparent" natures, you might want - * to say the background is something other than the defaults composites - * background. - * - * NOTE: the caller is responsible for cleanup of the image and color - * objects. - * - * @param parent - * the parent for the new label - * @param theImage - * the image for the new label - * @param numColumns - * the number of columns for the new composite - * @param background - * pass null to use the composites background. - * @return the new label - */ - public static Label createLabelImage(Composite parent, Image theImage, - int numColumns, Color background) { - Label label = new Label(parent, SWT.LEFT); - GridData data = new GridData(); - data.horizontalSpan = numColumns; - data.horizontalAlignment = GridData.FILL; - label.setLayoutData(data); - if (background != null) { - label.setBackground(background); - } - label.setImage(theImage); - return label; - } - - /** - * Utility method that creates a push button instance and sets the default - * layout data. - * - * @param parent - * the parent for the new button - * @param label - * the label for the new button - * @return the newly-created button - */ - public static Button createPushButton(Composite parent, String label) { - return createPushButton(parent, label, DEFAULT_BUTTON_WIDTH); - } - - /** - * Utility method that creates a push button instance and sets the default - * layout data. - * - * @param parent - * the parent for the new button - * @param label - * the label for the new button - * @param widthHint - * use this width for the button. - * @return the newly-created button - */ - public static Button createPushButton(Composite parent, String label, - int widthHint) { - Button button = new Button(parent, SWT.PUSH); - GridData data = new GridData(); - data.horizontalAlignment = GridData.FILL_HORIZONTAL; - data.widthHint = widthHint; - button.setLayoutData(data); - button.setText(label); - return button; - } - - /** - * Utility method that creates a push button instance and sets the default - * layout data. - * - * @param parent - * the parent for the new button - * @param theImage - * the label for the new button - * @param widthHint - * use this width for the button. - * @return the newly-created button - */ - public static Button createPushButton(Composite parent, Image theImage, - int widthHint) { - Button button = new Button(parent, SWT.PUSH); - GridData data = new GridData(); - data.horizontalAlignment = GridData.FILL_HORIZONTAL; - data.widthHint = widthHint; - button.setLayoutData(data); - button.setImage(theImage); - button.setAlignment(SWT.CENTER); - return button; - } - - /** - * Utility method that creates a radio button instance and sets the default - * layout data. - * - * @param parent - * the parent for the new button - * @param label - * the label for the new button - * @return the newly-created button - */ - public static Button createRadioButton(Composite parent, String label) { - return createRadioButton(parent, label, DEFAULT_RADIO_FILL); - } - - /** - * Utility method that creates a radio button instance and sets the default - * layout data. - * - * @param parent - * the parent for the new button - * @param label - * the label for the new button - * @param gridDataFill - * @return the newly-created button - */ - public static Button createRadioButton(Composite parent, String label, - int gridDataFill) { - return createRadioButton(parent, label, gridDataFill, 1); - } - - /** - * Utility method that creates a radio button instance and sets the default - * layout data. - * - * @param parent - * the parent for the new button - * @param label - * the label for the new button - * @param gridDataFill - * @param horizontalSpan - * number of columns occupied by button - * @return the newly-created button - */ - public static Button createRadioButton(Composite parent, String label, - int gridDataFill, int horizontalSpan) { - Button button = new Button(parent, SWT.RADIO | SWT.LEFT); - GridData data = new GridData(gridDataFill); - data.horizontalSpan = horizontalSpan; - button.setLayoutData(data); - button.setText(label); - return button; - } - - /** - * Utility method that creates an empty line - * - * @param parent - * the parent for the new label - * @param numColumns - * the number of columns for the new composite - */ - public static void createSpacer(Composite parent, int numColumns) { - createSpacer(parent, numColumns, 0); - } - - /** - * Utility method that creates an empty line - * - * @param parent - * the parent for the new label - * @param numColumns - * the number of columns for the new composite - * @param minWidth - * minimum width of spacer - */ - public static void createSpacer(Composite parent, int numColumns, - int minWidth) { - Label label = new Label(parent, SWT.NONE); - GridData data = new GridData(); - data.horizontalSpan = numColumns; - data.widthHint = minWidth; - label.setLayoutData(data); - } - - /** - * Create a separator that goes across the entire page - * - * @param parent - * the parent for the new label - * @param numColumns - * the number of columns for the new composite - */ - public static void createSeparator(Composite parent, int numColumns) { - Label separator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL); - GridData data = new GridData(); - data.horizontalSpan = numColumns; - data.horizontalAlignment = GridData.FILL; - data.grabExcessHorizontalSpace = true; - separator.setLayoutData(data); - } - - /** - * Create a table from a Composite object - * - * @param composite - * the Composite this table is to be created from - * @param tokenString - * A string containing names of the columns in the order that - * they should be displayed in the table with each column - * separated by a comma(',') or null if no columns need to be - * created. - * @param tablewidth - * the minimum width for the table - * @param tableHeight - * @return the new table - */ - public static Table createTable(Composite composite, String tokenString, - int tablewidth, int tableHeight) { - // SINGLE, MULTI, CHECK, FULL_SELECTION, HIDE_SELECTION - int style = SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE | SWT.BORDER - | SWT.FULL_SELECTION; - Table table = new Table(composite, style); - GridData gridData = new GridData(GridData.FILL_BOTH); - if (tablewidth > 0) { - gridData.widthHint = tablewidth; - } - if (tableHeight > 0) { - gridData.heightHint = tableHeight; - } - table.setLayoutData(gridData); - table.setHeaderVisible(true); - table.setLinesVisible(true); - - if (tokenString != null) { - String[] columns = getTokenNames(tokenString); - - int columnSize = 50; - if (tablewidth > 0) { - columnSize = tablewidth / columns.length; - } - for (int ii = 0; ii < columns.length; ii++) { - /*(void)*/ createTableColumn(table, columns[ii], ii, - columnSize); - } - } - - return table; - } - - /** - * Create a table from a Composite object - * - * @param composite - * the Composite this table is to be created from - * @param columns - * A string array containing names of the columns in the order - * that they should be displayed in the table, or null if no - * columns need to be created. - * @param tablewidth - * the minimum width for the table - * @return the new table - */ - public static Table createTable(Composite composite, String[] columns, - int tablewidth) { - int style = SWT.BORDER | SWT.FULL_SELECTION; - Table table = new Table(composite, style); - GridData gridData = new GridData(GridData.FILL_BOTH); - gridData.widthHint = tablewidth; - table.setLayoutData(gridData); - table.setHeaderVisible(true); - table.setLinesVisible(true); - - if (columns != null) { - for (int i = 0; i < columns.length; i++) { - /*(void)*/ createTableColumn(table, columns[i], i); - } - } - - return table; - } - - /** - * Create a table column - * - * @param parent - * the table that contains this column - * @param name - * name of this column - * @param index - * the column within the parent composite - * @return the new table column - */ - public static TableColumn createTableColumn(Table parent, String name, - int index) { - TableColumn column = new TableColumn(parent, SWT.LEFT, index); - column.setText(name); - return column; - } - - /** - * Create a table column with the image and the width of the column is set - * to the image width. - * - * @param parent - * the table that contains this column - * @param image - * iamge for this column - * @param index - * @return the new table column - */ - public static TableColumn createTableColumn(Table parent, Image image, - int index) { - TableColumn column = new TableColumn(parent, SWT.LEFT, index); - column.setImage(image); - column.setWidth(image.getBounds().width); - column.setResizable(false); - return column; - } - - /** - * Create a table column - * - * @param parent - * the table that contains this column - * @param name - * name of this column - * @param index - * the column within the parent composite - * @param tablewidth - * the width for the column - * @return the new table column - */ - public static TableColumn createTableColumn(Table parent, String name, - int index, int tablewidth) { - TableColumn column = new TableColumn(parent, SWT.LEFT, index); - column.setText(name); - column.setWidth(tablewidth); - return column; - } - - /** - * Create a text field - * - * @param parent - * the parent of the new text field - * @return the new text field - */ - public static Text createTextBox(Composite parent) { - return createTextBox(parent, 1, DEFAULT_TEXTBOX_WIDTH); - } - - /** - * Create a text field - * - * @param parent - * the parent of the new text field - * @param text - * @return the new text field - */ - public static Text createTextBox(Composite parent, String text) { - Text textbox = createTextBox(parent, 1); - textbox.setText(text); - return textbox; - } - - /** - * Create a text field - * - * @param parent - * the parent of the new text field - * @param numColumns - * number of columns the text box is to occupy - * @return the new text field - */ - public static Text createTextBox(Composite parent, int numColumns) { - return createTextBox(parent, numColumns, DEFAULT_TEXTBOX_WIDTH); - } - - /** - * Create a text field - * - * @param parent - * the parent of the new text field - * @param numColumns - * number of columns the text box is to occupy - * @param minWidth - * minimum width of text field - * @return the new text field - */ - public static Text createTextBox(Composite parent, int numColumns, - int minWidth) { - return createTextBox(parent, numColumns, minWidth, SWT.DEFAULT); - } - - /** - * Create a text field - * - * @param parent - * the parent of the new text field - * @param numColumns - * number of columns the text box is to occupy - * @param minWidth - * minimum width of text field - * @param minHeight - * @return the new text field - */ - public static Text createTextBox(Composite parent, int numColumns, - int minWidth, int minHeight) { - Text text = new Text(parent, SWT.SINGLE | SWT.BORDER); - GridData data = new GridData(GridData.FILL); - data.horizontalSpan = numColumns; - data.widthHint = minWidth; - data.heightHint = minHeight; - text.setLayoutData(data); - return text; - } - - /** - * Create a text field that is scrollable. - * - * @param parent - * the parent of the new text field - * @param numColumns - * number of columns the text box is to occupy - * @param minWidth - * minimum width of text field - * @param minHeight - * minimum height of text field - * @return the new text field - */ - public static Text createTextBoxScrollable(Composite parent, - int numColumns, int minWidth, int minHeight) { - Text text = new Text(parent, SWT.BORDER | SWT.V_SCROLL | SWT.WRAP); - GridData data = new GridData((minWidth > 0) ? GridData.FILL - : GridData.FILL_HORIZONTAL); - data.horizontalSpan = numColumns; - if (minWidth > 0) { - data.widthHint = minWidth; - } - data.heightHint = minHeight; - - text.setLayoutData(data); - return text; - } - - /** - * Create a list with the items listed in it. - * - * @param parent - * the parent of the new text field - * @param numColumns - * number of columns the text box is to occupy - * @param minWidth - * minimum width of text field - * @param minHeight - * minimum height of text field - * @param items - * the items in the list - * @return the new list - */ - public static List createList(Composite parent, int numColumns, - int minWidth, int minHeight, String[] items) { - return createList(parent, numColumns, minWidth, minHeight, items, true); - } - - /** - * Create a list with the items listed in it. - * - * @param parent - * the parent of the new list box - * @param numColumns - * number of columns the list box is to occupy - * @param minWidth - * minimum width of list box - * @param minHeight - * minimum height of list box - * @param items - * the items in the list - * @param bmulti - * whether multiple item selection is allowed - * @return the new list - */ - public static List createList(Composite parent, int numColumns, - int minWidth, int minHeight, String[] items, boolean bmulti) { - return createList(parent, numColumns, minWidth, minHeight, items, - bmulti, 1); - } - - /** - * Create a list with the items listed in it. - * - * @param parent - * the parent of the new list box - * @param numColumns - * number of columns the list box is to occupy - * @param minWidth - * minimum width of list box - * @param minHeight - * minimum height of list box - * @param items - * the items in the list - * @param bmulti - * whether multiple item selection is allowed - * @param verticalSpan - * the number of rows the list box is to occupy - * @return the new list - */ - public static List createList(Composite parent, int numColumns, - int minWidth, int minHeight, String[] items, boolean bmulti, - int verticalSpan) { - List theList; - if (bmulti) - theList = new List(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI - | SWT.BORDER); - else - theList = new List(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE - | SWT.BORDER); - GridData data = new GridData(GridData.FILL_HORIZONTAL - | GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_VERTICAL); - data.horizontalSpan = numColumns; - data.widthHint = minWidth; - data.heightHint = minHeight; - data.verticalSpan = verticalSpan; - theList.setLayoutData(data); - if (items != null) { - theList.setItems(items); - } - - return theList; - } - - /** - * Computes the size of the composite inside the scroll area so that scroll - * bars show up correctly. - * - * @param parentComposite - * @param childComposite - */ - public static void computeScrollArea(ScrolledComposite parentComposite, - Composite childComposite) { - // Point pt = childComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT); - // childComposite.setSize(pt); - - Point pt = childComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT); - parentComposite.setExpandHorizontal(true); - parentComposite.setExpandVertical(true); - parentComposite.setMinWidth(pt.x); - parentComposite.setMinHeight(pt.y); - } - - /** - * Builds an array of strings from a token list string. The token separator - * is a comma (','). - * - * @param tokenString - * @return String[] - */ - public static String[] getTokenNames(String tokenString) { - if (tokenString == null) { - return new String[0]; - } - - return tokenString.split(","); //$NON-NLS-1$ - } - - /** - * Enable/Disable the widget and all its children. - * - * @param widget - * The widget to be enabled/disabled. - * @param state - * Enable widget if true. Disable otherwise. - */ - public static void setWidgetState(Control widget, boolean state) { - if (widget instanceof Composite) { - Control widgets[] = ((Composite) widget).getChildren(); - for (int i = 0; i < widgets.length; i++) { - setWidgetState(widgets[i], state); - } - } - widget.setEnabled(state); - } - - // --------------------------------------------------------------------------- - // following is for workaround eclipse problem - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=40281 - static ControlListener _listener = new ControlListener() { - public void controlResized(ControlEvent e) { - final Composite c = (Composite) e.widget; - c.getDisplay().asyncExec(new Runnable() { - public void run() { - if (!c.isDisposed()) { - // XXX: in 3.0, should use c.layout(true) - // in 3.1, should use c.layout(true, true) - c.layout(true); - c.redraw(); - } - } - }); - } - - public void controlMoved(ControlEvent e) { - // nothing for move - } - }; - - /** - * @param composite - */ - public static void workaroundResize(Composite composite) { - composite.addControlListener(_listener); - } -} |