net.bioclipse.opentox.prefs.NetworkPreferencePage.java Source code

Java tutorial

Introduction

Here is the source code for net.bioclipse.opentox.prefs.NetworkPreferencePage.java

Source

/* Copyright (c) 2013 The Bioclipse Team 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
 */
package net.bioclipse.opentox.prefs;

import net.bioclipse.opentox.Activator;
import net.bioclipse.opentox.OpenToxConstants;

import org.apache.log4j.Logger;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.IntegerFieldEditor;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.jface.preference.StringFieldEditor;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;

/**
 * @author egonw
 */
public class NetworkPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {

    private static final Logger logger = Logger.getLogger(NetworkPreferencePage.class.toString());

    private IntegerFieldEditor shortestTime;
    private IntegerFieldEditor longestTime;
    private IntegerFieldEditor timeout;

    public NetworkPreferencePage() {
        super();
    }

    @Override
    public void init(IWorkbench workbench) {
    }

    protected IPreferenceStore doGetPreferenceStore() {
        System.out.println("Really getting prefs store...");
        return Activator.getDefault().getPreferenceStore();
    }

    @Override
    protected Control createContents(Composite parent) {
        System.out.println("Creating controls for the OT Network prefs page...");

        timeout = new IntegerFieldEditor("HTTPTimeOut", "HTTP Time Out (in s)", parent);
        timeout.setValidateStrategy(StringFieldEditor.VALIDATE_ON_KEY_STROKE);
        timeout.setValidRange(2, 100);
        timeout.setPropertyChangeListener(new IPropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent event) {
                if (timeout.isValid()) {
                    setErrorMessage(null);
                    setValid(true);
                    return;
                }
                setErrorMessage(timeout.getErrorMessage());
                setValid(false);
            }
        });

        shortestTime = new IntegerFieldEditor("ShortestWaitTime", "Shortest Waiting Time (in s)", parent);
        shortestTime.setValidateStrategy(StringFieldEditor.VALIDATE_ON_KEY_STROKE);
        shortestTime.setValidRange(2, 100);
        shortestTime.setPropertyChangeListener(new IPropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent event) {
                if (shortestTime.isValid()) {
                    setErrorMessage(null);
                    setValid(true);
                    return;
                }
                setErrorMessage(shortestTime.getErrorMessage());
                setValid(false);
            }
        });

        longestTime = new IntegerFieldEditor("LongestWaitTime", "Longest Waiting Time (in s)", parent);
        longestTime.setValidateStrategy(StringFieldEditor.VALIDATE_ON_KEY_STROKE);
        longestTime.setValidRange(2, 100);
        longestTime.setPropertyChangeListener(new IPropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent event) {
                if (longestTime.isValid()) {
                    setErrorMessage(null);
                    setValid(true);
                    return;
                }
                setErrorMessage(longestTime.getErrorMessage());
                setValid(false);
            }
        });

        initializeValues();

        return parent;
    }

    @Override
    public boolean performOk() {
        System.out.println("Performing Ok...");
        storeValues();
        return super.performOk();
    }

    @Override
    protected void performDefaults() {
        System.out.println("Setting defaults...");
        super.performDefaults();
        initializeDefaults();
    }

    private void initializeValues() {
        IPreferenceStore store = getPreferenceStore();
        System.out.println("Initializing OT Network values from store...");
        shortestTime.setStringValue(store.getString(OpenToxConstants.SHORTEST_WAIT_TIME_IN_SECS));
        longestTime.setStringValue(store.getString(OpenToxConstants.LONGEST_WAIT_TIME_IN_SECS));
        timeout.setStringValue(store.getString(OpenToxConstants.HTTP_TIMEOUT));
    }

    private void storeValues() {
        System.out.println("Storing OT Network values...");
        IPreferenceStore store = getPreferenceStore();
        store.setValue(OpenToxConstants.SHORTEST_WAIT_TIME_IN_SECS, shortestTime.getStringValue());
        store.setValue(OpenToxConstants.LONGEST_WAIT_TIME_IN_SECS, longestTime.getStringValue());
        store.setValue(OpenToxConstants.HTTP_TIMEOUT, timeout.getStringValue());
    }

    private void initializeDefaults() {
        System.out.println("Initializing OT Network value defaults...");
        IPreferenceStore store = getPreferenceStore();
        shortestTime.setStringValue(store.getDefaultString(OpenToxConstants.SHORTEST_WAIT_TIME_IN_SECS));
        longestTime.setStringValue(store.getDefaultString(OpenToxConstants.LONGEST_WAIT_TIME_IN_SECS));
        timeout.setStringValue(store.getDefaultString(OpenToxConstants.HTTP_TIMEOUT));
    }
}