package org.csstudio.ui.util.widgets;
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.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Slider;
/** main() routine for testing the clock as an SWT app.
* @author Kay Kasemir
*/
public class MeterWidgetTest
{
private static boolean run = true;
@SuppressWarnings("nls")
public static void main(final String[] args)
{
Display display = new Display();
Shell shell = new Shell(display);
shell.setBounds(400, 100, 300, 350);
GridLayout gl = new GridLayout();
gl.numColumns = 1;
shell.setLayout(gl);
GridData gd;
final MeterWidget meter = new MeterWidget(shell, 0);
gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.grabExcessVerticalSpace = true;
gd.horizontalAlignment = SWT.FILL;
gd.verticalAlignment = SWT.FILL;
meter.setLayoutData(gd);
meter.setLimits(0, 0.0, 2.0, 8.0, 9.0, 10.0, 2);
final Slider slider = new Slider(shell, SWT.HORIZONTAL);
gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.FILL;
slider.setLayoutData(gd);
slider.setValues(10, 0, 21, 1, 1, 1);
slider.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(SelectionEvent e)
{
final double value = slider.getSelection()-10.0;
//System.out.println("Value: " + value);
meter.setValue(value);
}
});
Button ok = new Button(shell, SWT.PUSH);
gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.RIGHT;
ok.setLayoutData(gd);
ok.setText("Ok");
ok.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(SelectionEvent e)
{
run = false;
}
});
shell.open();
// Message loop left to the application
while (run && !shell.isDisposed())
if (!display.readAndDispatch())
display.sleep();
display.dispose(); // !
}
}