// Copyright (c) 2009 by the projectusus.org contributors // This software is released under the terms and conditions // of the Eclipse Public License (EPL) 1.0. // See http://www.eclipse.org/legal/epl-v10.html for details. package org.projectusus.autotestsuite.ui.internal; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; abstract class MassSelectionComposite extends Composite { MassSelectionComposite( Composite parent ) { super( parent, SWT.NONE ); initLayout(); initLayoutData(); Button selectAllButton = new Button( this, SWT.PUSH ); selectAllButton.setText( "Select All" ); selectAllButton.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected( SelectionEvent evt ) { onSelectAll(); } } ); setButtonGridData( selectAllButton ); Button deselectAllButton = new Button( this, SWT.PUSH ); deselectAllButton.setText( "Deselect All" ); deselectAllButton.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected( SelectionEvent evt ) { onDeselectAll(); } } ); setButtonGridData( deselectAllButton ); } abstract void onSelectAll(); abstract void onDeselectAll(); private void initLayout() { GridLayout layout = new GridLayout( 1, false ); layout.marginHeight = 0; layout.marginWidth = 0; layout.horizontalSpacing = 0; layout.verticalSpacing = 0; setLayout( layout ); } private void initLayoutData() { GridData data = new GridData(); data.verticalAlignment = SWT.TOP; setLayoutData( data ); } private void setButtonGridData( Button button ) { GridData gridData = new GridData(); gridData.horizontalAlignment = GridData.FILL; button.setLayoutData( gridData ); } }