sernet.verinice.oda.driver.preferences.ReportPreferencePage.java Source code

Java tutorial

Introduction

Here is the source code for sernet.verinice.oda.driver.preferences.ReportPreferencePage.java

Source

/*******************************************************************************
 * Copyright (c) 2012 Sebastian Hagedorn <sh@sernet.de>.
 * This program is free software: you can redistribute it and/or 
 * modify it under the terms of the GNU General Public License 
 * as published by the Free Software Foundation, either version 3 
 * of the License, or (at your option) any later version.
 *     This program is distributed in the hope that it will be useful,    
 * but WITHOUT ANY WARRANTY; without even the implied warranty 
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
 * See the GNU General Public License for more details.
 *     You should have received a copy of the GNU General Public 
 * License along with this program. 
 * If not, see <http://www.gnu.org/licenses/>.
 * 
 * Contributors:
 *     Sebastian Hagedorn <sh@sernet.de> - initial API and implementation
 ******************************************************************************/
package sernet.verinice.oda.driver.preferences;

import java.util.logging.Level;

import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.ComboFieldEditor;
import org.eclipse.jface.preference.DirectoryFieldEditor;
import org.eclipse.jface.preference.FieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;

import sernet.gs.service.VeriniceCharset;
import sernet.verinice.oda.driver.Activator;

/**
 *
 */
public class ReportPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {

    private String[][] logLvlValues = new String[][] {
            new String[] { Messages.getString("ReportLogLevel.0"), Level.INFO.toString() },
            new String[] { Messages.getString("ReportLogLevel.1"), Level.WARNING.toString() },
            new String[] { Messages.getString("ReportLogLevel.2"), Level.FINEST.toString() },
            new String[] { Messages.getString("ReportLogLevel.3"), Level.SEVERE.toString() },
            new String[] { Messages.getString("ReportLogLevel.4"), Level.ALL.toString() } };
    private DirectoryFieldEditor localTemplateEditor;

    public ReportPreferencePage() {
        super(GRID);
        setDescription(Messages.getString("ReportPreferencePage.0")); //$NON-NLS-1$

    }

    /* (non-Javadoc)
     * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
     */
    @Override
    public void init(IWorkbench arg0) {
        setPreferenceStore(Activator.getDefault().getPreferenceStore());
    }

    /* (non-Javadoc)
     * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
     */
    @Override
    protected void createFieldEditors() {

        BooleanFieldEditor reportLoggingEditor = new BooleanFieldEditor(PreferenceConstants.REPORT_LOGGING_ENABLED,
                Messages.getString("ReportPreferencePage.1"), getFieldEditorParent());
        addField(reportLoggingEditor);

        ComboFieldEditor logLvlFieldEditor = new ComboFieldEditor(PreferenceConstants.REPORT_LOGGING_LVL,
                Messages.getString("ReportPreferencePage.2"), logLvlValues, getFieldEditorParent());
        addField(logLvlFieldEditor);

        DirectoryFieldEditor logFileNameEditor = new DirectoryFieldEditor(PreferenceConstants.REPORT_LOG_FILE,
                Messages.getString("ReportPreferencePage.3"), getFieldEditorParent());
        addField(logFileNameEditor);

        localTemplateEditor = new DirectoryFieldEditor(PreferenceConstants.REPORT_LOCAL_TEMPLATE_DIRECTORY,
                Messages.getString("ReportPreferencePage.8"), getFieldEditorParent());
        addField(localTemplateEditor);

        BooleanFieldEditor useCacheEditor = new BooleanFieldEditor(PreferenceConstants.REPORT_USE_CACHE,
                Messages.getString("ReportPreferencePage.7"), getFieldEditorParent());
        addField(useCacheEditor);
    }

    @Override
    public void propertyChange(PropertyChangeEvent event) {
        super.propertyChange(event);
        if (event.getProperty().equals(FieldEditor.VALUE)) {
            checkState();
        }

        if (event.getSource() == localTemplateEditor) {
            Activator.getDefault().getIReportTemplateDirectoryService().setDirectory((String) event.getNewValue());
        }
    }

    @Override
    protected void checkState() {
        super.checkState();
        if (!isValid()) {
            return;
        }

    }

}