/******************************************************************************* * 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.expandbarkit; import junit.framework.TestCase; import org.eclipse.rwt.Fixture; import org.eclipse.rwt.graphics.Graphics; import org.eclipse.rwt.lifecycle.IWidgetAdapter; import org.eclipse.rwt.lifecycle.WidgetUtil; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.*; import org.eclipse.swt.internal.widgets.Props; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.*; public class ExpandBarLCA_Test extends TestCase { protected void setUp() throws Exception { Fixture.setUp(); Fixture.fakeResponseWriter(); } protected void tearDown() throws Exception { Fixture.tearDown(); } public void testPreserveValues() { Display display = new Display(); Composite shell = new Shell( display, SWT.NONE ); ExpandBar expandBar = new ExpandBar( shell, SWT.V_SCROLL ); ExpandItem expandItem = createExpandItems( expandBar ); expandBar.setSize( expandBar.computeSize( SWT.DEFAULT, SWT.DEFAULT ) ); Fixture.markInitialized( display ); // Show Vertical Scrollbar Fixture.preserveWidgets(); IWidgetAdapter adapter = WidgetUtil.getAdapter( expandBar ); Boolean showVScrollbar = ( Boolean )adapter.getPreserved( ExpandBarLCA.PROP_SHOW_VSCROLLBAR ); assertEquals( Boolean.FALSE, showVScrollbar ); Fixture.clearPreserved(); expandItem.setExpanded( true ); Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( expandBar ); showVScrollbar = ( Boolean )adapter.getPreserved( ExpandBarLCA.PROP_SHOW_VSCROLLBAR ); assertEquals( Boolean.TRUE, showVScrollbar ); Fixture.clearPreserved(); // Bottom Spacing Bounds Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( expandBar ); Rectangle bottomSpacingBounds = ( Rectangle )adapter.getPreserved( ExpandBarLCA.PROP_BOTTOM_SPACING_BOUNDS ); assertEquals( new Rectangle( 4, 209, 10, 4 ), bottomSpacingBounds ); Fixture.clearPreserved(); expandItem.setExpanded( false ); Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( expandBar ); bottomSpacingBounds = ( Rectangle )adapter.getPreserved( ExpandBarLCA.PROP_BOTTOM_SPACING_BOUNDS ); assertEquals( new Rectangle( 4, 56, 10, 4 ), bottomSpacingBounds ); Fixture.clearPreserved(); expandBar.setSpacing( 8 ); Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( expandBar ); bottomSpacingBounds = ( Rectangle )adapter.getPreserved( ExpandBarLCA.PROP_BOTTOM_SPACING_BOUNDS ); assertEquals( new Rectangle( 8, 64, 10, 8 ), bottomSpacingBounds ); Fixture.clearPreserved(); // control: enabled Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( expandBar ); assertEquals( Boolean.TRUE, adapter.getPreserved( Props.ENABLED ) ); Fixture.clearPreserved(); expandBar.setEnabled( false ); Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( expandBar ); assertEquals( Boolean.FALSE, adapter.getPreserved( Props.ENABLED ) ); Fixture.clearPreserved(); expandBar.setEnabled( true ); // visible Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( expandBar ); assertEquals( Boolean.TRUE, adapter.getPreserved( Props.VISIBLE ) ); Fixture.clearPreserved(); expandBar.setVisible( false ); Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( expandBar ); assertEquals( Boolean.FALSE, adapter.getPreserved( Props.VISIBLE ) ); Fixture.clearPreserved(); // menu Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( expandBar ); assertEquals( null, adapter.getPreserved( Props.MENU ) ); Fixture.clearPreserved(); Menu menu = new Menu( expandBar ); MenuItem item = new MenuItem( menu, SWT.NONE ); item.setText( "1 Item" ); expandBar.setMenu( menu ); Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( expandBar ); assertEquals( menu, adapter.getPreserved( Props.MENU ) ); Fixture.clearPreserved(); // foreground background font Color background = Graphics.getColor( 122, 33, 203 ); expandBar.setBackground( background ); Color foreground = Graphics.getColor( 211, 178, 211 ); expandBar.setForeground( foreground ); Font font = Graphics.getFont( "font", 12, SWT.BOLD ); expandBar.setFont( font ); Fixture.preserveWidgets(); adapter = WidgetUtil.getAdapter( expandBar ); assertEquals( background, adapter.getPreserved( Props.BACKGROUND ) ); assertEquals( foreground, adapter.getPreserved( Props.FOREGROUND ) ); assertEquals( font, adapter.getPreserved( Props.FONT ) ); Fixture.clearPreserved(); display.dispose(); } private ExpandItem createExpandItems( final ExpandBar expandBar ) { Display display = expandBar.getDisplay(); // First item Composite composite = new Composite( expandBar, SWT.NONE ); composite.setLayout( new GridLayout() ); new Button( composite, SWT.PUSH ).setText( "SWT.PUSH" ); new Button( composite, SWT.RADIO ).setText( "SWT.RADIO" ); new Button( composite, SWT.CHECK ).setText( "SWT.CHECK" ); new Button( composite, SWT.TOGGLE ).setText( "SWT.TOGGLE" ); ExpandItem item = new ExpandItem( expandBar, SWT.NONE, 0 ); item.setText( "What is your favorite button?" ); item.setImage( Graphics.getImage( Fixture.IMAGE1 ) ); item.setHeight( composite.computeSize( SWT.DEFAULT, SWT.DEFAULT ).y ); item.setControl( composite ); item.setExpanded( false ); // Second item composite = new Composite( expandBar, SWT.NONE ); composite.setLayout( new GridLayout( 2, false ) ); Image img = display.getSystemImage( SWT.ICON_ERROR ); new Label( composite, SWT.NONE ).setImage( img ); new Label( composite, SWT.NONE ).setText( "SWT.ICON_ERROR" ); img = display.getSystemImage( SWT.ICON_INFORMATION ); new Label( composite, SWT.NONE ).setImage( img ); new Label( composite, SWT.NONE ).setText( "SWT.ICON_INFORMATION" ); img = display.getSystemImage( SWT.ICON_WARNING ); new Label( composite, SWT.NONE ).setImage( img ); new Label( composite, SWT.NONE ).setText( "SWT.ICON_WARNING" ); img = display.getSystemImage( SWT.ICON_QUESTION ); new Label( composite, SWT.NONE ).setImage( img ); new Label( composite, SWT.NONE ).setText( "SWT.ICON_QUESTION" ); item = new ExpandItem( expandBar, SWT.NONE, 1 ); item.setText( "What is your favorite icon?" ); item.setImage( Graphics.getImage( Fixture.IMAGE1 ) ); item.setHeight( composite.computeSize( SWT.DEFAULT, SWT.DEFAULT ).y ); item.setControl( composite ); item.setExpanded( false ); return item; } }