hydrograph.ui.graph.execution.tracking.preferences.JobRunPreference.java Source code

Java tutorial

Introduction

Here is the source code for hydrograph.ui.graph.execution.tracking.preferences.JobRunPreference.java

Source

/********************************************************************************
 * Copyright 2017 Capital One Services, LLC and Bitwise, Inc.
 * 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 hydrograph.ui.graph.execution.tracking.preferences;

import org.apache.commons.lang.StringUtils;
import org.eclipse.jface.dialogs.MessageDialogWithToggle;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.PlatformUI;

import hydrograph.ui.common.util.Constants;
import hydrograph.ui.graph.Activator;

/**
 * 
 * This class adds Job Run preference in preference window.
 * 
 * @author Bitwise
 *
 */
public class JobRunPreference extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {

    public static final String DEFUALT_LOG_LEVEL = "Info";
    public static final String SAVE_JOB_BEFORE_RUN_PREFRENCE = "save_job__before_run_prefrence";
    public static final String LOG_LEVEL_PREFERENCE = "log_level_preference";

    private JobRunPreferenceComposite jobRunPreferenceComposite;

    public JobRunPreference() {
        super();
        setPreferenceStore(PlatformUI.getPreferenceStore());
    }

    /*
     * (non-Javadoc)
     * 
     * @see
     * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
     */
    @Override
    public void init(IWorkbench workbench) {
        getPreferenceStore().setDefault(SAVE_JOB_BEFORE_RUN_PREFRENCE, MessageDialogWithToggle.PROMPT);
        getPreferenceStore().setDefault(LOG_LEVEL_PREFERENCE, DEFUALT_LOG_LEVEL);
        String value = Activator.getDefault().getPreferenceStore().getString(SAVE_JOB_BEFORE_RUN_PREFRENCE);
        if (StringUtils.equals(MessageDialogWithToggle.ALWAYS, value)) {
            getPreferenceStore().setValue(SAVE_JOB_BEFORE_RUN_PREFRENCE, value);
        } else {
            getPreferenceStore().setValue(SAVE_JOB_BEFORE_RUN_PREFRENCE, MessageDialogWithToggle.PROMPT);
        }

        String log_level_value = Activator.getDefault().getPreferenceStore()
                .getString(JobRunPreference.LOG_LEVEL_PREFERENCE);

        if (StringUtils.isNotBlank(log_level_value)) {
            getPreferenceStore().setValue(LOG_LEVEL_PREFERENCE, log_level_value);
        } else {
            getPreferenceStore().setValue(LOG_LEVEL_PREFERENCE, DEFUALT_LOG_LEVEL);
        }

        String consoleBufferValue = Activator.getDefault().getPreferenceStore()
                .getString(Constants.CONSOLE_BUFFER_SIZE_PREFERANCE_NAME);
        if (StringUtils.isNotBlank(consoleBufferValue)) {
            getPreferenceStore().setValue(Constants.CONSOLE_BUFFER_SIZE_PREFERANCE_NAME, consoleBufferValue);
        } else {
            getPreferenceStore().setValue(Constants.CONSOLE_BUFFER_SIZE_PREFERANCE_NAME,
                    Constants.DEFUALT_CONSOLE_BUFFER_SIZE);
        }
    }

    /*
     * (non-Javadoc)
     * 
     * @see
     * org.eclipse.jface.preference.FieldEditorPreferencePage#createContents(org
     * .eclipse.swt.widgets.Composite)
     */
    @Override
    protected Control createContents(Composite parent) {
        getPreferenceStore().getString(SAVE_JOB_BEFORE_RUN_PREFRENCE);
        jobRunPreferenceComposite = new JobRunPreferenceComposite(parent, SWT.NONE,
                getPreferenceStore().getString(SAVE_JOB_BEFORE_RUN_PREFRENCE),
                getPreferenceStore().getString(LOG_LEVEL_PREFERENCE),
                getPreferenceStore().getString(Constants.CONSOLE_BUFFER_SIZE_PREFERANCE_NAME), this);
        jobRunPreferenceComposite.setLayout(new GridLayout(1, false));
        jobRunPreferenceComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));

        return null;
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
     */
    @Override
    public boolean performOk() {
        boolean returnCode = super.performOk();
        String selection = MessageDialogWithToggle.PROMPT;
        if (jobRunPreferenceComposite.getAlwaysButtonSelection()) {
            selection = MessageDialogWithToggle.ALWAYS;
        }
        Activator.getDefault().getPreferenceStore().setValue(SAVE_JOB_BEFORE_RUN_PREFRENCE, selection);
        Activator.getDefault().getPreferenceStore().setValue(LOG_LEVEL_PREFERENCE,
                jobRunPreferenceComposite.getLoglevel());
        Activator.getDefault().getPreferenceStore().setValue(Constants.CONSOLE_BUFFER_SIZE_PREFERANCE_NAME,
                jobRunPreferenceComposite.getConsoleBufferSize());
        return returnCode;
    }

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

    @Override
    protected void performDefaults() {
        jobRunPreferenceComposite.storeDefaults();
    }
}