///******************************************************************************* // * Copyright (c) 2000, 2006 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // *******************************************************************************/ //package org.eclipse.search.internal.ui.text; // //import java.io.BufferedReader; //import java.io.IOException; //import java.io.StringReader; //import java.util.ArrayList; //import java.util.HashSet; //import java.util.Iterator; //import java.util.List; //import java.util.regex.Pattern; //import java.util.regex.PatternSyntaxException; // //import org.eclipse.core.runtime.Assert; //import org.eclipse.core.runtime.CoreException; //import org.eclipse.core.runtime.IAdaptable; //import org.eclipse.core.runtime.IStatus; // //import org.eclipse.core.resources.IFile; //import org.eclipse.core.resources.IResource; //import org.eclipse.core.resources.IWorkspaceRoot; //import org.eclipse.core.resources.ResourcesPlugin; // //import org.eclipse.swt.SWT; //import org.eclipse.swt.custom.CLabel; //import org.eclipse.swt.events.ModifyEvent; //import org.eclipse.swt.events.ModifyListener; //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.Combo; //import org.eclipse.swt.widgets.Composite; //import org.eclipse.swt.widgets.Display; //import org.eclipse.swt.widgets.Label; // //import org.eclipse.jface.dialogs.Dialog; //import org.eclipse.jface.dialogs.DialogPage; //import org.eclipse.jface.dialogs.ErrorDialog; //import org.eclipse.jface.dialogs.IDialogSettings; //import org.eclipse.jface.resource.JFaceColors; //import org.eclipse.jface.viewers.ISelection; //import org.eclipse.jface.viewers.IStructuredSelection; // //import org.eclipse.jface.text.ITextSelection; // //import org.eclipse.ui.IEditorPart; //import org.eclipse.ui.IEditorRegistry; //import org.eclipse.ui.IFileEditorInput; //import org.eclipse.ui.IWorkingSet; //import org.eclipse.ui.IWorkingSetManager; //import org.eclipse.ui.PlatformUI; //import org.eclipse.ui.contentassist.ContentAssistHandler; // //import org.eclipse.search.ui.IReplacePage; //import org.eclipse.search.ui.ISearchPage; //import org.eclipse.search.ui.ISearchPageContainer; //import org.eclipse.search.ui.ISearchQuery; //import org.eclipse.search.ui.ISearchResultPage; //import org.eclipse.search.ui.ISearchResultViewPart; //import org.eclipse.search.ui.NewSearchUI; //import org.eclipse.search.ui.text.FileTextSearchScope; //import org.eclipse.search.ui.text.TextSearchQueryProvider; //import org.eclipse.search.ui.text.TextSearchQueryProvider.TextSearchInput; // //import org.eclipse.search.internal.ui.ISearchHelpContextIds; //import org.eclipse.search.internal.ui.SearchMessages; //import org.eclipse.search.internal.ui.SearchPlugin; //import org.eclipse.search.internal.ui.util.FileTypeEditor; //import org.eclipse.search.internal.ui.util.SWTUtil; // // //public class TextSearchPage extends DialogPage implements ISearchPage, IReplacePage { // // private static final int HISTORY_SIZE= 12; // public static final String EXTENSION_POINT_ID= "org.eclipse.search.internal.ui.text.TextSearchPage"; //$NON-NLS-1$ // // // Dialog store id constants // private static final String PAGE_NAME= "TextSearchPage"; //$NON-NLS-1$ // private static final String STORE_CASE_SENSITIVE= "CASE_SENSITIVE"; //$NON-NLS-1$ // private static final String STORE_IS_REG_EX_SEARCH= "REG_EX_SEARCH"; //$NON-NLS-1$ // private static final String STORE_SEARCH_DERIVED = "SEARCH_DERIVED"; //$NON-NLS-1$ // private static final String STORE_HISTORY= "HISTORY"; //$NON-NLS-1$ // private static final String STORE_HISTORY_SIZE= "HISTORY_SIZE"; //$NON-NLS-1$ // // private List fPreviousSearchPatterns= new ArrayList(20); // // private boolean fFirstTime= true; // private boolean fIsCaseSensitive; // private boolean fIsRegExSearch; // private boolean fSearchDerived; // // private Combo fPattern; // private Button fIsCaseSensitiveCheckbox; // private Combo fExtensions; // private Button fIsRegExCheckbox; // private CLabel fStatusLabel; // private Button fSearchDerivedCheckbox; // // private ISearchPageContainer fContainer; // private FileTypeEditor fFileTypeEditor; // // private ContentAssistHandler fReplaceContentAssistHandler; // // private static class SearchPatternData { // public final boolean isCaseSensitive; // public final boolean isRegExSearch; // public final String textPattern; // public final String[] fileNamePatterns; // public final int scope; // public final IWorkingSet[] workingSets; // // public SearchPatternData(String textPattern, boolean isCaseSensitive, boolean isRegExSearch, String[] fileNamePatterns, int scope, IWorkingSet[] workingSets) { // Assert.isNotNull(fileNamePatterns); // this.isCaseSensitive= isCaseSensitive; // this.isRegExSearch= isRegExSearch; // this.textPattern= textPattern; // this.fileNamePatterns= fileNamePatterns; // this.scope= scope; // this.workingSets= workingSets; // can be null // } // // public void store(IDialogSettings settings) { // settings.put("ignoreCase", !isCaseSensitive); //$NON-NLS-1$ // settings.put("isRegExSearch", isRegExSearch); //$NON-NLS-1$ // settings.put("textPattern", textPattern); //$NON-NLS-1$ // settings.put("fileNamePatterns", fileNamePatterns); //$NON-NLS-1$ // settings.put("scope", scope); //$NON-NLS-1$ // if (workingSets != null) { // String[] wsIds= new String[workingSets.length]; // for (int i= 0; i < workingSets.length; i++) { // wsIds[i]= workingSets[i].getLabel(); // } // settings.put("workingSets", wsIds); //$NON-NLS-1$ // } else { // settings.put("workingSets", new String[0]); //$NON-NLS-1$ // } // // } // // public static SearchPatternData create(IDialogSettings settings) { // String textPattern= settings.get("textPattern"); //$NON-NLS-1$ // String[] wsIds= settings.getArray("workingSets"); //$NON-NLS-1$ // IWorkingSet[] workingSets= null; // if (wsIds != null && wsIds.length > 0) { // IWorkingSetManager workingSetManager= PlatformUI.getWorkbench().getWorkingSetManager(); // workingSets= new IWorkingSet[wsIds.length]; // for (int i= 0; workingSets != null && i < wsIds.length; i++) { // workingSets[i]= workingSetManager.getWorkingSet(wsIds[i]); // if (workingSets[i] == null) { // workingSets= null; // } // } // } // String[] fileNamePatterns= settings.getArray("fileNamePatterns"); //$NON-NLS-1$ // if (fileNamePatterns == null) { // fileNamePatterns= new String[0]; // } // try { // int scope= settings.getInt("scope"); //$NON-NLS-1$ // boolean isRegExSearch= settings.getBoolean("isRegExSearch"); //$NON-NLS-1$ // boolean ignoreCase= settings.getBoolean("ignoreCase"); //$NON-NLS-1$ // // return new SearchPatternData(textPattern, !ignoreCase, isRegExSearch, fileNamePatterns, scope, workingSets); // } catch (NumberFormatException e) { // return null; // } // } // // public String getPattern() { // return textPattern; // } // // public boolean isCaseSensitive() { // return isCaseSensitive; // } // // public boolean isRegExSearch() { // return isRegExSearch; // } // // public boolean isStringMatcherPattern() { // return !isRegExSearch; // } // } // // private static class TextSearchPageInput extends TextSearchInput { // // private final String fSearchText; // private final boolean fIsCaseSensitive; // private final boolean fIsRegEx; // private final FileTextSearchScope fScope; // // public TextSearchPageInput(String searchText, boolean isCaseSensitive, boolean isRegEx, FileTextSearchScope scope) { // fSearchText= searchText; // fIsCaseSensitive= isCaseSensitive; // fIsRegEx= isRegEx; // fScope= scope; // } // // public String getSearchText() { // return fSearchText; // } // // public boolean isCaseSensitiveSearch() { // return fIsCaseSensitive; // } // // public boolean isRegExSearch() { // return fIsRegEx; // } // // public FileTextSearchScope getScope() { // return fScope; // } // } // // //---- Action Handling ------------------------------------------------ // // private ISearchQuery newQuery() throws CoreException { // SearchPatternData data= getPatternData(); // TextSearchPageInput input= new TextSearchPageInput(data.textPattern, data.isCaseSensitive, data.isRegExSearch, createTextSearchScope()); // return TextSearchQueryProvider.getPreferred().createQuery(input); // } // // public boolean performAction() { // try { // NewSearchUI.runQueryInBackground(newQuery()); // } catch (CoreException e) { // ErrorDialog.openError(getShell(), SearchMessages.TextSearchPage_replace_searchproblems_title, SearchMessages.TextSearchPage_replace_searchproblems_message, e.getStatus()); // return false; // } // return true; // } // // /* (non-Javadoc) // * @see org.eclipse.search.ui.IReplacePage#performReplace() // */ // public boolean performReplace() { // try { // IStatus status= NewSearchUI.runQueryInForeground(getContainer().getRunnableContext(), newQuery()); // if (status.matches(IStatus.CANCEL)) { // return false; // } // if (!status.isOK()) { // ErrorDialog.openError(getShell(), SearchMessages.TextSearchPage_replace_searchproblems_title, SearchMessages.TextSearchPage_replace_runproblem_message, status); // } // // // Display.getCurrent().asyncExec(new Runnable() { // public void run() { // ISearchResultViewPart view= NewSearchUI.activateSearchResultView(); // if (view != null) { // ISearchResultPage page= view.getActivePage(); // if (page instanceof FileSearchPage) { // FileSearchPage filePage= (FileSearchPage) page; // Object[] elements= filePage.getInput().getElements(); // IFile[] files= new IFile[elements.length]; // System.arraycopy(elements, 0, files, 0, files.length); // new ReplaceAction2(filePage, files).run(); // } // } // } // }); // return true; // } catch (CoreException e) { // ErrorDialog.openError(getShell(), SearchMessages.TextSearchPage_replace_searchproblems_title, SearchMessages.TextSearchPage_replace_querycreationproblem_message, e.getStatus()); // return false; // } // } // // private String getPattern() { // return fPattern.getText(); // } // // public FileTextSearchScope createTextSearchScope() { // // Setup search scope // switch (getContainer().getSelectedScope()) { // case ISearchPageContainer.WORKSPACE_SCOPE: // return FileTextSearchScope.newWorkspaceScope(getExtensions(), fSearchDerived); // case ISearchPageContainer.SELECTION_SCOPE: // return getSelectedResourcesScope(); // case ISearchPageContainer.SELECTED_PROJECTS_SCOPE: // return getEnclosingProjectScope(); // case ISearchPageContainer.WORKING_SET_SCOPE: // IWorkingSet[] workingSets= getContainer().getSelectedWorkingSets(); // return FileTextSearchScope.newSearchScope(workingSets, getExtensions(), fSearchDerived); // default: // // unknown scope // return FileTextSearchScope.newWorkspaceScope(getExtensions(), fSearchDerived); // } // } // // private FileTextSearchScope getSelectedResourcesScope() { // HashSet resources= new HashSet(); // ISelection sel= getContainer().getSelection(); // if (sel instanceof IStructuredSelection && !sel.isEmpty()) { // Iterator iter= ((IStructuredSelection) sel).iterator(); // while (iter.hasNext()) { // Object curr= iter.next(); // if (curr instanceof IWorkingSet) { // IWorkingSet workingSet= (IWorkingSet) curr; // if (workingSet.isAggregateWorkingSet() && workingSet.isEmpty()) { // return FileTextSearchScope.newWorkspaceScope(getExtensions(), fSearchDerived); // } // IAdaptable[] elements= workingSet.getElements(); // for (int i= 0; i < elements.length; i++) { // IResource resource= (IResource)elements[i].getAdapter(IResource.class); // if (resource != null && resource.isAccessible()) { // resources.add(resource); // } // } // } else if (curr instanceof IAdaptable) { // IResource resource= (IResource) ((IAdaptable)curr).getAdapter(IResource.class); // if (resource != null && resource.isAccessible()) { // resources.add(resource); // } // } // } // } // IResource[] arr= (IResource[]) resources.toArray(new IResource[resources.size()]); // return FileTextSearchScope.newSearchScope(arr, getExtensions(), fSearchDerived); // } // // private FileTextSearchScope getEnclosingProjectScope() { // String[] enclosingProjectName= getContainer().getSelectedProjectNames(); // if (enclosingProjectName == null) { // return FileTextSearchScope.newWorkspaceScope(getExtensions(), fSearchDerived); // } // // IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot(); // IResource[] res= new IResource[enclosingProjectName.length]; // for (int i= 0; i < res.length; i++) { // res[i]= root.getProject(enclosingProjectName[i]); // } // // return FileTextSearchScope.newSearchScope(res, getExtensions(), fSearchDerived); // } // // // private SearchPatternData findInPrevious(String pattern) { // for (Iterator iter= fPreviousSearchPatterns.iterator(); iter.hasNext();) { // SearchPatternData element= (SearchPatternData) iter.next(); // if (pattern.equals(element.textPattern)) { // return element; // } // } // return null; // } // // /** // * Return search pattern data and update previous searches. // * An existing entry will be updated. // * @return the search pattern data // */ // private SearchPatternData getPatternData() { // SearchPatternData match= findInPrevious(fPattern.getText()); // if (match != null) { // fPreviousSearchPatterns.remove(match); // } // match= new SearchPatternData( // getPattern(), // isCaseSensitive(), // fIsRegExCheckbox.getSelection(), // getExtensions(), // getContainer().getSelectedScope(), // getContainer().getSelectedWorkingSets()); // fPreviousSearchPatterns.add(0, match); // return match; // } // // private String[] getPreviousExtensions() { // List extensions= new ArrayList(fPreviousSearchPatterns.size()); // int size= fPreviousSearchPatterns.size(); // for (int i= 0; i < size; i++) { // SearchPatternData data= (SearchPatternData) fPreviousSearchPatterns.get(i); // String text= FileTypeEditor.typesToString(data.fileNamePatterns); // if (!extensions.contains(text)) // extensions.add(text); // } // return (String[]) extensions.toArray(new String[extensions.size()]); // } // // private String[] getPreviousSearchPatterns() { // int size= fPreviousSearchPatterns.size(); // String [] patterns= new String[size]; // for (int i= 0; i < size; i++) // patterns[i]= ((SearchPatternData) fPreviousSearchPatterns.get(i)).textPattern; // return patterns; // } // // private String[] getExtensions() { // return fFileTypeEditor.getFileTypes(); // } // // private boolean isCaseSensitive() { // return fIsCaseSensitiveCheckbox.getSelection(); // } // // /* // * Implements method from IDialogPage // */ // public void setVisible(boolean visible) { // if (visible && fPattern != null) { // if (fFirstTime) { // fFirstTime= false; // // Set item and text here to prevent page from resizing // fPattern.setItems(getPreviousSearchPatterns()); // fExtensions.setItems(getPreviousExtensions()); //// if (fExtensions.getItemCount() == 0) { //// loadFilePatternDefaults(); //// } // if (!initializePatternControl()) { // fPattern.select(0); // fExtensions.setText("*"); //$NON-NLS-1$ // handleWidgetSelected(); // } // } // fPattern.setFocus(); // } // updateOKStatus(); // super.setVisible(visible); // } // // final void updateOKStatus() { // boolean regexStatus= validateRegex(); // boolean hasFilePattern= fExtensions.getText().length() > 0; // getContainer().setPerformActionEnabled(regexStatus && hasFilePattern); // } // // //---- Widget creation ------------------------------------------------ // // public void createControl(Composite parent) { // initializeDialogUnits(parent); // readConfiguration(); // // Composite result= new Composite(parent, SWT.NONE); // result.setFont(parent.getFont()); // GridLayout layout= new GridLayout(2, false); // result.setLayout(layout); // // addTextPatternControls(result); // // Label separator= new Label(result, SWT.NONE); // separator.setVisible(false); // GridData data= new GridData(GridData.FILL, GridData.FILL, false, false, 2, 1); // data.heightHint= convertHeightInCharsToPixels(1) / 3; // separator.setLayoutData(data); // // addFileNameControls(result); // // setControl(result); // Dialog.applyDialogFont(result); // PlatformUI.getWorkbench().getHelpSystem().setHelp(result, ISearchHelpContextIds.TEXT_SEARCH_PAGE); //} // // private boolean validateRegex() { // if (fIsRegExCheckbox.getSelection()) { // try { // Pattern.compile(fPattern.getText()); // } catch (PatternSyntaxException e) { // String locMessage= e.getLocalizedMessage(); // int i= 0; // while (i < locMessage.length() && "\n\r".indexOf(locMessage.charAt(i)) == -1) { //$NON-NLS-1$ // i++; // } // statusMessage(true, locMessage.substring(0, i)); // only take first line // return false; // } // statusMessage(false, ""); //$NON-NLS-1$ // } else { // statusMessage(false, SearchMessages.SearchPage_containingText_hint); // } // return true; // } // // private void addTextPatternControls(Composite group) { // // grid layout with 2 columns // // // Info text // Label label= new Label(group, SWT.LEAD); // label.setText(SearchMessages.SearchPage_containingText_text); // label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1)); // label.setFont(group.getFont()); // // // Pattern combo // fPattern= new Combo(group, SWT.SINGLE | SWT.BORDER); // // Not done here to prevent page from resizing // // fPattern.setItems(getPreviousSearchPatterns()); // fPattern.addSelectionListener(new SelectionAdapter() { // public void widgetSelected(SelectionEvent e) { // handleWidgetSelected(); // updateOKStatus(); // } // }); // // add some listeners for regex syntax checking // fPattern.addModifyListener(new ModifyListener() { // public void modifyText(ModifyEvent e) { // updateOKStatus(); // } // }); // fPattern.setFont(group.getFont()); // GridData data= new GridData(GridData.FILL, GridData.FILL, true, false, 1, 1); // data.widthHint= convertWidthInCharsToPixels(50); // fPattern.setLayoutData(data); // // fIsCaseSensitiveCheckbox= new Button(group, SWT.CHECK); // fIsCaseSensitiveCheckbox.setText(SearchMessages.SearchPage_caseSensitive); // fIsCaseSensitiveCheckbox.setSelection(fIsCaseSensitive); // fIsCaseSensitiveCheckbox.addSelectionListener(new SelectionAdapter() { // public void widgetSelected(SelectionEvent e) { // fIsCaseSensitive= fIsCaseSensitiveCheckbox.getSelection(); // } // }); // fIsCaseSensitiveCheckbox.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); // fIsCaseSensitiveCheckbox.setFont(group.getFont()); // // // Text line which explains the special characters // fStatusLabel= new CLabel(group, SWT.LEAD); // fStatusLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); // fStatusLabel.setFont(group.getFont()); // fStatusLabel.setAlignment(SWT.LEFT); // fStatusLabel.setText(SearchMessages.SearchPage_containingText_hint); // // // RegEx checkbox // fIsRegExCheckbox= new Button(group, SWT.CHECK); // fIsRegExCheckbox.setText(SearchMessages.SearchPage_regularExpression); // fIsRegExCheckbox.setSelection(fIsRegExSearch); // setContentAssistsEnablement(fIsRegExSearch); // fIsRegExCheckbox.addSelectionListener(new SelectionAdapter() { // public void widgetSelected(SelectionEvent e) { // fIsRegExSearch= fIsRegExCheckbox.getSelection(); // updateOKStatus(); // // writeConfiguration(); // setContentAssistsEnablement(fIsRegExSearch); // } // }); // fIsRegExCheckbox.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); // fIsRegExCheckbox.setFont(group.getFont()); // } // // private void handleWidgetSelected() { // int selectionIndex= fPattern.getSelectionIndex(); // if (selectionIndex < 0 || selectionIndex >= fPreviousSearchPatterns.size()) // return; // // SearchPatternData patternData= (SearchPatternData) fPreviousSearchPatterns.get(selectionIndex); // if (!fPattern.getText().equals(patternData.textPattern)) // return; // fIsCaseSensitiveCheckbox.setSelection(patternData.isCaseSensitive); // fIsRegExCheckbox.setSelection(patternData.isRegExSearch); // fPattern.setText(patternData.textPattern); // fFileTypeEditor.setFileTypes(patternData.fileNamePatterns); // if (patternData.workingSets != null) // getContainer().setSelectedWorkingSets(patternData.workingSets); // else // getContainer().setSelectedScope(patternData.scope); // } // // private boolean initializePatternControl() { // ISelection selection= getSelection(); // if (selection instanceof ITextSelection && !selection.isEmpty()) { // String text= ((ITextSelection) selection).getText(); // if (text != null) { // fPattern.setText(insertEscapeChars(text)); // // if (getPreviousExtensions().length > 0) { // fExtensions.setText(getPreviousExtensions()[0]); // } else { // String extension= getExtensionFromEditor(); // if (extension != null) // fExtensions.setText(extension); // else // fExtensions.setText("*"); //$NON-NLS-1$ // } // return true; // } // } // return false; // } // //// private void loadFilePatternDefaults() { //// SearchMatchInformationProviderRegistry registry= SearchPlugin.getDefault().getSearchMatchInformationProviderRegistry(); //// String[] defaults= registry.getDefaultFilePatterns(); //// fExtensions.setItems(defaults); //// fExtensions.setText(defaults[0]); //// } // // private String insertEscapeChars(String text) { // if (text == null || text.equals("")) //$NON-NLS-1$ // return ""; //$NON-NLS-1$ // StringBuffer sbIn= new StringBuffer(text); // BufferedReader reader= new BufferedReader(new StringReader(text)); // int lengthOfFirstLine= 0; // try { // lengthOfFirstLine= reader.readLine().length(); // } catch (IOException ex) { // return ""; //$NON-NLS-1$ // } // StringBuffer sbOut= new StringBuffer(lengthOfFirstLine + 5); // int i= 0; // while (i < lengthOfFirstLine) { // char ch= sbIn.charAt(i); // if (ch == '*' || ch == '?' || ch == '\\') // sbOut.append("\\"); //$NON-NLS-1$ // sbOut.append(ch); // i++; // } // return sbOut.toString(); // } // // private String getExtensionFromEditor() { // IEditorPart ep= SearchPlugin.getActivePage().getActiveEditor(); // if (ep != null) { // Object elem= ep.getEditorInput(); // if (elem instanceof IFileEditorInput) { // String extension= ((IFileEditorInput)elem).getFile().getFileExtension(); // if (extension == null) // return ((IFileEditorInput)elem).getFile().getName(); // return "*." + extension; //$NON-NLS-1$ // } // } // return null; // } // // private void addFileNameControls(Composite group) { // // grid layout with 2 columns // // // Line with label, combo and button // Label label= new Label(group, SWT.LEAD); // label.setText(SearchMessages.SearchPage_fileNamePatterns_text); // label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1)); // label.setFont(group.getFont()); // // fExtensions= new Combo(group, SWT.SINGLE | SWT.BORDER); // fExtensions.addModifyListener(new ModifyListener() { // public void modifyText(ModifyEvent e) { // updateOKStatus(); // } // }); // GridData data= new GridData(GridData.FILL, GridData.FILL, true, false, 1, 1); // data.widthHint= convertWidthInCharsToPixels(50); // fExtensions.setLayoutData(data); // fExtensions.setFont(group.getFont()); // // Button button= new Button(group, SWT.PUSH); // button.setText(SearchMessages.SearchPage_browse); // GridData gridData= new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 1, 1); // gridData.widthHint= SWTUtil.getButtonWidthHint(button); // button.setLayoutData(gridData); // button.setFont(group.getFont()); // // IEditorRegistry editorRegistry= SearchPlugin.getDefault().getWorkbench().getEditorRegistry(); // fFileTypeEditor= new FileTypeEditor(editorRegistry, fExtensions, button); // // // Text line which explains the special characters // Label description= new Label(group, SWT.LEAD); // description.setText(SearchMessages.SearchPage_fileNamePatterns_hint); // description.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1)); // description.setFont(group.getFont()); // // fSearchDerivedCheckbox= new Button(group, SWT.CHECK); // fSearchDerivedCheckbox.setText(SearchMessages.TextSearchPage_searchDerived_label); // // fSearchDerivedCheckbox.setSelection(fSearchDerived); // fSearchDerivedCheckbox.addSelectionListener(new SelectionAdapter() { // public void widgetSelected(SelectionEvent e) { // fSearchDerived= fSearchDerivedCheckbox.getSelection(); // writeConfiguration(); // } // }); // fSearchDerivedCheckbox.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1)); // fSearchDerivedCheckbox.setFont(group.getFont()); // } // // /** // * Sets the search page's container. // * @param container the container to set // */ // public void setContainer(ISearchPageContainer container) { // fContainer= container; // } // // private ISearchPageContainer getContainer() { // return fContainer; // } // // private ISelection getSelection() { // return fContainer.getSelection(); // } // // // //--------------- Configuration handling -------------- // // /* (non-Javadoc) // * @see org.eclipse.jface.dialogs.DialogPage#dispose() // */ // public void dispose() { // writeConfiguration(); // super.dispose(); // } // // /** // * Returns the page settings for this Text search page. // * // * @return the page settings to be used // */ // private IDialogSettings getDialogSettings() { // return SearchPlugin.getDefault().getDialogSettingsSection(PAGE_NAME); // } // // // /** // * Initializes itself from the stored page settings. // */ // private void readConfiguration() { // IDialogSettings s= getDialogSettings(); // fIsCaseSensitive= s.getBoolean(STORE_CASE_SENSITIVE); // fIsRegExSearch= s.getBoolean(STORE_IS_REG_EX_SEARCH); // fSearchDerived= s.getBoolean(STORE_SEARCH_DERIVED); // // try { // int historySize= s.getInt(STORE_HISTORY_SIZE); // for (int i= 0; i < historySize; i++) { // IDialogSettings histSettings= s.getSection(STORE_HISTORY + i); // if (histSettings != null) { // SearchPatternData data= SearchPatternData.create(histSettings); // if (data != null) { // fPreviousSearchPatterns.add(data); // } // } // } // } catch (NumberFormatException e) { // // ignore // } // } // // /** // * Stores it current configuration in the dialog store. // */ // private void writeConfiguration() { // IDialogSettings s= getDialogSettings(); // s.put(STORE_CASE_SENSITIVE, fIsCaseSensitive); // s.put(STORE_IS_REG_EX_SEARCH, fIsRegExSearch); // s.put(STORE_SEARCH_DERIVED, fSearchDerived); // // int historySize= Math.min(fPreviousSearchPatterns.size(), HISTORY_SIZE); // s.put(STORE_HISTORY_SIZE, historySize); // for (int i= 0; i < historySize; i++) { // IDialogSettings histSettings= s.addNewSection(STORE_HISTORY + i); // SearchPatternData data= ((SearchPatternData) fPreviousSearchPatterns.get(i)); // data.store(histSettings); // } // } // // private void setContentAssistsEnablement(boolean enable) { // if (enable) { // if (fReplaceContentAssistHandler == null) { // fReplaceContentAssistHandler= ContentAssistHandler.createHandlerForCombo(fPattern, ReplaceDialog2.createContentAssistant(true)); // } // fReplaceContentAssistHandler.setEnabled(true); // } else { // if (fReplaceContentAssistHandler == null) // return; // fReplaceContentAssistHandler.setEnabled(false); // } // } // // private void statusMessage(boolean error, String message) { // fStatusLabel.setText(message); // if (error) // fStatusLabel.setForeground(JFaceColors.getErrorText(fStatusLabel.getDisplay())); // else // fStatusLabel.setForeground(null); // } // //}