package eu.jucy.gui.search; import org.eclipse.swt.SWT; import org.eclipse.swt.events.KeyAdapter; import org.eclipse.swt.events.KeyEvent; 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.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.menus.WorkbenchWindowControlContribution; import eu.jucy.gui.Lang; public class ToolBarSearch extends WorkbenchWindowControlContribution { private static final String ID = "eu.jucy.gui.search.ToolBarSearch"; public ToolBarSearch() { super(ID); } @Override protected Control createControl(Composite parent) { Composite comp = new Composite(parent,SWT.NONE); GridLayout gl = new GridLayout(); gl.marginHeight = 2; gl.marginWidth = 2; // gl.verticalSpacing = 0; // gl.horizontalSpacing = 0; comp.setLayout(gl); final Text searchText = new Text(comp, SWT.SEARCH|SWT.ICON_SEARCH); GridData gd = new GridData(SWT.CENTER, SWT.CENTER, true, false); gd.minimumWidth = 120; searchText.setLayoutData(gd); searchText.setMessage(String.format("%-25s", Lang.EnterSearch)); searchText.addKeyListener(new KeyAdapter() { public void keyPressed(final KeyEvent e) { String search = searchText.getText().trim(); //check for minimum length on enter.. if((e.keyCode == SWT.KEYPAD_CR || e.keyCode == SWT.CR) && search.length() > 2 ) { e.doit = false; IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); OpenSearchEditorHandler.openSearchEditor(window, search); } } }); searchText.addSelectionListener(new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { if (e.detail == SWT.ICON_SEARCH) { OpenSearchEditorHandler.openSearchEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow() , null); } } }); comp.pack(); return comp; } }