diff options
Diffstat (limited to 'jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlAlignerTest.java')
-rw-r--r-- | jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlAlignerTest.java | 800 |
1 files changed, 0 insertions, 800 deletions
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlAlignerTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlAlignerTest.java deleted file mode 100644 index eccd44e811..0000000000 --- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlAlignerTest.java +++ /dev/null @@ -1,800 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 Oracle. 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: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.ui.tests.internal.util; - -import static org.junit.Assert.*; -import org.eclipse.jface.dialogs.TitleAreaDialog; -import org.eclipse.jpt.ui.internal.util.ControlAligner; -import org.eclipse.jpt.ui.internal.util.SWTUtil; -import org.eclipse.jpt.utility.internal.ClassTools; -import org.eclipse.swt.SWT; -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.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Layout; -import org.eclipse.swt.widgets.Shell; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -@SuppressWarnings("nls") -public final class ControlAlignerTest { - - private ControlAligner controlAligner; - private Composite parent; - private Shell shell; - - private Layout buildSpacerLayout() { - return new Layout() { - @Override - protected Point computeSize(Composite composite, - int widthHint, - int heightHint, - boolean flushCache) { - - return new Point(widthHint, heightHint); - } - - @Override - protected void layout(Composite composite, boolean flushCache) { - GridData data = (GridData) composite.getLayoutData(); - composite.setBounds(0, 0, data.widthHint, data.heightHint); - } - }; - } - - @Before - public void setUp() { - - controlAligner = new ControlAligner(); - - shell = new Shell(Display.getCurrent()); - shell.setLayout(new GridLayout(1, false)); - - parent = new Composite(shell, SWT.NONE); - parent.setLayout(new GridLayout(1, false)); - parent.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING)); - } - - @After - public void tearDown() { - - if (controlAligner != null) { - controlAligner.dispose(); - controlAligner = null; - } - - if (shell != null) { - shell.dispose(); - shell = null; - } - } - - @Test - public void testAddControl1() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label label = new Label(pane, SWT.NULL); - updateGridData(label); - - controlAligner.add(label); - - assertEquals( - "The maximum width should be 0,", - 0, - controlAligner.getMaximumWidth() - ); - - label.setText("This is a ControlAligner"); -// parent.layout(true, true); - - Point size = label.getSize(); - - assertEquals( - "The width should be " + size.x + ",", - size.x, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testAddControl2() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Button button = new Button(pane, SWT.NULL); - button.setText("This is a ControlAligner"); - updateGridData(button); - - controlAligner.add(button); - parent.layout(true, true); - - Point size = button.getSize(); - - assertEquals( - "The width should be " + size.x + ",", - size.x, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testAddControl3() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label label = new Label(pane, SWT.NULL); - label.setText("This is very long text"); - updateGridData(label); - - Button button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); - -// parent.layout(true, true); - - controlAligner.add(label); - controlAligner.add(button); - - Point labelSize = label.getSize(); - Point buttonSize = button.getSize(); - int max = Math.max(labelSize.x, buttonSize.x); - - assertEquals( - "The width should be " + max + ",", - max, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testAddControlAligner1() throws Exception { - - Label label1 = new Label(parent, SWT.NULL); - Label label2 = new Label(parent, SWT.NULL); - - updateGridData(label1); - updateGridData(label2); - - controlAligner.add(label1); - - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner.add(controlAligner2); - controlAligner2.add(label2); - - label1.setText("This is a ControlAligner"); - label2.setText("This is a very long ControlAligner"); -// parent.layout(true, true); - - Point size1 = label1.getSize(); - Point size2 = label2.getSize(); - int width = Math.max(size1.x, size2.x); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - } - - @Test - public void testAddControlAligner2() throws Exception { - - Label label1 = new Label(parent, SWT.NULL); - Label label2 = new Label(parent, SWT.NULL); - - updateGridData(label1); - updateGridData(label2); - - controlAligner.add(label1); - - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner2.add(label2); - - label1.setText("This is a ControlAligner"); - label2.setText("This is a very long ControlAligner"); - - controlAligner.add(controlAligner2); -// parent.layout(true, true); - - Point size1 = label1.getSize(); - Point size2 = label2.getSize(); - int width = Math.max(size1.x, size2.x); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - } - - @Test(expected=IllegalArgumentException.class) - public void testAddControlAlignerToItself() throws Exception { - controlAligner.add(controlAligner); - fail("A ControlAligner can't be added to itself"); - } - - @Test - public void testDialog_AddControl1() throws Exception { - - final int[] maximumWidth = new int[1]; - final int[] size = new int[1]; - - TitleAreaDialog dialog = new TitleAreaDialog(SWTUtil.getShell()) { - - private Label label; - - @Override - protected Control createDialogArea(Composite parent) { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - label = new Label(pane, SWT.LEFT); - label.setText("This is a ControlAligner"); - updateGridData(label); - - controlAligner.add(label); - - return parent; - } - - @Override - protected void initializeBounds() { - super.initializeBounds(); - size[0] = label.getSize().x; - maximumWidth[0] = controlAligner.getMaximumWidth(); - } - }; - - dialog.create(); - dialog.close(); - - assertEquals( - "The width should be " + size[0] + ",", - size[0], - maximumWidth[0] - ); - } - - @Test - public void testDialog_AddControl2() throws Exception { - - final int[] maximumWidth = new int[1]; - final int[] sizes = new int[2]; - - TitleAreaDialog dialog = new TitleAreaDialog(SWTUtil.getShell()) { - - private Button button; - private Label label; - - @Override - protected Control createDialogArea(Composite parent) { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - label = new Label(pane, SWT.NULL); - label.setText("This is a ControlAligner"); - updateGridData(label); - - controlAligner.add(label); - - button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); - - controlAligner.add(button); - - return parent; - } - - @Override - protected void initializeBounds() { - super.initializeBounds(); - sizes[0] = label.getSize().x; - sizes[1] = button.getSize().x; - maximumWidth[0] = controlAligner.getMaximumWidth(); - } - }; - - dialog.create(); - dialog.close(); - - int labelSize = sizes[0]; - int buttonSize = sizes[1]; - int max = Math.max(labelSize, buttonSize); - - assertEquals( - "The width should be " + max + ",", - max, - maximumWidth[0] - ); - } - - @Test - public void testDispose() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label label = new Label(pane, SWT.NULL); - label.setText("This is very long text"); - updateGridData(label); - - Button button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); - - controlAligner.add(label); - controlAligner.add(button); - - Point labelSize = label.getSize(); - Point buttonSize = button.getSize(); - int max = Math.max(labelSize.x, buttonSize.x); - - assertEquals( - "The width should be " + max + ",", - max, - controlAligner.getMaximumWidth() - ); - - label.dispose(); - - Point newButtonSize = button.getSize(); - - assertNotSame( - "The old max and new max should not be the same", - max, - newButtonSize.x - ); - - assertEquals( - "The ControlAligner doesn't have the right maximum width", - newButtonSize.x, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testHierarchyOfControlAligners() throws Exception { - - // Aligner1 - // ^ - // |-Aligner2 - // ^ - // |-Aligner3 - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner.add(controlAligner2); - - ControlAligner controlAligner3 = new ControlAligner(); - controlAligner2.add(controlAligner3); - - // Test 1 - Label label1 = new Label(parent, SWT.NULL); - label1.setText("This is a label widget"); - parent.layout(true, true); - - int labelWidth1 = label1.getSize().x; - controlAligner3.add(label1); - - assertEquals(controlAligner3.getMaximumWidth(), labelWidth1); - assertEquals(controlAligner2.getMaximumWidth(), labelWidth1); - assertEquals(controlAligner.getMaximumWidth(), labelWidth1); - - // Test 2 - Label label2 = new Label(parent, SWT.NULL); - label2.setText("ShortLabel"); - controlAligner2.add(label2); - parent.layout(true); - - int newLabelWidth1 = label1.getSize().x; - int newLabelWidth2 = label2.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth1, controlAligner.getMaximumWidth()); - - // Test 3 - Label label3 = new Label(parent, SWT.NULL); - label3.setText("A very long label that takes a lot of horizontal space"); -// parent.layout(true); - controlAligner.add(label3); - - newLabelWidth1 = label1.getSize().x; - newLabelWidth2 = label2.getSize().x; - int newLabelWidth3 = label3.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth2, newLabelWidth3); - assertEquals(newLabelWidth1, controlAligner.getMaximumWidth()); - - // Make sure all the locked are removed - assertEquals(ClassTools.attemptToGetFieldValue(controlAligner, "locked"), Boolean.FALSE); - assertEquals(ClassTools.attemptToGetFieldValue(controlAligner2, "locked"), Boolean.FALSE); - assertEquals(ClassTools.attemptToGetFieldValue(controlAligner3, "locked"), Boolean.FALSE); - - // Change the text of label2 - label2.setText("mm"); -// parent.layout(true); - - newLabelWidth1 = label1.getSize().x; - newLabelWidth2 = label2.getSize().x; - newLabelWidth3 = label3.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth2, newLabelWidth3); - assertEquals(newLabelWidth1, controlAligner.getMaximumWidth()); - - assertEquals(ClassTools.attemptToGetFieldValue(controlAligner, "locked"), Boolean.FALSE); - assertEquals(ClassTools.attemptToGetFieldValue(controlAligner2, "locked"), Boolean.FALSE); - assertEquals(ClassTools.attemptToGetFieldValue(controlAligner3, "locked"), Boolean.FALSE); - - // Change the text of label1 - label1.setText("a"); -// parent.layout(true); - - Composite parent1 = new Composite(SWTUtil.getShell(), SWT.NULL); - parent1.setLayout(new GridLayout()); - - Label tempLabel = new Label(parent1, SWT.NULL); - tempLabel.setText("a"); -// parent1.layout(true); - - int realWidth = tempLabel.getSize().x; - - newLabelWidth1 = label1.getSize().x; - newLabelWidth2 = label2.getSize().x; - newLabelWidth3 = label3.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth2, newLabelWidth3); - assertEquals(newLabelWidth1, controlAligner.getMaximumWidth()); - assertFalse(newLabelWidth1 == realWidth); - - assertEquals(ClassTools.attemptToGetFieldValue(controlAligner, "locked"), Boolean.FALSE); - assertEquals(ClassTools.attemptToGetFieldValue(controlAligner2, "locked"), Boolean.FALSE); - assertEquals(ClassTools.attemptToGetFieldValue(controlAligner3, "locked"), Boolean.FALSE); - - // Change the text of label1 - label1.setText("Yes another big long long text so that all the labels will have to take the size of this label to make sure ControlAligner works correctly"); -// parent.layout(true); - - // Weird: It seems no notification is sent, fire one manually - Event event = new Event(); - event.widget = label1; - event.type = SWT.Resize; - label1.notifyListeners(SWT.Resize, event); - - Composite parent2 = new Composite(SWTUtil.getShell(), SWT.NULL); - parent2.setLayout(new GridLayout()); - - tempLabel = new Label(parent2, SWT.NULL); - tempLabel.setText(label1.getText()); - parent2.layout(true); - - realWidth = tempLabel.getSize().x; - - newLabelWidth1 = label1.getSize().x; - newLabelWidth2 = label2.getSize().x; - newLabelWidth3 = label3.getSize().x; - - assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth()); - assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth()); - assertEquals(newLabelWidth1, newLabelWidth2); - assertEquals(newLabelWidth2, newLabelWidth3); - assertEquals(controlAligner.getMaximumWidth(), newLabelWidth1); - assertEquals(realWidth, newLabelWidth1); - - assertEquals(ClassTools.attemptToGetFieldValue(controlAligner, "locked"), Boolean.FALSE); - assertEquals(ClassTools.attemptToGetFieldValue(controlAligner2, "locked"), Boolean.FALSE); - assertEquals(ClassTools.attemptToGetFieldValue(controlAligner3, "locked"), Boolean.FALSE); - } - - @Test - public void testRemoveControl1() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Button button = new Button(pane, SWT.NULL); - button.setText("This is a ControlAligner"); - updateGridData(button); - - controlAligner.add(button); - parent.layout(true, true); - - Point size = button.getSize(); - - assertEquals( - "The width should be " + size.x + ",", - size.x, - controlAligner.getMaximumWidth() - ); - - controlAligner.remove(button); - - assertEquals( - "The width should be 0, ", - 0, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testRemoveControl2() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label label = new Label(pane, SWT.NULL); - label.setText("This is very long text"); - updateGridData(label); - - Button button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); -// parent.layout(true, true); - - controlAligner.add(label); - controlAligner.add(button); - - Point labelSize = label.getSize(); - Point buttonSize = button.getSize(); - int max = Math.max(labelSize.x, buttonSize.x); - - assertEquals( - "The width should be " + max + ",", - max, - controlAligner.getMaximumWidth() - ); - - controlAligner.remove(label); - - Point newButtonSize = button.getSize(); - - assertNotSame( - "The old max and new max should not be the same", - max, - newButtonSize.x - ); - - assertEquals( - "The ControlAligner doesn't have the right maximum width", - newButtonSize.x, - controlAligner.getMaximumWidth() - ); - } - - @Test - public void testRemoveControl4() throws Exception { - - Composite pane = new Composite(parent, SWT.NULL); - pane.setLayout(new GridLayout(3, false)); - pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - // Widget 1 - Label label = new Label(pane, SWT.NULL); - label.setText("This is very long text"); - updateGridData(label); - controlAligner.add(label); - - // Widget 2 - Composite spacer = new Composite(pane, SWT.NULL); - spacer.setLayout(buildSpacerLayout()); - updateGridData(spacer); - controlAligner.add(spacer); - - // Widget 3 - Button button = new Button(pane, SWT.NULL); - button.setText("Short text"); - updateGridData(button); - controlAligner.add(button); - -// parent.layout(true, true); - - // Make sure the 3 widgets have the same width - Point labelSize = label.getSize(); - Point spacerSize = spacer.getSize(); - Point buttonSize = button.getSize(); - int max = Math.max(labelSize.x, buttonSize.x); - max = Math.max(max, spacerSize.x); - - assertEquals( - "The width should be " + max + ",", - max, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The spacer's width should be " + max + ",", - max, - spacerSize.x - ); - - // Remove the label (the widest widget) and make sure the width was - // correctly calculated - controlAligner.remove(label); - - spacerSize = spacer.getSize(); - buttonSize = button.getSize(); - int max2 = Math.max(spacerSize.x, buttonSize.x); - - assertNotSame( - "The old max and new max should not be the same", - max, - max2 - ); - - assertEquals( - "The ControlAligner doesn't have the right maximum width", - max2, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The spacer's width should have been adjusted", - max2, - spacerSize.x - ); - } - - @Test - public void testRemoveControlAligner1() throws Exception { - - Label label1 = new Label(parent, SWT.NULL); - Label label2 = new Label(parent, SWT.NULL); - - updateGridData(label1); - updateGridData(label2); - - controlAligner.add(label1); - - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner.add(controlAligner2); - controlAligner2.add(label2); - - label1.setText("This is a ControlAligner"); - label2.setText("This is a very long ControlAligner"); -// parent.layout(true, true); - - Point size1 = label1.getSize(); - Point size2 = label2.getSize(); - int width = Math.max(size1.x, size2.x); - - // Test 1 - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - - // Test 2 - controlAligner.remove(label1); - - width = label2.getSize().x; - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - } - - @Test - public void testRemoveControlAligner2() throws Exception { - - Label label1 = new Label(parent, SWT.NULL); - Label label2 = new Label(parent, SWT.NULL); - - updateGridData(label1); - updateGridData(label2); - - controlAligner.add(label1); - - ControlAligner controlAligner2 = new ControlAligner(); - controlAligner.add(controlAligner2); - controlAligner2.add(label2); - - label1.setText("This is a ControlAligner"); - label2.setText("This is a very long ControlAligner"); -// parent.layout(true, true); - - Point size1 = label1.getSize(); - Point size2 = label2.getSize(); - int width = Math.max(size1.x, size2.x); - - // Test 1 - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - - // Test 2 - controlAligner2.remove(label2); - - width = label1.getSize().x; - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner.getMaximumWidth() - ); - - assertEquals( - "The width should be " + width + ",", - width, - controlAligner2.getMaximumWidth() - ); - } - - private void updateGridData(Control control) { - GridData data = new GridData(); - data.horizontalAlignment = GridData.FILL; - data.grabExcessHorizontalSpace = false; - control.setLayoutData(data); - } -}
\ No newline at end of file |