blob: a13c9f2a6bfe0a431c6e4ffc786f314acc36c333 [file] [log] [blame]
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.motorola.studio.android.preferences.ui;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
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.eclipse.ui.PlatformUI;
import com.motorola.studio.android.AndroidPlugin;
import com.motorola.studio.android.i18n.AndroidNLS;
/**
* This class draws the preference page that allow user to chose between display the
* native emulator outside the view after it's closed or not.
*/
public class EmulatorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage
{
private final String PREFERENCE_PAGE_HELP = AndroidPlugin.PLUGIN_ID
+ ".preference-emulator-view"; //$NON-NLS-1$
protected boolean shallUnembedEmulators;
private Button unembedCheckBox;
/* (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
*/
public void init(IWorkbench workbench)
{
super.getPreferenceStore().setDefault(AndroidPlugin.SHALL_UNEMBED_EMULATORS_PREF_KEY, true);
shallUnembedEmulators =
super.getPreferenceStore().getBoolean(
AndroidPlugin.SHALL_UNEMBED_EMULATORS_PREF_KEY);
}
/* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
*/
@Override
protected Control createContents(Composite parent)
{
PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, PREFERENCE_PAGE_HELP);
Composite mainComposite = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
mainComposite.setLayout(layout);
Group emulatorViewGroup = new Group(mainComposite, SWT.NONE);
GridLayout emulatorViewGroupLayout = new GridLayout();
GridData emulatorViewGroupLayoutData =
new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
emulatorViewGroup.setLayoutData(emulatorViewGroupLayoutData);
emulatorViewGroup.setLayout(emulatorViewGroupLayout);
emulatorViewGroup.setText(AndroidNLS.EmulatorPreferencePage_EmulatorViewGroup);
unembedCheckBox = new Button(emulatorViewGroup, SWT.CHECK);
GridData unembedCheckBoxData = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
unembedCheckBox.setLayoutData(unembedCheckBoxData);
unembedCheckBox.setText(AndroidNLS.EmulatorPreferencePage_UnembedCheckBox);
unembedCheckBox.setSelection(shallUnembedEmulators);
unembedCheckBox.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(SelectionEvent e)
{
Button source = (Button) e.getSource();
shallUnembedEmulators = source.getSelection();
super.widgetSelected(e);
}
});
Label noteLabel = new Label(emulatorViewGroup, SWT.WRAP);
noteLabel.setText(AndroidNLS.EmulatorPreferencePage_UnembedNote);
GridData noteLabelLayoutData = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
noteLabelLayoutData.widthHint = 100;
noteLabel.setLayoutData(noteLabelLayoutData);
return mainComposite;
}
@Override
public boolean performOk()
{
getPreferenceStore().setValue(AndroidPlugin.SHALL_UNEMBED_EMULATORS_PREF_KEY,
shallUnembedEmulators);
return super.performOk();
}
@Override
protected void performDefaults()
{
shallUnembedEmulators = true;
unembedCheckBox.setSelection(shallUnembedEmulators);
super.performDefaults();
}
/*
* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()
*/
@Override
protected IPreferenceStore doGetPreferenceStore()
{
return AndroidPlugin.getDefault().getPreferenceStore();
}
}