diff options
Diffstat (limited to 'examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java')
-rw-r--r-- | examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java | 761 |
1 files changed, 0 insertions, 761 deletions
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java deleted file mode 100644 index 3fdb6dc3f7..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/FormLayoutTab.java +++ /dev/null @@ -1,761 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 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.swt.examples.layoutexample; - - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.events.*; -import org.eclipse.swt.custom.*; - -class FormLayoutTab extends Tab { - /* Controls for setting layout parameters */ - Combo marginHeight, marginWidth; - /* The example layout instance */ - FormLayout formLayout; - /* TableEditors and related controls*/ - TableEditor comboEditor, widthEditor, heightEditor; - TableEditor leftEditor, rightEditor, topEditor, bottomEditor; - CCombo combo; - Text widthText, heightText; - Button leftAttach, rightAttach, topAttach, bottomAttach; - - /* Constants */ - final int COMBO_COL = 1; - final int WIDTH_COL = 2; - final int HEIGHT_COL = 3; - final int LEFT_COL = 4; - final int RIGHT_COL = 5; - final int TOP_COL = 6; - final int BOTTOM_COL = 7; - - final int MODIFY_COLS = 4; // The number of columns with combo or text editors - final int TOTAL_COLS = 8; - - /** - * Creates the Tab within a given instance of LayoutExample. - */ - FormLayoutTab(LayoutExample instance) { - super(instance); - } - - /** - * Returns the constant for the alignment for an - * attachment given a string. - */ - int alignmentConstant (String align) { - if (align.equals("LEFT")) return SWT.LEFT; - if (align.equals("RIGHT")) return SWT.RIGHT; - if (align.equals("TOP")) return SWT.TOP; - if (align.equals("BOTTOM")) return SWT.BOTTOM; - if (align.equals("CENTER")) return SWT.CENTER; - return SWT.DEFAULT; - } - - /** - * Returns a string representing the alignment for an - * attachment given a constant. - */ - String alignmentString (int align) { - switch (align) { - case SWT.LEFT: return "LEFT"; - case SWT.RIGHT: return "RIGHT"; - case SWT.TOP: return "TOP"; - case SWT.BOTTOM: return "BOTTOM"; - case SWT.CENTER: return "CENTER"; - } - return "DEFAULT"; - } - - /** - * Update the attachment field in case the type of control - * has changed. - */ - String checkAttachment (String oldAttach, FormAttachment newAttach) { - String controlClass = newAttach.control.getClass().toString (); - String controlType = controlClass.substring (controlClass.lastIndexOf ('.') + 1); - int i = 0; - while (i < oldAttach.length () && !Character.isDigit(oldAttach.charAt (i))) { - i++; - } - String index = oldAttach.substring (i, oldAttach.indexOf (',')); - return controlType + index + "," + newAttach.offset + ":" + alignmentString (newAttach.alignment); - } - - /** - * Creates the widgets in the "child" group. - */ - void createChildWidgets () { - /* Add common controls */ - super.createChildWidgets (); - - /* Resize the columns */ - table.getColumn (LEFT_COL).setWidth (100); - table.getColumn (RIGHT_COL).setWidth (100); - table.getColumn (TOP_COL).setWidth (100); - table.getColumn (BOTTOM_COL).setWidth (100); - - /* Add TableEditors */ - comboEditor = new TableEditor (table); - widthEditor = new TableEditor (table); - heightEditor = new TableEditor (table); - leftEditor = new TableEditor (table); - rightEditor = new TableEditor (table); - topEditor = new TableEditor (table); - bottomEditor = new TableEditor (table); - table.addMouseListener (new MouseAdapter () { - public void mouseDown(MouseEvent e) { - resetEditors(); - index = table.getSelectionIndex (); - Point pt = new Point (e.x, e.y); - newItem = table.getItem (pt); - if (newItem == null) return; - TableItem oldItem = comboEditor.getItem (); - if (newItem == oldItem || newItem != lastSelected) { - lastSelected = newItem; - return; - } - table.showSelection (); - - combo = new CCombo (table, SWT.READ_ONLY); - createComboEditor (combo, comboEditor); - - widthText = new Text (table, SWT.SINGLE); - widthText.setText (((String [])data.elementAt (index)) [WIDTH_COL]); - createTextEditor (widthText, widthEditor, WIDTH_COL); - - heightText = new Text (table, SWT.SINGLE); - heightText.setText (((String [])data.elementAt (index)) [HEIGHT_COL]); - createTextEditor (heightText, heightEditor, HEIGHT_COL); - - leftAttach = new Button (table, SWT.PUSH); - leftAttach.setText (LayoutExample.getResourceString ("Attach_Edit")); - leftEditor.horizontalAlignment = SWT.LEFT; - leftEditor.grabHorizontal = true; - leftEditor.minimumWidth = leftAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x; - leftEditor.setEditor (leftAttach, newItem, LEFT_COL); - leftAttach.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - Shell shell = tabFolderPage.getShell (); - AttachDialog dialog = new AttachDialog (shell); - dialog.setText (LayoutExample.getResourceString ("Left_Attachment")); - dialog.setColumn (LEFT_COL); - String attach = dialog.open (); - newItem.setText (LEFT_COL, attach); - resetEditors (); - } - }); - - rightAttach = new Button (table, SWT.PUSH); - rightAttach.setText (LayoutExample.getResourceString ("Attach_Edit")); - rightEditor.horizontalAlignment = SWT.LEFT; - rightEditor.grabHorizontal = true; - rightEditor.minimumWidth = rightAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x; - rightEditor.setEditor (rightAttach, newItem, RIGHT_COL); - rightAttach.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - Shell shell = tabFolderPage.getShell (); - AttachDialog dialog = new AttachDialog (shell); - dialog.setText (LayoutExample.getResourceString ("Right_Attachment")); - dialog.setColumn (RIGHT_COL); - String attach = dialog.open (); - newItem.setText (RIGHT_COL, attach); - if (newItem.getText (LEFT_COL).endsWith (")")) newItem.setText (LEFT_COL, ""); - resetEditors (); - } - }); - - topAttach = new Button (table, SWT.PUSH); - topAttach.setText (LayoutExample.getResourceString ("Attach_Edit")); - topEditor.horizontalAlignment = SWT.LEFT; - topEditor.grabHorizontal = true; - topEditor.minimumWidth = topAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x; - topEditor.setEditor (topAttach, newItem, TOP_COL); - topAttach.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - Shell shell = tabFolderPage.getShell (); - AttachDialog dialog = new AttachDialog (shell); - dialog.setText (LayoutExample.getResourceString ("Top_Attachment")); - dialog.setColumn (TOP_COL); - String attach = dialog.open (); - newItem.setText (TOP_COL, attach); - resetEditors (); - } - }); - bottomAttach = new Button (table, SWT.PUSH); - bottomAttach.setText (LayoutExample.getResourceString ("Attach_Edit")); - bottomEditor.horizontalAlignment = SWT.LEFT; - bottomEditor.grabHorizontal = true; - bottomEditor.minimumWidth = bottomAttach.computeSize (SWT.DEFAULT, SWT.DEFAULT).x; - bottomEditor.setEditor (bottomAttach, newItem, BOTTOM_COL); - bottomAttach.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - Shell shell = tabFolderPage.getShell (); - AttachDialog dialog = new AttachDialog (shell); - dialog.setText (LayoutExample.getResourceString ("Bottom_Attachment")); - dialog.setColumn (BOTTOM_COL); - String attach = dialog.open (); - newItem.setText (BOTTOM_COL, attach); - if (newItem.getText (TOP_COL).endsWith (")")) newItem.setText (TOP_COL, ""); - resetEditors (); - } - }); - - for (int i=0; i<table.getColumnCount (); i++) { - Rectangle rect = newItem.getBounds (i); - if (rect.contains (pt)) { - switch (i) { - case 0: - resetEditors (); - break; - case COMBO_COL : - combo.setFocus (); - break; - case WIDTH_COL : - widthText.setFocus (); - break; - case HEIGHT_COL : - heightText.setFocus (); - break; - default : - break; - } - } - } - } - }); - - /* Add listener to add an element to the table */ - add.addSelectionListener(new SelectionAdapter () { - public void widgetSelected(SelectionEvent e) { - TableItem item = new TableItem (table, 0); - String [] insert = new String [] { - String.valueOf (table.indexOf (item)), "Button", "-1", "-1", - "0,0 (" + LayoutExample.getResourceString ("Default") + ")", "", - "0,0 (" + LayoutExample.getResourceString ("Default") + ")", ""}; - item.setText (insert); - data.addElement (insert); - resetEditors (); - } - }); - } - - /** - * Creates the control widgets. - */ - void createControlWidgets () { - /* Controls the margins and spacing of the FormLayout */ - String [] marginValues = new String [] {"0","3","5","10"}; - Group marginGroup = new Group (controlGroup, SWT.NONE); - marginGroup.setText (LayoutExample.getResourceString ("Margins")); - GridLayout layout = new GridLayout (); - layout.numColumns = 2; - marginGroup.setLayout (layout); - marginGroup.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); - new Label (marginGroup, SWT.NONE).setText ("marginHeight"); - marginHeight = new Combo (marginGroup, SWT.NONE); - marginHeight.setItems (marginValues); - marginHeight.select (0); - marginHeight.addSelectionListener (selectionListener); - marginHeight.addTraverseListener (traverseListener); - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 60; - marginHeight.setLayoutData (data); - new Label (marginGroup, SWT.NONE).setText ("marginWidth"); - marginWidth = new Combo (marginGroup, SWT.NONE); - marginWidth.setItems (marginValues); - marginWidth.select (0); - marginWidth.addSelectionListener (selectionListener); - marginWidth.addTraverseListener (traverseListener); - data = new GridData (GridData.FILL_HORIZONTAL); - data.widthHint = 60; - marginWidth.setLayoutData (data); - - /* Add common controls */ - super.createControlWidgets (); - - /* Position the sash */ - sash.setWeights (new int [] {6,4}); - } - - /** - * Creates the example layout. - */ - void createLayout () { - formLayout = new FormLayout (); - layoutComposite.setLayout (formLayout); - } - - /** - * Disposes the editors without placing their contents - * into the table. - */ - void disposeEditors () { - comboEditor.setEditor (null, null, -1); - combo.dispose (); - widthText.dispose (); - heightText.dispose (); - leftAttach.dispose (); - rightAttach.dispose (); - topAttach.dispose (); - bottomAttach.dispose (); - } - - /** - * Generates code for the example layout. - */ - StringBuffer generateLayoutCode () { - StringBuffer code = new StringBuffer (); - code.append ("\t\tFormLayout formLayout = new FormLayout ();\n"); - if (formLayout.marginHeight != 0) { - code.append ("\t\tformLayout.marginHeight = " + formLayout.marginHeight + ";\n"); - } - if (formLayout.marginWidth != 0) { - code.append ("\t\tformLayout.marginWidth = " + formLayout.marginWidth + ";\n"); - } - code.append ("\t\tshell.setLayout (formLayout);\n"); - - boolean first = true; - for (int i = 0; i < children.length; i++) { - Control control = children [i]; - code.append (getChildCode (control, i)); - FormData data = (FormData) control.getLayoutData (); - if (data != null) { - code.append ("\t\t"); - if (first) { - code.append ("FormData "); - first = false; - } - code.append ("data = new FormData ();\n"); - if (data.width != SWT.DEFAULT) { - code.append ("\t\tdata.width = " + data.width + ";\n"); - } - if (data.height != SWT.DEFAULT) { - code.append ("\t\tdata.height = " + data.height + ";\n"); - } - if (data.left != null) { - if (data.left.control != null) { - TableItem item = table.getItem (i); - String controlString = item.getText (LEFT_COL); - int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue (); - code.append ("\t\tdata.left = new FormAttachment (" + names [index] + ", " + data.left.offset + ", SWT." + alignmentString (data.left.alignment) + ");\n"); - } else { - if (data.right != null || (data.left.numerator != 0 ||data.left.offset != 0)) { - code.append ("\t\tdata.left = new FormAttachment (" + data.left.numerator + ", " + data.left.offset + ");\n"); - } - } - } - if (data.right != null) { - if (data.right.control != null) { - TableItem item = table.getItem (i); - String controlString = item.getText (RIGHT_COL); - int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue (); - code.append ("\t\tdata.right = new FormAttachment (" + names [index] + ", " + data.right.offset + ", SWT." + alignmentString (data.right.alignment) + ");\n"); - } else { - code.append ("\t\tdata.right = new FormAttachment (" + data.right.numerator + ", " + data.right.offset + ");\n"); - } - } - if (data.top != null) { - if (data.top.control != null) { - TableItem item = table.getItem (i); - String controlString = item.getText (TOP_COL); - int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue (); - code.append ("\t\tdata.top = new FormAttachment (" + names [index] + ", " + data.top.offset + ", SWT." + alignmentString (data.top.alignment) + ");\n"); - } else { - if (data.bottom != null || (data.top.numerator != 0 ||data.top.offset != 0)) { - code.append ("\t\tdata.top = new FormAttachment (" + data.top.numerator + ", " + data.top.offset + ");\n"); - } - } - } - if (data.bottom != null) { - if (data.bottom.control != null) { - TableItem item = table.getItem (i); - String controlString = item.getText (BOTTOM_COL); - int index = new Integer (controlString.substring (controlString.indexOf (',') - 1, controlString.indexOf (','))).intValue (); - code.append ("\t\tdata.bottom = new FormAttachment (" + names [index] + ", " + data.bottom.offset + ", SWT." + alignmentString (data.bottom.alignment) + ");\n"); - } else { - code.append ("\t\tdata.bottom = new FormAttachment (" + data.bottom.numerator + ", " + data.bottom.offset + ");\n"); - } - } - code.append ("\t\t" + names [i] + ".setLayoutData (data);\n"); - } - } - return code; - } - - /** - * Returns the layout data field names. - */ - String [] getLayoutDataFieldNames() { - return new String [] { - "", - "Control", - "width", - "height", - "left", - "right", - "top", - "bottom" - }; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "FormLayout"; - } - - /** - * Takes information from TableEditors and stores it. - */ - void resetEditors () { - resetEditors (false); - } - - void resetEditors (boolean tab) { - TableItem oldItem = comboEditor.getItem (); - if (oldItem != null) { - int row = table.indexOf (oldItem); - try { - new Integer (widthText.getText ()).intValue (); - } catch (NumberFormatException e) { - widthText.setText (oldItem.getText (WIDTH_COL)); - } - try { - new Integer (heightText.getText ()).intValue (); - } catch (NumberFormatException e) { - heightText.setText (oldItem.getText (HEIGHT_COL)); - } - String [] insert = new String [] {String.valueOf (row), combo.getText (), widthText.getText (), heightText.getText ()}; - data.setElementAt (insert, row); - for (int i = 0 ; i < MODIFY_COLS; i++) { - oldItem.setText (i, ((String [])data.elementAt (row)) [i]); - } - if (!tab) disposeEditors (); - } - setLayoutState (); - refreshLayoutComposite (); - setLayoutData (); - layoutComposite.layout (true); - layoutGroup.layout (true); - } - - /** - * Sets an attachment to the edge of a widget using the - * information in the table. - */ - FormAttachment setAttachment (String attachment) { - String control, align; - int position, offset; - int comma = attachment.indexOf (','); - char first = attachment.charAt (0); - if (Character.isLetter(first)) { - /* Case where there is a control */ - control = attachment.substring (0, comma); - int i = 0; - while (i < control.length () && !Character.isDigit (control.charAt (i))) { - i++; - } - String end = control.substring (i); - int index = new Integer (end).intValue (); - Control attachControl = children [index]; - int colon = attachment.indexOf (':'); - try { - offset = new Integer (attachment.substring (comma + 1, colon)).intValue (); - } catch (NumberFormatException e) { - offset = 0; - } - align = attachment.substring (colon + 1); - return new FormAttachment (attachControl, offset, alignmentConstant (align)); - } - /* Case where there is a position */ - try { - position = new Integer (attachment.substring (0,comma)).intValue (); - } catch (NumberFormatException e) { - position = 0; - } - try { - offset = new Integer (attachment.substring (comma + 1)).intValue (); - } catch (NumberFormatException e) { - offset = 0; - } - return new FormAttachment (position, offset); - } - - /** - * Sets the layout data for the children of the layout. - */ - void setLayoutData () { - Control [] children = layoutComposite.getChildren (); - TableItem [] items = table.getItems (); - FormData data; - int width, height; - String left, right, top, bottom; - for (int i = 0; i < children.length; i++) { - width = new Integer (items [i].getText (WIDTH_COL)).intValue (); - height = new Integer (items [i].getText (HEIGHT_COL)).intValue (); - data = new FormData (); - if (width > 0) data.width = width; - if (height > 0) data.height = height; - - left = items [i].getText (LEFT_COL); - if (left.length () > 0) { - data.left = setAttachment (left); - if (data.left.control != null) { - String attachment = checkAttachment (left, data.left); - items [i].setText (LEFT_COL, attachment); - } - } - right = items [i].getText (RIGHT_COL); - if (right.length () > 0) { - data.right = setAttachment (right); - if (data.right.control != null) { - String attachment = checkAttachment (right, data.right); - items [i].setText (RIGHT_COL, attachment); - } - } - top = items [i].getText (TOP_COL); - if (top.length () > 0 ) { - data.top = setAttachment (top); - if (data.top.control != null) { - String attachment = checkAttachment (top, data.top); - items [i].setText (TOP_COL, attachment); - } - } - bottom = items [i].getText (BOTTOM_COL); - if (bottom.length () > 0) { - data.bottom = setAttachment (bottom); - if (data.bottom.control != null) { - String attachment = checkAttachment (bottom, data.bottom); - items [i].setText (BOTTOM_COL, attachment); - } - } - children [i].setLayoutData (data); - } - } - - /** - * Sets the state of the layout. - */ - void setLayoutState () { - /* Set the margins and spacing */ - try { - formLayout.marginHeight = new Integer (marginHeight.getText ()).intValue (); - } catch (NumberFormatException e) { - formLayout.marginHeight = 0; - marginHeight.select (0); - } - try { - formLayout.marginWidth = new Integer (marginWidth.getText ()).intValue (); - } catch (NumberFormatException e) { - formLayout.marginWidth = 0; - marginWidth.select (0); - } - } - - - /** - * <code>AttachDialog</code> is the class that creates a - * dialog specific for this example. It creates a dialog - * with controls to set the values in a FormAttachment. - */ - public class AttachDialog extends Dialog { - String result = ""; - String controlInput, positionInput, alignmentInput, offsetInput; - int col = 0; - - public AttachDialog (Shell parent, int style) { - super (parent, style); - } - - public AttachDialog (Shell parent) { - this (parent, 0); - } - - public void setColumn (int col) { - this.col = col; - } - - public String open () { - Shell parent = getParent (); - final Shell shell = new Shell (parent, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); - shell.setText (getText ()); - GridLayout layout = new GridLayout (); - layout.numColumns = 3; - layout.makeColumnsEqualWidth = true; - shell.setLayout (layout); - - /* Find out what was previously set as an attachment */ - TableItem newItem = leftEditor.getItem (); - result = newItem.getText (col); - String oldAttach = result; - String oldPos = "0", oldControl = "", oldAlign = "DEFAULT", oldOffset = "0"; - boolean isControl = false; - if (oldAttach.length () != 0) { - char first = oldAttach.charAt (0); - if (Character.isLetter(first)) { - /* We have a control */ - isControl = true; - oldControl = oldAttach.substring (0, oldAttach.indexOf (',')); - oldAlign = oldAttach.substring (oldAttach.indexOf (':') + 1); - oldOffset = oldAttach.substring (oldAttach.indexOf (',') + 1, oldAttach.indexOf (':')); - } else { - /* We have a position */ - oldPos = oldAttach.substring (0, oldAttach.indexOf (',')); - oldOffset = oldAttach.substring (oldAttach.indexOf (',') + 1); - if (oldOffset.endsWith (")")) { // i.e. (Default) - oldOffset = oldOffset.substring (0, oldOffset.indexOf (' ')); - } - } - } - - /* Add position field */ - final Button posButton = new Button (shell, SWT.RADIO); - posButton.setText (LayoutExample.getResourceString ("Position")); - posButton.setSelection (!isControl); - final Combo position = new Combo (shell, SWT.NONE); - position.setItems (new String [] {"0","25","50","75","100"}); - position.setText (oldPos); - position.setEnabled (!isControl); - GridData data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - position.setLayoutData (data); - - /* Add control field */ - final Button contButton = new Button (shell, SWT.RADIO); - contButton.setText (LayoutExample.getResourceString ("Control")); - contButton.setSelection (isControl); - final Combo control = new Combo (shell, SWT.READ_ONLY); - TableItem [] items = table.getItems (); - TableItem currentItem = leftEditor.getItem (); - for (int i = 0; i < table.getItemCount (); i++) { - if (items [i].getText (0).length() > 0) { - if (items [i] != currentItem) { - control.add (items [i].getText (COMBO_COL) + i); - } - } - } - if (oldControl.length () != 0) control.setText (oldControl); - else control.select (0); - control.setEnabled (isControl); - data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - control.setLayoutData (data); - - /* Add alignment field */ - new Label (shell, SWT.NONE).setText (LayoutExample.getResourceString ("Alignment")); - final Combo alignment = new Combo (shell, SWT.NONE); - String[] alignmentValues; - if (col == LEFT_COL || col == RIGHT_COL) { - alignmentValues = new String [] {"SWT.LEFT", "SWT.RIGHT", "SWT.CENTER", "SWT.DEFAULT"}; - } else { - // col == TOP_COL || col == BOTTOM_COL - alignmentValues = new String [] {"SWT.TOP", "SWT.BOTTOM", "SWT.CENTER", "SWT.DEFAULT"}; - } - alignment.setItems (alignmentValues); - alignment.setText ("SWT." + oldAlign); - alignment.setEnabled (isControl); - data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - alignment.setLayoutData (data); - - /* Add offset field */ - new Label (shell, SWT.NONE).setText (LayoutExample.getResourceString ("Offset")); - final Text offset = new Text (shell, SWT.SINGLE | SWT.BORDER); - offset.setText (oldOffset); - data = new GridData (GridData.FILL_HORIZONTAL); - data.horizontalSpan = 2; - offset.setLayoutData (data); - - /* Add listeners for choosing between position and control */ - posButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - position.setEnabled (true); - control.setEnabled (false); - alignment.setEnabled(false); - } - }); - contButton.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - position.setEnabled (false); - control.setEnabled (true); - alignment.setEnabled(true); - } - }); - - Button clear = new Button (shell, SWT.PUSH); - clear.setText (LayoutExample.getResourceString ("Clear")); - clear.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_END)); - clear.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - result = ""; - shell.close (); - } - }); - /* OK button sets data into table */ - Button ok = new Button (shell, SWT.PUSH); - ok.setText (LayoutExample.getResourceString ("OK")); - ok.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_CENTER)); - ok.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - controlInput = control.getText (); - alignmentInput = alignment.getText ().substring (4); - positionInput = position.getText (); - if (positionInput.length () == 0) positionInput = "0"; - try { - new Integer (positionInput).intValue (); - } catch (NumberFormatException except) { - positionInput = "0"; - } - offsetInput = offset.getText (); - if (offsetInput.length () == 0) offsetInput = "0"; - try { - new Integer (offsetInput).intValue (); - } catch (NumberFormatException except) { - offsetInput = "0"; - } - if (posButton.getSelection() || controlInput.length () == 0) { - result = positionInput + "," + offsetInput; - } else { - result = controlInput + "," + offsetInput + ":" + alignmentInput; - } - shell.close (); - } - }); - Button cancel = new Button (shell, SWT.PUSH); - cancel.setText (LayoutExample.getResourceString ("Cancel")); - cancel.setLayoutData (new GridData (GridData.HORIZONTAL_ALIGN_BEGINNING)); - cancel.addSelectionListener (new SelectionAdapter () { - public void widgetSelected (SelectionEvent e) { - shell.close (); - } - }); - - shell.setDefaultButton (ok); - shell.pack (); - /* Center the dialog */ - Point center = parent.getLocation (); - center.x = center.x + (parent.getBounds ().width / 2) - (shell.getBounds ().width / 2); - center.y = center.y + (parent.getBounds ().height / 2) - (shell.getBounds ().height / 2); - shell.setLocation (center); - shell.open (); - Display display = shell.getDisplay (); - while (!shell.isDisposed ()) { - if (display.readAndDispatch ()) display.sleep (); - } - - return result; - } - } -} |