/**
* Copyright (c) 2005-2006 Aptana, 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. If redistributing this code,
* this entire header must remain intact.
*/
package com.aptana.ide.intro.preferences;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.IPreferenceStore;
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.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import com.aptana.ide.core.ui.CoreUIUtils;
import com.aptana.ide.intro.IntroPlugin;
import com.aptana.ide.server.jetty.JettyPlugin;
/**
* Start page preference page
*
* @author Kevin Sawicki (ksawicki@aptana.com)
*/
public final class IntroPreferencePage extends PreferencePage implements IWorkbenchPreferencePage
{
private BooleanFieldEditor portalBrowserEditor;
private RadioGroupFieldEditor showStartPageEditor;
/**
* @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
*/
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);
Composite colorComposite = new Composite(entryTable, SWT.NONE);
colorComposite.setLayout(new GridLayout());
// Create a data that takes up the extra space in the dialog.
colorComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
showStartPageEditor = new RadioGroupFieldEditor(IPreferenceConstants.SHOW_STARTPAGE_ON_STARTUP,
Messages.IntroPreferencePage_StartPageOptions, 1, new String[][] {
{ Messages.IntroPreferencePage_AlwaysDisplayAtStart, IPreferenceConstants.ALWAYS_SHOW },
{ Messages.IntroPreferencePage_AlwaysDisplayAfterAnyUpdates,
IPreferenceConstants.SHOW_ALL_UPDATES },
{ Messages.IntroPreferencePage_NeverDisplayAfterStartup, IPreferenceConstants.NEVER_SHOW } },
colorComposite, true);
showStartPageEditor.setPage(this);
showStartPageEditor.setPreferenceStore(getPreferenceStore());
showStartPageEditor.load();
if (CoreUIUtils.onWindows)
{
portalBrowserEditor = new BooleanFieldEditor(
com.aptana.ide.server.jetty.preferences.IPreferenceConstants.USE_FIREFOX,
Messages.IntroPreferencePage_LBL_UseFirefox, colorComposite);
portalBrowserEditor.setPage(this);
portalBrowserEditor.setPreferenceStore(JettyPlugin.getDefault().getPreferenceStore());
portalBrowserEditor.load();
}
return entryTable;
}
/**
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
*/
public void init(IWorkbench workbench)
{
// Initialize the preference store we wish to use
setPreferenceStore(IntroPlugin.getDefault().getPreferenceStore());
}
/**
* Performs special processing when this page's Restore Defaults button has been pressed. Sets the contents of the
* color field to the default value in the preference store.
*/
protected void performDefaults()
{
showStartPageEditor.loadDefault();
if (CoreUIUtils.onWindows)
{
portalBrowserEditor.loadDefault();
}
}
/**
* Method declared on IPreferencePage. Save the color preference to the preference store.
*
* @return boolean
*/
public boolean performOk()
{
showStartPageEditor.store();
if (CoreUIUtils.onWindows)
{
portalBrowserEditor.store();
}
return super.performOk();
}
/**
* Gets the preference store
*
* @return - preference store
*/
protected IPreferenceStore doGetPreferenceStore()
{
return IntroPlugin.getDefault().getPreferenceStore();
}
}