com.subgraph.vega.application.preferences.VegaSocksPreferencePage.java Source code

Java tutorial

Introduction

Here is the source code for com.subgraph.vega.application.preferences.VegaSocksPreferencePage.java

Source

/*******************************************************************************
 * Copyright (c) 2011 Subgraph.
 * 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
 * 
 * Contributors:
 *     Subgraph - initial API and implementation
 ******************************************************************************/
package com.subgraph.vega.application.preferences;

import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IntegerFieldEditor;
import org.eclipse.jface.preference.StringFieldEditor;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;

import com.subgraph.vega.application.Activator;

public class VegaSocksPreferencePage extends FieldEditorPreferencePage
        implements IWorkbenchPreferencePage, IVegaSocksPreferenceConstants {

    private BooleanFieldEditor enableField;
    private StringFieldEditor addressField;
    private IntegerFieldEditor portField;

    public VegaSocksPreferencePage() {
        super(GRID);
    }

    @Override
    public void init(IWorkbench workbench) {
        setPreferenceStore(Activator.getDefault().getPreferenceStore());
        setDescription("Configure a SOCKS proxy for all Vega connections");
    }

    @Override
    protected void createFieldEditors() {
        enableField = new BooleanFieldEditor(P_SOCKS_ENABLED, "Enable SOCKS proxy", getFieldEditorParent());
        addField(enableField);

        addressField = new StringFieldEditor(P_SOCKS_ADDRESS, "SOCKS Proxy Address", getFieldEditorParent());
        addressField.setEmptyStringAllowed(false);
        addField(addressField);

        portField = new IntegerFieldEditor(P_SOCKS_PORT, "Socks Proxy Port", getFieldEditorParent());
        portField.setValidRange(1, 65535);
        portField.setTextLimit(5);
        addField(portField);

        setEnableState(getPreferenceStore().getBoolean(P_SOCKS_ENABLED));
    }

    @Override
    public void propertyChange(PropertyChangeEvent event) {
        if (event.getProperty().equals(FieldEditor.VALUE) && event.getSource() == enableField) {
            if (event.getNewValue() instanceof Boolean) {
                setEnableState((Boolean) event.getNewValue());
            }
        }
        super.propertyChange(event);
    }

    private void setEnableState(boolean value) {
        addressField.setEnabled(value, getFieldEditorParent());
        portField.setEnabled(value, getFieldEditorParent());
    }
}