fPattern.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
GridData gd= new GridData(GridData.FILL_HORIZONTAL); gd.widthHint= convertWidthInCharsToPixels(30); fPattern.setLayoutData(gd);
	private Control createExpression(Composite parent) {		Group result= new Group(parent, SWT.NONE);		result.setText(JavaPlugin.getResourceString("SearchPage.expression.label"));		GridLayout layout= new GridLayout();		layout.numColumns= 1;		result.setLayout(layout);				// Pattern combo		fPattern= new Combo(result, SWT.SINGLE | SWT.BORDER);		fPattern.addSelectionListener(new SelectionAdapter() {			public void widgetSelected(SelectionEvent e) {				if (fPattern.getSelectionIndex() < 0)					return;				int index= fgPreviousSearchPatterns.size() - 1 - fPattern.getSelectionIndex();				SearchPatternData values= (SearchPatternData) fgPreviousSearchPatterns.get(index);				for (int i= 0; i < fSearchFor.length; i++)					fSearchFor[i].setSelection(false);				for (int i= 0; i < fLimitTo.length; i++)					fLimitTo[i].setSelection(false);				fSearchFor[values.searchFor].setSelection(true);				fLimitTo[values.limitTo].setSelection(true);				fLimitTo[IMPLEMENTORS].setEnabled((values.searchFor == TYPE));				fLimitTo[DECLARATIONS].setEnabled((values.searchFor != PACKAGE));				fLimitTo[ALL_OCCURRENCES].setEnabled((values.searchFor != PACKAGE));								fInitialPattern= values.pattern;				fPattern.setText(fInitialPattern);				fJavaElement= values.javaElement;			}		});		fPattern.addModifyListener(new ModifyListener() {			public void modifyText(ModifyEvent e) {				getContainer().setPerformActionEnabled(fPattern.getText().length() > 0);			}		});		fPattern.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));				// Pattern info		Label label= new Label(result, SWT.LEFT);		label.setText(JavaPlugin.getResourceString("SearchPage.expression.pattern"));		return result;	}