| /******************************************************************************* |
| * Copyright (c) 2007 The Eclipse Foundation. |
| * 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: |
| * The Eclipse Foundation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.epp.usagedata.internal.ui.preferences; |
| |
| import org.eclipse.epp.usagedata.internal.gathering.UsageDataCaptureActivator; |
| import org.eclipse.epp.usagedata.internal.gathering.settings.UsageDataCaptureSettings; |
| import org.eclipse.jface.preference.IPreferenceStore; |
| import org.eclipse.jface.preference.PreferencePage; |
| import org.eclipse.jface.util.IPropertyChangeListener; |
| import org.eclipse.jface.util.PropertyChangeEvent; |
| import org.eclipse.swt.SWT; |
| 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.Label; |
| import org.eclipse.ui.IWorkbench; |
| import org.eclipse.ui.IWorkbenchPreferencePage; |
| |
| public class UsageDataCapturePreferencesPage extends PreferencePage |
| implements IWorkbenchPreferencePage { |
| |
| Button captureEnabledCheckbox; |
| |
| IPropertyChangeListener propertyChangeListener = new IPropertyChangeListener() { |
| public void propertyChange(PropertyChangeEvent event) { |
| if (UsageDataCaptureSettings.CAPTURE_ENABLED_KEY.equals(event.getProperty())) { |
| captureEnabledCheckbox.setSelection((Boolean)event.getNewValue()); |
| } |
| } |
| }; |
| |
| public UsageDataCapturePreferencesPage() { |
| setDescription("The Usage Data Collector collects information about how individuals are using the Eclipse platform. The intent is to use this data to help committers and organizations better understand how developers are using Eclipse."); |
| setPreferenceStore(UsageDataCaptureActivator.getDefault().getPreferenceStore()); |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench) |
| */ |
| public void init(IWorkbench workbench) { |
| getPreferenceStore().addPropertyChangeListener(propertyChangeListener); |
| } |
| |
| @Override |
| public void dispose() { |
| getPreferenceStore().removePropertyChangeListener(propertyChangeListener); |
| super.dispose(); |
| } |
| |
| @Override |
| protected Control createContents(Composite parent) { |
| Composite composite = new Composite(parent, SWT.NONE); |
| composite.setLayoutData(new GridData(GridData.FILL_BOTH)); |
| |
| composite.setLayout(new GridLayout()); |
| |
| createGeneralInformationArea(composite); |
| |
| Label filler = new Label(parent, SWT.NONE); |
| filler.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, true)); |
| |
| initialize(); |
| |
| return composite; |
| } |
| |
| private void initialize() { |
| captureEnabledCheckbox.setSelection(getCapturePreferences().getBoolean(UsageDataCaptureSettings.CAPTURE_ENABLED_KEY)); |
| } |
| |
| @Override |
| public boolean performOk() { |
| getCapturePreferences().setValue(UsageDataCaptureSettings.CAPTURE_ENABLED_KEY, captureEnabledCheckbox.getSelection()); |
| |
| return super.performOk(); |
| } |
| |
| @Override |
| protected void performDefaults() { |
| captureEnabledCheckbox.setSelection(getCapturePreferences().getDefaultBoolean(UsageDataCaptureSettings.CAPTURE_ENABLED_KEY)); |
| |
| super.performDefaults(); |
| } |
| |
| private void createGeneralInformationArea(Composite parent) { |
| Composite composite = new Composite(parent, SWT.NONE); |
| composite.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, false)); |
| |
| composite.setLayout(new GridLayout()); |
| |
| captureEnabledCheckbox = new Button(composite, SWT.CHECK | SWT.LEFT); |
| captureEnabledCheckbox.setText("Enable capture"); |
| } |
| |
| |
| private IPreferenceStore getCapturePreferences() { |
| return org.eclipse.epp.usagedata.internal.gathering.UsageDataCaptureActivator.getDefault().getPreferenceStore(); |
| } |
| } |