blob: 3b4ca05a6693e6526472e3649583c10e5ee89f2b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012 Pivotal Software, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Pivotal Software, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.text.quicksearch.internal.ui;
import org.eclipse.jface.fieldassist.ControlDecoration;
import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IntegerFieldEditor;
import org.eclipse.jface.preference.StringFieldEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import org.eclipse.text.quicksearch.internal.core.preferences.QuickSearchPreferences;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
public class QuickSearchPreferencesPage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
public QuickSearchPreferencesPage() {
super(FieldEditorPreferencePage.GRID);
setPreferenceStore(QuickSearchActivator.getDefault().getPreferenceStore());
QuickSearchPreferences.initializeDefaults();
}
@Override
public void init(IWorkbench workbench) {
}
private static final String[] prefsKeys = { QuickSearchPreferences.IGNORED_EXTENSIONS,
QuickSearchPreferences.IGNORED_PREFIXES, QuickSearchPreferences.IGNORED_NAMES };
private static final String[] fieldLabels = { Messages.QuickSearchPreferencesPage_Ignored_Extensions,
Messages.QuickSearchPreferencesPage_Ignored_Prefixes, Messages.QuickSearchPreferencesPage_Ignored_Names };
private static final String[] toolTips = { Messages.QuickSearchPreferencesPage_Tooltip_Extensions,
Messages.QuickSearchPreferencesPage_Tooltip_Prefixes, Messages.QuickSearchPreferencesPage_Tooltip_Names };
@Override
protected void createFieldEditors() {
IntegerFieldEditor fieldMaxLineLen = new IntegerFieldEditor(QuickSearchPreferences.MAX_LINE_LEN,
Messages.QuickSearchPreferencesPage_MaxLineLength, getFieldEditorParent());
addField(fieldMaxLineLen);
ControlDecoration maxLengthFieldDecoration = new ControlDecoration(fieldMaxLineLen.getTextControl(getFieldEditorParent()), SWT.LEFT | SWT.TOP);
maxLengthFieldDecoration.setDescriptionText(Messages.QuickSearchPreferencesPage_Tooltip_MaxLineLength);
maxLengthFieldDecoration.setImage(FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION)
.getImage());
IntegerFieldEditor fieldMaxResults = new IntegerFieldEditor(QuickSearchPreferences.MAX_RESULTS,
Messages.QuickSearchPreferencesPage_MaxResults, getFieldEditorParent());
addField(fieldMaxResults);
ControlDecoration maxResultsFieldDecoration = new ControlDecoration(fieldMaxResults.getTextControl(getFieldEditorParent()), SWT.LEFT | SWT.TOP);
maxResultsFieldDecoration.setDescriptionText(Messages.QuickSearchPreferencesPage_Tooltip_MaxResults);
maxResultsFieldDecoration.setImage(FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION)
.getImage());
for (int i = 0; i < fieldLabels.length; i++) {
final String tooltip = toolTips[i];
StringFieldEditor field = new StringFieldEditor(prefsKeys[i], fieldLabels[i], StringFieldEditor.UNLIMITED,
5, StringFieldEditor.VALIDATE_ON_FOCUS_LOST, getFieldEditorParent()) {
@Override
protected Text createTextWidget(Composite parent) {
Text w = super.createTextWidget(parent);
ControlDecoration fieldDecoration = new ControlDecoration(w, SWT.LEFT | SWT.TOP);
fieldDecoration.setDescriptionText(tooltip);
fieldDecoration.setImage(FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION)
.getImage());
return w;
}
@Override
protected void doFillIntoGrid(Composite parent, int numColumns) {
super.doFillIntoGrid(parent, numColumns);
Text text = getTextControl();
GridData layout = (GridData) text.getLayoutData();
layout.widthHint = 400;
layout.minimumWidth = 100;
}
};
addField(field);
}
}
}