///******************************************************************************* // * 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; // //import com.ibm.icu.text.Collator; // //import java.util.Arrays; //import java.util.Comparator; // //import org.eclipse.swt.graphics.RGB; //import org.eclipse.swt.widgets.Composite; // //import org.eclipse.jface.preference.BooleanFieldEditor; //import org.eclipse.jface.preference.ColorFieldEditor; //import org.eclipse.jface.preference.ComboFieldEditor; //import org.eclipse.jface.preference.FieldEditorPreferencePage; //import org.eclipse.jface.preference.IPreferenceStore; //import org.eclipse.jface.preference.PreferenceConverter; //import org.eclipse.jface.util.PropertyChangeEvent; // //import org.eclipse.ui.IPerspectiveDescriptor; //import org.eclipse.ui.IPerspectiveRegistry; //import org.eclipse.ui.IWorkbench; //import org.eclipse.ui.IWorkbenchPreferencePage; //import org.eclipse.ui.PlatformUI; // //import org.eclipse.search.internal.core.text.TextSearchEngineRegistry; // // ///* // * The page for setting the Search preferences. // */ //public class SearchPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { // // public static final String PAGE_ID= "org.eclipse.search.preferences.SearchPreferencePage"; //$NON-NLS-1$ // // // public static final String IGNORE_POTENTIAL_MATCHES= "org.eclipse.search.potentialMatch.ignore"; //$NON-NLS-1$ // public static final String EMPHASIZE_POTENTIAL_MATCHES= "org.eclipse.search.potentialMatch.emphasize"; //$NON-NLS-1$ // public static final String POTENTIAL_MATCH_FG_COLOR= "org.eclipse.search.potentialMatch.fgColor"; //$NON-NLS-1$ // public static final String REUSE_EDITOR= "org.eclipse.search.reuseEditor"; //$NON-NLS-1$ // public static final String DEFAULT_PERSPECTIVE= "org.eclipse.search.defaultPerspective"; //$NON-NLS-1$ // private static final String NO_DEFAULT_PERSPECTIVE= "org.eclipse.search.defaultPerspective.none"; //$NON-NLS-1$ // public static final String BRING_VIEW_TO_FRONT= "org.eclipse.search.bringToFront"; //$NON-NLS-1$ // public static final String TEXT_SEARCH_ENGINE = "org.eclipse.search.textSearchEngine"; //$NON-NLS-1$ // public static final String TEXT_SEARCH_QUERY_PROVIDER = "org.eclipse.search.textSearchQueryProvider"; //$NON-NLS-1$ // public static final String LIMIT_HISTORY= "org.eclipse.search.limitHistory"; //$NON-NLS-1$ // // private ColorFieldEditor fColorEditor; // private BooleanFieldEditor fEmphasizedCheckbox; // private BooleanFieldEditor fIgnorePotentialMatchesCheckbox; // // // private static class PerspectiveDescriptorComparator implements Comparator { // /* // * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) // */ // public int compare(Object o1, Object o2) { // if (o1 instanceof IPerspectiveDescriptor && o2 instanceof IPerspectiveDescriptor) { // String id1= ((IPerspectiveDescriptor)o1).getLabel(); // String id2= ((IPerspectiveDescriptor)o2).getLabel(); // return Collator.getInstance().compare(id1, id2); // } // return 0; // } // } // // // // public SearchPreferencePage() { // super(GRID); // setPreferenceStore(SearchPlugin.getDefault().getPreferenceStore()); // } // // public static void initDefaults(IPreferenceStore store) { // RGB gray= new RGB(85, 85, 85); // store.setDefault(EMPHASIZE_POTENTIAL_MATCHES, true); // store.setDefault(IGNORE_POTENTIAL_MATCHES, false); // PreferenceConverter.setDefault(store, POTENTIAL_MATCH_FG_COLOR, gray); // store.setDefault(REUSE_EDITOR, true); // store.setDefault(BRING_VIEW_TO_FRONT, true); // store.setDefault(DEFAULT_PERSPECTIVE, NO_DEFAULT_PERSPECTIVE); // store.setDefault(TEXT_SEARCH_ENGINE, ""); //default search engine is empty string //$NON-NLS-1$ // store.setDefault(TEXT_SEARCH_QUERY_PROVIDER, ""); // default query provider is empty string //$NON-NLS-1$ // store.setDefault(LIMIT_HISTORY, 10); // } // // // public void createControl(Composite parent) { // super.createControl(parent); // PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), ISearchHelpContextIds.SEARCH_PREFERENCE_PAGE); // } // // protected void createFieldEditors() { // BooleanFieldEditor boolEditor= new BooleanFieldEditor( // REUSE_EDITOR, // SearchMessages.SearchPreferencePage_reuseEditor, // getFieldEditorParent() // ); // addField(boolEditor); // // boolEditor= new BooleanFieldEditor( // BRING_VIEW_TO_FRONT, // SearchMessages.SearchPreferencePage_bringToFront, // getFieldEditorParent() // ); // addField(boolEditor); // // fIgnorePotentialMatchesCheckbox= new BooleanFieldEditor( // IGNORE_POTENTIAL_MATCHES, // SearchMessages.SearchPreferencePage_ignorePotentialMatches, // getFieldEditorParent()); // addField(fIgnorePotentialMatchesCheckbox); // // fEmphasizedCheckbox= new BooleanFieldEditor( // EMPHASIZE_POTENTIAL_MATCHES, // SearchMessages.SearchPreferencePage_emphasizePotentialMatches, // getFieldEditorParent()); // addField(fEmphasizedCheckbox); // // fColorEditor= new ColorFieldEditor( // POTENTIAL_MATCH_FG_COLOR, // SearchMessages.SearchPreferencePage_potentialMatchFgColor, // getFieldEditorParent() // ); // addField(fColorEditor); // // fEmphasizedCheckbox.setEnabled(!arePotentialMatchesIgnored(), getFieldEditorParent()); // fColorEditor.setEnabled(!arePotentialMatchesIgnored() && arePotentialMatchesEmphasized(), getFieldEditorParent()); // // handleDeletedPerspectives(); // String[][] perspectiveNamesAndIds = getPerspectiveNamesAndIds(); // ComboFieldEditor comboEditor= new ComboFieldEditor( // DEFAULT_PERSPECTIVE, // SearchMessages.SearchPreferencePage_defaultPerspective, // perspectiveNamesAndIds, // getFieldEditorParent()); // addField(comboEditor); // // // in case we have a contributed engine, let the user choose. // TextSearchEngineRegistry reg= SearchPlugin.getDefault().getTextSearchEngineRegistry(); // String[][] engineNamesAndIds= reg.getAvailableEngines(); // if (engineNamesAndIds.length > 1) { // comboEditor= new ComboFieldEditor( // TEXT_SEARCH_ENGINE, // SearchMessages.SearchPreferencePage_textSearchEngine, // engineNamesAndIds, // getFieldEditorParent()); // addField(comboEditor); // } // } // // public void setVisible(boolean state) { // handleDeletedPerspectives(); // super.setVisible(state); // } // // public void propertyChange(PropertyChangeEvent event) { // updateFieldEnablement(); // } // // public void init(IWorkbench workbench) { // } // // protected void performDefaults() { // super.performDefaults(); // updateFieldEnablement(); // } // // // private void updateFieldEnablement() { // boolean arePotentialMatchesIgnored= fIgnorePotentialMatchesCheckbox.getBooleanValue(); // fEmphasizedCheckbox.setEnabled(!arePotentialMatchesIgnored, getFieldEditorParent()); // fColorEditor.setEnabled(!arePotentialMatchesIgnored && fEmphasizedCheckbox.getBooleanValue(), getFieldEditorParent()); // } // // /* // * Return a 2-dimensional array of perspective names and ids. // */ // private String[][] getPerspectiveNamesAndIds() { // // IPerspectiveRegistry registry= PlatformUI.getWorkbench().getPerspectiveRegistry(); // IPerspectiveDescriptor[] perspectiveDescriptors= registry.getPerspectives(); // // Arrays.sort(perspectiveDescriptors, new PerspectiveDescriptorComparator()); // // String[][] table = new String[perspectiveDescriptors.length + 1][2]; // table[0][0] = SearchMessages.SearchPreferencePage_defaultPerspective_none; // table[0][1] = NO_DEFAULT_PERSPECTIVE; // for (int i = 0; i < perspectiveDescriptors.length; i++) { // table[i + 1][0] = perspectiveDescriptors[i].getLabel(); // table[i + 1][1] = perspectiveDescriptors[i].getId(); // } // return table; // } // // private static void handleDeletedPerspectives() { // IPreferenceStore store= SearchPlugin.getDefault().getPreferenceStore(); // String id= store.getString(DEFAULT_PERSPECTIVE); // if (PlatformUI.getWorkbench().getPerspectiveRegistry().findPerspectiveWithId(id) == null) { // store.putValue(DEFAULT_PERSPECTIVE, NO_DEFAULT_PERSPECTIVE); // } // } // // // // Accessors to preference values // public static String getDefaultPerspectiveId() { // handleDeletedPerspectives(); // IPreferenceStore store= SearchPlugin.getDefault().getPreferenceStore(); // String id= store.getString(DEFAULT_PERSPECTIVE); // if (id == null || id.length() == 0 || id.equals(NO_DEFAULT_PERSPECTIVE)) // return null; // else if (PlatformUI.getWorkbench().getPerspectiveRegistry().findPerspectiveWithId(id) == null) { // store.putValue(DEFAULT_PERSPECTIVE, id); // return null; // } // return id; // } // // public static boolean isEditorReused() { // IPreferenceStore store= SearchPlugin.getDefault().getPreferenceStore(); // return store.getBoolean(REUSE_EDITOR); // } // // public static boolean isViewBroughtToFront() { // IPreferenceStore store= SearchPlugin.getDefault().getPreferenceStore(); // return store.getBoolean(BRING_VIEW_TO_FRONT); // } // // public static boolean arePotentialMatchesIgnored() { // IPreferenceStore store= SearchPlugin.getDefault().getPreferenceStore(); // return store.getBoolean(IGNORE_POTENTIAL_MATCHES); // } // // public static boolean arePotentialMatchesEmphasized() { // IPreferenceStore store= SearchPlugin.getDefault().getPreferenceStore(); // return store.getBoolean(EMPHASIZE_POTENTIAL_MATCHES); // } // // public static RGB getPotentialMatchForegroundColor() { // IPreferenceStore store= SearchPlugin.getDefault().getPreferenceStore(); // return PreferenceConverter.getColor(store, POTENTIAL_MATCH_FG_COLOR); // } // // public static int getHistoryLimit() { // IPreferenceStore store= SearchPlugin.getDefault().getPreferenceStore(); // return store.getInt(LIMIT_HISTORY); // } // //}