/******************************************************************************* * Copyright (c) 2008 Innoopract Informationssysteme GmbH. * 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: * Innoopract Informationssysteme GmbH - initial API and implementation ******************************************************************************/ package org.eclipse.swt.internal.widgets.scalekit; import junit.framework.TestCase; import org.eclipse.rwt.Fixture; import org.eclipse.rwt.graphics.Graphics; import org.eclipse.rwt.internal.lifecycle.JSConst; import org.eclipse.rwt.lifecycle.IWidgetAdapter; import org.eclipse.rwt.lifecycle.WidgetUtil; import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; import org.eclipse.swt.graphics.*; import org.eclipse.swt.internal.widgets.Props; import org.eclipse.swt.widgets.*; public class ScaleLCA_Test extends TestCase { public void testScalePreserveValues() { Display display = new Display(); Composite shell = new Shell( display, SWT.NONE ); Scale scale = new Scale( shell, SWT.HORIZONTAL ); Fixture.markInitialized( display ); // Test preserved minimum, maximum, // selection, increment and ageIncrement Fixture.preserveWidgets(); IWidgetAdapter adapter = WidgetUtil.getAdapter( scale ); Integer minimum = ( Integer )adapter.getPreserved( ScaleLCA.PROP_MINIMUM ); assertEquals( 0, minimum.intValue() ); Integer maximum = ( Integer )adapter.getPreserved( ScaleLCA.PROP_MAXIMUM ); assertEquals( 100, maximum.intValue() ); Integer selection = ( Integer )adapter.getPreserved( ScaleLCA.PROP_SELECTION ); assertEquals( 0, selection.intValue() ); Integer increment = ( Integer )adapter.getPreserved( ScaleLCA.PROP_INCREMENT ); assertEquals( 1, increment.intValue() ); Integer pageIncrement = ( Integer )adapter.getPreserved( ScaleLCA.PROP_PAGE_INCREMENT ); assertEquals( 10, pageIncrement.intValue() ); Fixture.clearPreserved(); // Test preserved control properties testPreserveControlProperties( scale ); // Test preserved selection listeners testPreserveSelectionListener( scale ); display.dispose(); } public void testSelectionEvent() { Display display = new Display(); Composite shell = new Shell( display, SWT.NONE ); Scale scale = new Scale( shell, SWT.HORIZONTAL ); testSelectionEvent( scale ); } private void testPreserveControlProperties( final Scale scale ) { // bound Rectangle rectangle = new Rectangle( 10, 10, 10, 10 ); scale.setBounds( rectangle ); Fixture.preserveWidgets(); IWidgetAdapter adapter = WidgetUtil.getAdapter( scale ); assertEquals( rectangle, adapter.getPreserved( Props.BOUNDS ) ); Fixture.clearPreserved(); // enabled Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( scale ); assertEquals( Boolean.TRUE, adapter.getPreserved( Props.ENABLED ) ); Fixture.clearPreserved(); scale.setEnabled( false ); Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( scale ); assertEquals( Boolean.FALSE, adapter.getPreserved( Props.ENABLED ) ); Fixture.clearPreserved(); scale.setEnabled( true ); // visible Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( scale ); assertEquals( Boolean.TRUE, adapter.getPreserved( Props.VISIBLE ) ); Fixture.clearPreserved(); scale.setVisible( false ); Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( scale ); assertEquals( Boolean.FALSE, adapter.getPreserved( Props.VISIBLE ) ); Fixture.clearPreserved(); // menu Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( scale ); assertEquals( null, adapter.getPreserved( Props.MENU ) ); Fixture.clearPreserved(); Menu menu = new Menu( scale ); MenuItem item = new MenuItem( menu, SWT.NONE ); item.setText( "1 Item" ); scale.setMenu( menu ); Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( scale ); assertEquals( menu, adapter.getPreserved( Props.MENU ) ); Fixture.clearPreserved(); //foreground background font Color background = Graphics.getColor( 122, 33, 203 ); scale.setBackground( background ); Color foreground = Graphics.getColor( 211, 178, 211 ); scale.setForeground( foreground ); Font font = Graphics.getFont( "font", 12, SWT.BOLD ); scale.setFont( font ); Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( scale ); assertEquals( background, adapter.getPreserved( Props.BACKGROUND ) ); assertEquals( foreground, adapter.getPreserved( Props.FOREGROUND ) ); assertEquals( font, adapter.getPreserved( Props.FONT ) ); Fixture.clearPreserved(); } private void testPreserveSelectionListener( final Scale scale ) { Fixture.preserveWidgets(); IWidgetAdapter adapter = WidgetUtil.getAdapter( scale ); Boolean hasListeners = ( Boolean )adapter.getPreserved( Props.SELECTION_LISTENERS ); assertEquals( Boolean.FALSE, hasListeners ); Fixture.clearPreserved(); SelectionListener selectionListener = new SelectionAdapter() { }; scale.addSelectionListener( selectionListener ); Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( scale ); hasListeners = ( Boolean )adapter.getPreserved( Props.SELECTION_LISTENERS ); assertEquals( Boolean.TRUE, hasListeners ); Fixture.clearPreserved(); } private void testSelectionEvent( final Scale scale ) { final StringBuffer log = new StringBuffer(); SelectionListener selectionListener = new SelectionAdapter() { public void widgetSelected( SelectionEvent event ) { assertEquals( scale, event.getSource() ); assertEquals( null, event.item ); assertEquals( SWT.NONE, event.detail ); assertEquals( 0, event.x ); assertEquals( 0, event.y ); assertEquals( 0, event.width ); assertEquals( 0, event.height ); assertEquals( true, event.doit ); log.append( "widgetSelected" ); } }; scale.addSelectionListener( selectionListener ); String scaleId = WidgetUtil.getId( scale ); Fixture.fakeRequestParam( JSConst.EVENT_WIDGET_SELECTED, scaleId ); Fixture.readDataAndProcessAction( scale ); assertEquals( "widgetSelected", log.toString() ); } protected void setUp() throws Exception { Fixture.setUp(); } protected void tearDown() throws Exception { Fixture.tearDown(); } }