diff options
Diffstat (limited to 'examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java')
-rw-r--r-- | examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java | 421 |
1 files changed, 0 insertions, 421 deletions
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java deleted file mode 100644 index b68a0f4371..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/layoutexample/RowLayoutTab.java +++ /dev/null @@ -1,421 +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 RowLayoutTab extends Tab { - /* Controls for setting layout parameters */ - Button horizontal, vertical; - Button wrap, pack, fill, justify, center; - Spinner marginWidth, marginHeight, marginLeft, marginRight, marginTop, marginBottom, spacing; - /* The example layout instance */ - RowLayout rowLayout; - /* TableEditors and related controls*/ - TableEditor comboEditor, widthEditor, heightEditor, nameEditor, excludeEditor; - CCombo combo, exclude; - Text nameText, widthText, heightText; - - /* Constants */ - final int NAME_COL = 0; - final int COMBO_COL = 1; - final int WIDTH_COL = 2; - final int HEIGHT_COL = 3; - final int EXCLUDE_COL = 4; - final int TOTAL_COLS = 5; - - /** - * Creates the Tab within a given instance of LayoutExample. - */ - RowLayoutTab(LayoutExample instance) { - super(instance); - } - - /** - * Creates the widgets in the "child" group. - */ - void createChildWidgets () { - /* Add common controls */ - super.createChildWidgets (); - - /* Add TableEditors */ - nameEditor = new TableEditor (table); - comboEditor = new TableEditor (table); - widthEditor = new TableEditor (table); - heightEditor = new TableEditor (table); - excludeEditor = 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); - - nameText = new Text(table, SWT.SINGLE); - nameText.setText(((String[])data.elementAt(index))[NAME_COL]); - createTextEditor(nameText, nameEditor, NAME_COL); - - 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); - - String [] boolValues = new String [] {"false", "true"}; - exclude = new CCombo (table, SWT.NONE); - exclude.setItems (boolValues); - exclude.setText (newItem.getText (EXCLUDE_COL)); - excludeEditor.horizontalAlignment = SWT.LEFT; - excludeEditor.grabHorizontal = true; - excludeEditor.minimumWidth = 50; - excludeEditor.setEditor (exclude, newItem, EXCLUDE_COL); - exclude.addTraverseListener (traverseListener); - - for (int i=0; i<table.getColumnCount (); i++) { - Rectangle rect = newItem.getBounds (i); - if (rect.contains (pt)) { - switch (i) { - case NAME_COL : - nameText.setFocus (); - case COMBO_COL : - combo.setFocus (); - break; - case WIDTH_COL : - widthText.setFocus (); - break; - case HEIGHT_COL : - heightText.setFocus (); - break; - case EXCLUDE_COL : - exclude.setFocus (); - break; - default : - resetEditors (); - break; - } - } - } - } - }); - } - - /** - * Creates the control widgets. - */ - void createControlWidgets () { - /* Controls the type of RowLayout */ - Group typeGroup = new Group (controlGroup, SWT.NONE); - typeGroup.setText (LayoutExample.getResourceString ("Type")); - typeGroup.setLayout (new GridLayout ()); - typeGroup.setLayoutData(new GridData (SWT.FILL, SWT.FILL, false, false)); - horizontal = new Button (typeGroup, SWT.RADIO); - horizontal.setText ("SWT.HORIZONTAL"); - horizontal.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false)); - horizontal.setSelection(true); - horizontal.addSelectionListener (selectionListener); - vertical = new Button (typeGroup, SWT.RADIO); - vertical.setText ("SWT.VERTICAL"); - vertical.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false)); - vertical.addSelectionListener (selectionListener); - - /* Controls the margins and spacing of the RowLayout */ - Group marginGroup = new Group (controlGroup, SWT.NONE); - marginGroup.setText (LayoutExample.getResourceString ("Margins_Spacing")); - marginGroup.setLayout(new GridLayout(2, false)); - marginGroup.setLayoutData(new GridData (SWT.FILL, SWT.FILL, false, false, 1, 2)); - new Label(marginGroup, SWT.NONE).setText("marginWidth"); - marginWidth = new Spinner(marginGroup, SWT.BORDER); - marginWidth.setSelection(0); - marginWidth.addSelectionListener(selectionListener); - new Label (marginGroup, SWT.NONE).setText ("marginHeight"); - marginHeight = new Spinner(marginGroup, SWT.BORDER); - marginHeight.setSelection(0); - marginHeight.setLayoutData (new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); - marginHeight.addSelectionListener (selectionListener); - new Label (marginGroup, SWT.NONE).setText ("marginLeft"); - marginLeft = new Spinner(marginGroup, SWT.BORDER); - marginLeft.setSelection(3); - marginLeft.addSelectionListener (selectionListener); - new Label (marginGroup, SWT.NONE).setText ("marginRight"); - marginRight = new Spinner(marginGroup, SWT.BORDER); - marginRight.setSelection(3); - marginRight.addSelectionListener(selectionListener); - new Label(marginGroup, SWT.NONE).setText("marginTop"); - marginTop = new Spinner(marginGroup, SWT.BORDER); - marginTop.setSelection(3); - marginTop.addSelectionListener(selectionListener); - new Label (marginGroup, SWT.NONE).setText ("marginBottom"); - marginBottom = new Spinner(marginGroup, SWT.BORDER); - marginBottom.setSelection(3); - marginBottom.addSelectionListener (selectionListener); - new Label (marginGroup, SWT.NONE).setText ("spacing"); - spacing = new Spinner(marginGroup, SWT.BORDER); - spacing.setSelection(3); - spacing.addSelectionListener (selectionListener); - - /* Controls other parameters of the RowLayout */ - Group specGroup = new Group (controlGroup, SWT.NONE); - specGroup.setText (LayoutExample.getResourceString ("Properties")); - specGroup.setLayoutData (new GridData (SWT.FILL, SWT.FILL, false, false)); - specGroup.setLayout (new GridLayout ()); - wrap = new Button (specGroup, SWT.CHECK); - wrap.setText ("Wrap"); - wrap.setSelection (true); - wrap.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false)); - wrap.addSelectionListener (selectionListener); - pack = new Button (specGroup, SWT.CHECK); - pack.setText ("Pack"); - pack.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false)); - pack.setSelection (true); - pack.addSelectionListener(selectionListener); - fill = new Button(specGroup, SWT.CHECK); - fill.setText("Fill"); - fill.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); - fill.addSelectionListener(selectionListener); - justify = new Button (specGroup, SWT.CHECK); - justify.setText ("Justify"); - justify.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false)); - justify.addSelectionListener (selectionListener); - center = new Button (specGroup, SWT.CHECK); - center.setText ("Center"); - center.setLayoutData (new GridData (SWT.FILL, SWT.CENTER, true, false)); - center.addSelectionListener (selectionListener); - - /* Add common controls */ - super.createControlWidgets (); - } - - /** - * Creates the example layout. - */ - void createLayout () { - rowLayout = new RowLayout (); - layoutComposite.setLayout (rowLayout); - } - - /** - * Disposes the editors without placing their contents - * into the table. - */ - void disposeEditors () { - comboEditor.setEditor (null, null, -1); - combo.dispose (); - widthText.dispose (); - heightText.dispose (); - nameText.dispose (); - exclude.dispose (); - } - - /** - * Generates code for the example layout. - */ - StringBuffer generateLayoutCode () { - StringBuffer code = new StringBuffer (); - code.append ("\t\tRowLayout rowLayout = new RowLayout ();\n"); - if (rowLayout.type == SWT.VERTICAL) { - code.append ("\t\trowLayout.type = SWT.VERTICAL;\n"); - } - if (rowLayout.wrap == false) { - code.append ("\t\trowLayout.wrap = false;\n"); - } - if (rowLayout.pack == false) { - code.append ("\t\trowLayout.pack = false;\n"); - } - if (rowLayout.fill == true) { - code.append("\t\trowLayout.fill = true;\n"); - } - if (rowLayout.justify == true) { - code.append ("\t\trowLayout.justify = true;\n"); - } - if (rowLayout.center == true) { - code.append ("\t\trowLayout.center = true;\n"); - } - if (rowLayout.marginWidth != 0) { - code.append("\t\trowLayout.marginWidth = " + rowLayout.marginWidth + ";\n"); - } - if (rowLayout.marginHeight != 0) { - code.append("\t\trowLayout.marginHeight = " + rowLayout.marginHeight + ";\n"); - } - if (rowLayout.marginLeft != 3) { - code.append ("\t\trowLayout.marginLeft = " + rowLayout.marginLeft + ";\n"); - } - if (rowLayout.marginRight != 3) { - code.append ("\t\trowLayout.marginRight = " + rowLayout.marginRight + ";\n"); - } - if (rowLayout.marginTop != 3) { - code.append ("\t\trowLayout.marginTop = " + rowLayout.marginTop + ";\n"); - } - if (rowLayout.marginBottom != 3) { - code.append ("\t\trowLayout.marginBottom = " + rowLayout.marginBottom + ";\n"); - } - if (rowLayout.spacing != 3) { - code.append ("\t\trowLayout.spacing = " + rowLayout.spacing + ";\n"); - } - code.append ("\t\tshell.setLayout (rowLayout);\n"); - - boolean first = true; - for (int i = 0; i < children.length; i++) { - Control control = children [i]; - code.append (getChildCode (control,i)); - RowData rowData = (RowData) control.getLayoutData (); - if (rowData != null) { - if (rowData.width != -1 || rowData.height != -1 || rowData.exclude) { - code.append ("\t\t"); - if (first) { - code.append ("RowData "); - first = false; - } - if (rowData.width == -1 && rowData.height == -1) { - code.append ("rowData = new RowData ();\n"); - } else if (rowData.width == -1) { - code.append ("rowData = new RowData (SWT.DEFAULT, " + rowData.height + ");\n"); - } else if (rowData.height == -1) { - code.append ("rowData = new RowData (" + rowData.width + ", SWT.DEFAULT);\n"); - } else { - code.append ("rowData = new RowData (" + rowData.width + ", " + rowData.height + ");\n"); - } - if (rowData.exclude) { - code.append ("\t\trowData.exclude = true;\n"); - } - code.append ("\t\t" + names [i] + ".setLayoutData (rowData);\n"); - } - } - } - return code; - } - - /** - * Returns the string to insert when a new child control is added to the table. - */ - String[] getInsertString (String name, String controlType) { - return new String [] {name, controlType, "-1", "-1", "false"}; - } - - /** - * Returns the layout data field names. - */ - String [] getLayoutDataFieldNames() { - return new String [] { - "Control Name", - "Control Type", - "width", - "height", - "exclude" - }; - } - - /** - * Gets the text for the tab folder item. - */ - String getTabText () { - return "RowLayout"; - } - - /** - * Takes information from TableEditors and stores it. - */ - void resetEditors (boolean tab) { - TableItem oldItem = comboEditor.getItem (); - if (oldItem != null) { - int row = table.indexOf (oldItem); - /* Make sure user has entered valid data */ - try { - new String(nameText.getText()); - } catch (NumberFormatException e) { - nameText.setText(oldItem.getText(NAME_COL)); - } - 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 [] { - nameText.getText(), combo.getText (), widthText.getText (), heightText.getText (), exclude.getText ()}; - data.setElementAt (insert, row); - for (int i = 0 ; i < TOTAL_COLS; i++) { - oldItem.setText (i, ((String [])data.elementAt (row)) [i]); - } - if (!tab) disposeEditors (); - } - setLayoutState (); - refreshLayoutComposite (); - setLayoutData (); - layoutComposite.layout (true); - layoutGroup.layout (true); - } - - /** - * Sets the layout data for the children of the layout. - */ - void setLayoutData () { - Control [] children = layoutComposite.getChildren (); - TableItem [] items = table.getItems (); - RowData data; - int width, height; - String exclude; - 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 RowData (width, height); - exclude = items [i].getText (EXCLUDE_COL); - data.exclude = exclude.equals ("true"); - children [i].setLayoutData (data); - } - - } - - /** - * Sets the state of the layout. - */ - void setLayoutState () { - /* Set the type of layout */ - rowLayout.type = vertical.getSelection () ? SWT.VERTICAL : SWT.HORIZONTAL; - - /* Set the margins and spacing */ - rowLayout.marginWidth = marginWidth.getSelection (); - rowLayout.marginHeight = marginHeight.getSelection (); - rowLayout.marginLeft = marginLeft.getSelection (); - rowLayout.marginRight = marginRight.getSelection (); - rowLayout.marginTop = marginTop.getSelection (); - rowLayout.marginBottom = marginBottom.getSelection (); - rowLayout.spacing = spacing.getSelection (); - - /* Set the other layout properties */ - rowLayout.wrap = wrap.getSelection (); - rowLayout.pack = pack.getSelection (); - rowLayout.fill = fill.getSelection (); - rowLayout.justify = justify.getSelection (); - rowLayout.center = center.getSelection (); - } -} |