Java tutorial
/* Copyright 2011 csvedit * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.fhsolution.eclipse.plugins.csvedit.customeditor.preferences; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.ComboFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.StringFieldEditor; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.fhsolution.eclipse.plugins.csvedit.Activator; /** * This class represents a preference page that is contributed to the * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>, we * can use the field support built into JFace that allows us to create a page * that is small and knows how to save, restore and apply itself. * <p> * This page is used to modify preferences only. They are stored in the * preference store that belongs to the main plug-in class. That way, * preferences can be accessed directly via the preference store. * * @author fhenri * */ public class CSVPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { /** * Public constructor */ public CSVPreferencePage() { super(GRID); setPreferenceStore(Activator.getDefault().getPreferenceStore()); setDescription("Some options that will be use for all the csv files"); } /** * Creates the field editors. Field editors are abstractions of the common * GUI blocks needed to manipulate various types of preferences. Each field * editor knows how to save and restore itself. * * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors() */ public void createFieldEditors() { String[][] pagesLabelsAndValues = new String[2][2]; pagesLabelsAndValues[0][0] = "Table"; pagesLabelsAndValues[0][1] = "0"; pagesLabelsAndValues[1][0] = "Source"; pagesLabelsAndValues[1][1] = "1"; addField(new ComboFieldEditor(PreferenceConstants.DEFAULT_VIEW_PAGE, "Select the default tab to view csv file:", pagesLabelsAndValues, getFieldEditorParent())); addField(new BooleanFieldEditor(PreferenceConstants.USE_FIRST_LINE_AS_HEADER, "&Use the first line of the CSV file as the column headers", getFieldEditorParent())); StringFieldEditor customDelimiterField = new StringFieldEditor(PreferenceConstants.CUSTOM_DELIMITER, "Choose the delimiter to use:", 2, getFieldEditorParent()); customDelimiterField.setTextLimit(1); customDelimiterField.setEmptyStringAllowed(false); addField(customDelimiterField); StringFieldEditor textQualifierChar = new StringFieldEditor(PreferenceConstants.TEXT_QUALIFIER, "Define the character used as a text qualifier of the data:", 2, getFieldEditorParent()); customDelimiterField.setTextLimit(1); customDelimiterField.setEmptyStringAllowed(false); addField(textQualifierChar); addField(new BooleanFieldEditor(PreferenceConstants.USE_QUALIFIER, "For the text qualifier to be used for all fields", getFieldEditorParent())); StringFieldEditor commentChar = new StringFieldEditor(PreferenceConstants.COMMENT_CHAR, "Choose the character to use as a comment:", 2, getFieldEditorParent()); customDelimiterField.setTextLimit(1); customDelimiterField.setEmptyStringAllowed(true); addField(commentChar); addField(new BooleanFieldEditor(PreferenceConstants.CASE_SENSITIVE_SEARCH, "&make filtering case sensitive", getFieldEditorParent())); } /** * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk() */ public boolean performOk() { // TODO here we should reload all opened csv file with the new pref. return super.performOk(); } /** * * * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench) */ public void init(IWorkbench workbench) { } }