org.springframework.ide.eclipse.osgi.runtime.ui.OSGiRuntimePreferencePage.java Source code

Java tutorial

Introduction

Here is the source code for org.springframework.ide.eclipse.osgi.runtime.ui.OSGiRuntimePreferencePage.java

Source

/*******************************************************************************
 *  Copyright (c) 2012 VMware, Inc.
 *  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:
 *      VMware, Inc. - initial API and implementation
 *******************************************************************************/
package org.springframework.ide.eclipse.osgi.runtime.ui;

import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.jface.preference.StringFieldEditor;
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.swt.widgets.Label;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.springframework.ide.eclipse.osgi.runtime.OsgiPlugin;

/**
 * {@link PreferencePage} that enables the user to define a post number for the
 * Equninox console.
 * @author Christian Dupuis
 * @author Leo Dos Santos
 * @since 1.0
 */
public class OSGiRuntimePreferencePage extends PreferencePage implements IWorkbenchPreferencePage {

    private StringFieldEditor textEditor;

    public void init(IWorkbench workbench) {
        // Initialize the preference store we wish to use
        setPreferenceStore(OsgiPlugin.getDefault().getPreferenceStore());
    }

    @Override
    public boolean performOk() {
        textEditor.store();
        return super.performOk();
    }

    @Override
    protected Control createContents(Composite parent) {

        Composite entryTable = new Composite(parent, SWT.NULL);

        // Create a data that takes up the extra space in the dialog .
        GridData data = new GridData(GridData.FILL_HORIZONTAL);
        data.grabExcessHorizontalSpace = true;
        entryTable.setLayoutData(data);

        GridLayout layout = new GridLayout();
        entryTable.setLayout(layout);

        Label label = new Label(entryTable, SWT.NONE | SWT.WRAP);
        label.setText(
                "Use this preference page to specify the port number needed to connect to an running Equinox console.");
        label.setFont(parent.getFont());
        GridData gd = new GridData(GridData.FILL_HORIZONTAL);
        gd.horizontalSpan = 1;
        gd.widthHint = 300;
        label.setLayoutData(gd);

        Composite radioComposite = new Composite(entryTable, SWT.NONE);
        radioComposite.setLayout(new GridLayout());

        // Create a data that takes up the extra space in the dialog.
        radioComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        Composite radioComposite2 = new Composite(radioComposite, SWT.NONE);
        layout.marginWidth = 3;
        layout.marginHeight = 3;
        radioComposite2.setLayout(layout);
        radioComposite2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        textEditor = new StringFieldEditor(OsgiPlugin.PORT_PREFERENCE_KEY, "Port number:", 10, radioComposite2);
        textEditor.setPage(this);
        textEditor.setPreferenceStore(getPreferenceStore());
        textEditor.load();

        Label noteLabel = new Label(radioComposite, SWT.NONE | SWT.WRAP);
        noteLabel.setText("Note: the port number will also be available by using the "
                + "${osgi.console.port} placeholder in the OSGi Framework launch configuration.");
        noteLabel.setFont(parent.getFont());
        gd = new GridData(GridData.FILL_HORIZONTAL);
        gd.horizontalSpan = 1;
        gd.widthHint = 300;
        noteLabel.setLayoutData(gd);

        return entryTable;
    }

    @Override
    protected void performDefaults() {
        textEditor.loadDefault();
    }

}