Package org.springframework.ide.eclipse.beans.ui.preferences

Source Code of org.springframework.ide.eclipse.beans.ui.preferences.BeansPreferencePage

/*******************************************************************************
* Copyright (c) 2007, 2010 Spring IDE Developers
* 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:
*     Spring IDE Developers - initial API and implementation
*******************************************************************************/
package org.springframework.ide.eclipse.beans.ui.preferences;

import java.util.Set;

import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditor;
import org.eclipse.jface.preference.IntegerFieldEditor;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.jface.preference.RadioGroupFieldEditor;
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.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.springframework.ide.eclipse.beans.core.BeansCorePlugin;
import org.springframework.ide.eclipse.beans.core.model.IBeansModel;
import org.springframework.ide.eclipse.beans.core.model.IBeansProject;
import org.springframework.ide.eclipse.beans.ui.BeansUIPlugin;

/**
* {@link IWorkbenchPreferencePage} that allows to change the persistence property for the {@link IBeansModel}.
* @author Christian Dupuis
* @since 2.0
*/
public class BeansPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {

  private RadioGroupFieldEditor radioEditor;

  private BooleanFieldEditor graphEditorInnerBeans;
 
  private BooleanFieldEditor disableAutoDetection;

  private FieldEditor graphEditorInfrastructureBeans;

  private IntegerFieldEditor configTimeout;

  private FieldEditor graphEditorExtendedContent;

  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 configuration parameters for the Spring support.");
    label.setFont(parent.getFont());
    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalSpan = 1;
    gd.widthHint = 300;
    label.setLayoutData(gd);
   
    Composite timeoutComposite = new Composite(entryTable, SWT.NONE);
    timeoutComposite.setLayout(new GridLayout());

    timeoutComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    Group timeoutGroup = new Group(timeoutComposite, SWT.NONE);
    timeoutGroup.setText("Loading Spring configuration files");
    layout = new GridLayout();
    gd = new GridData(GridData.FILL_HORIZONTAL);
    timeoutGroup.setLayout(layout);
    timeoutGroup.setLayoutData(gd);
    Composite timoutComposite1 = new Composite(timeoutGroup, SWT.NONE);
    layout.marginWidth = 3;
    layout.marginHeight = 3;
    timoutComposite1.setLayout(layout);
    timoutComposite1.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    configTimeout = new IntegerFieldEditor(BeansCorePlugin.TIMEOUT_CONFIG_LOADING_PREFERENCE_ID, "Timeout [sec]",
        timoutComposite1);
    configTimeout.setPage(this);
    configTimeout.setPreferenceStore(BeansCorePlugin.getDefault().getPreferenceStore());
    configTimeout.load();

    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));
    radioEditor = new RadioGroupFieldEditor(BeansUIPlugin.DEFAULT_DOUBLE_CLICK_ACTION_PREFERENCE_ID,
        "Default Double Click Action", 1, new String[][] { { "Open Configuration File", "true" },
            { "Open Java Element", "false" } }, radioComposite2, true);
    radioEditor.setPage(this);
    radioEditor.setPreferenceStore(getPreferenceStore());
    radioEditor.load();

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

    graphComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    Group graphEditorGroup = new Group(graphComposite, SWT.NONE);
    graphEditorGroup.setText("Bean Dependency Graph");
    layout = new GridLayout();
    gd = new GridData(GridData.FILL_HORIZONTAL);
    graphEditorGroup.setLayout(layout);
    graphEditorGroup.setLayoutData(gd);
    Composite graphComposite2 = new Composite(graphEditorGroup, SWT.NONE);
    layout.marginWidth = 3;
    layout.marginHeight = 3;
    graphComposite2.setLayout(layout);
    graphComposite2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    graphEditorInnerBeans = new BooleanFieldEditor(BeansUIPlugin.SHOULD_SHOW_INNER_BEANS_PREFERENCE_ID,
        "Display inner beans", SWT.NONE, graphComposite2);
    graphEditorInnerBeans.setPage(this);
    graphEditorInnerBeans.setPreferenceStore(getPreferenceStore());
    graphEditorInnerBeans.load();
    graphEditorInfrastructureBeans = new BooleanFieldEditor(
        BeansUIPlugin.SHOULD_SHOW_INFRASTRUCTURE_BEANS_PREFERENCE_ID, "Display infrastructure beans", SWT.NONE,
        graphComposite2);
    graphEditorInfrastructureBeans.setPage(this);
    graphEditorInfrastructureBeans.setPreferenceStore(getPreferenceStore());
    graphEditorInfrastructureBeans.load();
    graphEditorExtendedContent = new BooleanFieldEditor(BeansUIPlugin.SHOULD_SHOW_EXTENDED_CONTENT_PREFERENCE_ID,
        "Display extended content (e.g. Autowired dependencies) [experimental]", SWT.NONE, graphComposite2);
    graphEditorExtendedContent.setPage(this);
    graphEditorExtendedContent.setPreferenceStore(getPreferenceStore());
    graphEditorExtendedContent.load();
   
    disableAutoDetection = new BooleanFieldEditor(BeansCorePlugin.DISABLE_AUTO_DETECTION, "Disable Auto Config Detection", entryTable);
    disableAutoDetection.setPage(this);
    disableAutoDetection.setPreferenceStore(BeansCorePlugin.getDefault().getPreferenceStore());
    disableAutoDetection.load();

    return entryTable;
  }

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

  protected void performDefaults() {
    radioEditor.loadDefault();
    graphEditorInnerBeans.loadDefault();
    graphEditorInfrastructureBeans.loadDefault();
    configTimeout.loadDefault();
    disableAutoDetection.loadDefault();
  }

  public boolean performOk() {
    radioEditor.store();
    configTimeout.store();
    graphEditorInnerBeans.store();
    graphEditorInfrastructureBeans.store();
    graphEditorExtendedContent.store();
    disableAutoDetection.store();
    return super.performOk();
  }

}
TOP

Related Classes of org.springframework.ide.eclipse.beans.ui.preferences.BeansPreferencePage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.