package org.csstudio.ui.util.widgets; import org.csstudio.ui.util.widgets.StartEndRangeWidget.ORIENTATION; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.StatusLineManager; import org.eclipse.jface.action.ToolBarManager; import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; 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.Listener; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; public class StartEndRangeWidgetTest extends ApplicationWindow { private Text text; private Text text_1; private Text text_2; private Text text_3; public StartEndRangeWidgetTest() { super(null); addToolBar(SWT.FLAT | SWT.WRAP); addMenuBar(); addStatusLine(); } /** * Create contents of the application window. * * @param parent */ @SuppressWarnings("unused") @Override protected Control createContents(Composite parent) { Composite container = new Composite(parent, SWT.NONE); container.setLayout(new GridLayout(3, false)); new Label(container, SWT.NONE); final StartEndRangeWidget hStartEndRangeWidget = new StartEndRangeWidget( container, SWT.NONE); GridData gd_hStartEndRangeWidget = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1); gd_hStartEndRangeWidget.heightHint = 20; hStartEndRangeWidget.setLayoutData(gd_hStartEndRangeWidget); hStartEndRangeWidget.setBounds(0, 0, 442, 20); hStartEndRangeWidget.addRangeListener(new RangeListener() { @Override public void rangeChanged() { text.setText(String.valueOf(hStartEndRangeWidget.getMin())); text_1.setText(String.valueOf(hStartEndRangeWidget.getMax())); text_2.setText(String.valueOf(hStartEndRangeWidget .getSelectedMin())); text_3.setText(String.valueOf(hStartEndRangeWidget .getSelectedMax())); } }); final StartEndRangeWidget vStartEndRangeWidget = new StartEndRangeWidget( container, SWT.NONE); GridData gd_vStartEndRangeWidget = new GridData(SWT.LEFT, SWT.FILL, false, true, 1, 4); gd_vStartEndRangeWidget.widthHint = 20; vStartEndRangeWidget.setLayoutData(gd_vStartEndRangeWidget); vStartEndRangeWidget.setBounds(0, 0, 20, 260); vStartEndRangeWidget.setOrientation(ORIENTATION.VERTICAL); vStartEndRangeWidget.addRangeListener(new RangeListener() { @Override public void rangeChanged() { text.setText(String.valueOf(vStartEndRangeWidget.getMin())); text_1.setText(String.valueOf(vStartEndRangeWidget.getMax())); text_2.setText(String.valueOf(vStartEndRangeWidget .getSelectedMin())); text_3.setText(String.valueOf(vStartEndRangeWidget .getSelectedMax())); } }); Label lblMin = new Label(container, SWT.NONE); lblMin.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1)); lblMin.setText("min:"); Label lblMax = new Label(container, SWT.NONE); lblMax.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1)); lblMax.setText("max:"); text = new Text(container, SWT.BORDER); text.addListener(SWT.DefaultSelection, new Listener() { @Override public void handleEvent(Event e) { hStartEndRangeWidget.setMin(Double.valueOf(text.getText())); vStartEndRangeWidget.setMin(Double.valueOf(text.getText())); } }); text_1 = new Text(container, SWT.BORDER); text_1.addListener(SWT.DefaultSelection, new Listener() { @Override public void handleEvent(Event e) { hStartEndRangeWidget.setMax(Double.valueOf(text_1.getText())); vStartEndRangeWidget.setMax(Double.valueOf(text_1.getText())); } }); Label lblSelectedmin = new Label(container, SWT.NONE); lblSelectedmin.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); lblSelectedmin.setText("selectedMin:"); Label lblSelectedmax = new Label(container, SWT.NONE); lblSelectedmax.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); lblSelectedmax.setText("selectedMax:"); text_2 = new Text(container, SWT.BORDER); text_2.addSelectionListener(new SelectionAdapter() { @Override public void widgetDefaultSelected(SelectionEvent e) { hStartEndRangeWidget.setSelectedMin(Double.valueOf(text_2 .getText())); vStartEndRangeWidget.setSelectedMin(Double.valueOf(text_2 .getText())); } }); text_3 = new Text(container, SWT.BORDER); text_3.addSelectionListener(new SelectionAdapter() { @Override public void widgetDefaultSelected(SelectionEvent e) { hStartEndRangeWidget.setSelectedMax(Double.valueOf(text_3 .getText())); vStartEndRangeWidget.setSelectedMax(Double.valueOf(text_3 .getText())); } }); return container; } /** * Create the menu manager. * * @return the menu manager */ @Override protected MenuManager createMenuManager() { MenuManager menuManager = new MenuManager("menu"); return menuManager; } /** * Create the toolbar manager. * * @return the toolbar manager */ @Override protected ToolBarManager createToolBarManager(int style) { ToolBarManager toolBarManager = new ToolBarManager(style); return toolBarManager; } /** * Create the status line manager. * * @return the status line manager */ @Override protected StatusLineManager createStatusLineManager() { StatusLineManager statusLineManager = new StatusLineManager(); return statusLineManager; } /** * Launch the application. * * @param args */ public static void main(String args[]) { try { StartEndRangeWidgetTest window = new StartEndRangeWidgetTest(); window.setBlockOnOpen(true); window.open(); Display.getCurrent().dispose(); } catch (Exception e) { e.printStackTrace(); } } /** * Configure the shell. * * @param newShell */ @Override protected void configureShell(Shell newShell) { super.configureShell(newShell); newShell.setText("New Application"); } /** * Return the initial size of the window. */ @Override protected Point getInitialSize() { return new Point(470, 365); } }