/******************************************************************************* | |
* Copyright (c) 2000, 2005 IBM Corporation and others. | |
* 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: | |
* IBM Corporation - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.jdt.internal.ui.preferences; | |
import java.util.ArrayList; | |
import java.util.List; | |
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.swt.widgets.Text; | |
import org.eclipse.jface.dialogs.IDialogConstants; | |
import org.eclipse.jface.preference.IPreferenceStore; | |
import org.eclipse.jface.preference.PreferencePage; | |
import org.eclipse.ui.IWorkbench; | |
import org.eclipse.ui.IWorkbenchPreferencePage; | |
import org.eclipse.ui.PlatformUI; | |
import org.eclipse.jdt.internal.ui.JavaPlugin; | |
/** | |
* Preference page for work in progress. | |
*/ | |
public class WorkInProgressPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { | |
private List fCheckBoxes; | |
private List fRadioButtons; | |
private List fTextControls; | |
/** | |
* creates a new preference page. | |
*/ | |
public WorkInProgressPreferencePage() { | |
setPreferenceStore(getPreferenceStore()); | |
fRadioButtons= new ArrayList(); | |
fCheckBoxes= new ArrayList(); | |
fTextControls= new ArrayList(); | |
} | |
Button addCheckBox(Composite parent, String label, String key) { | |
GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL); | |
Button button= new Button(parent, SWT.CHECK); | |
button.setText(label); | |
button.setData(key); | |
button.setLayoutData(gd); | |
button.setSelection(getPreferenceStore().getBoolean(key)); | |
fCheckBoxes.add(button); | |
return button; | |
} | |
/* | |
* @see PreferencePage#createControl(Composite) | |
*/ | |
public void createControl(Composite parent) { | |
super.createControl(parent); | |
PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), "WORK_IN_PROGRESS_PREFERENCE_PAGE"); //$NON-NLS-1$ | |
} | |
protected Control createContents(Composite parent) { | |
initializeDialogUnits(parent); | |
Composite result= new Composite(parent, SWT.NONE); | |
GridLayout layout= new GridLayout(); | |
layout.marginHeight= convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); | |
layout.marginWidth= 0; | |
layout.verticalSpacing= convertVerticalDLUsToPixels(10); | |
layout.horizontalSpacing= convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); | |
result.setLayout(layout); | |
// Add your controls here | |
applyDialogFont(result); | |
return result; | |
} | |
/* | |
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench) | |
*/ | |
public void init(IWorkbench workbench) { | |
} | |
protected void createSpacer(Composite composite, int columnSpan) { | |
Label label= new Label(composite, SWT.NONE); | |
GridData gd= new GridData(); | |
gd.horizontalSpan= columnSpan; | |
label.setLayoutData(gd); | |
} | |
/* | |
* @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore() | |
*/ | |
protected IPreferenceStore doGetPreferenceStore() { | |
return JavaPlugin.getDefault().getPreferenceStore(); | |
} | |
/* | |
* @see PreferencePage#performDefaults() | |
*/ | |
protected void performDefaults() { | |
IPreferenceStore store= getPreferenceStore(); | |
for (int i= 0; i < fCheckBoxes.size(); i++) { | |
Button button= (Button) fCheckBoxes.get(i); | |
String key= (String) button.getData(); | |
button.setSelection(store.getDefaultBoolean(key)); | |
} | |
for (int i= 0; i < fRadioButtons.size(); i++) { | |
Button button= (Button) fRadioButtons.get(i); | |
String[] info= (String[]) button.getData(); | |
button.setSelection(info[1].equals(store.getDefaultString(info[0]))); | |
} | |
for (int i= 0; i < fTextControls.size(); i++) { | |
Text text= (Text) fTextControls.get(i); | |
String key= (String) text.getData(); | |
text.setText(store.getDefaultString(key)); | |
} | |
super.performDefaults(); | |
} | |
/* | |
* @see IPreferencePage#performOk() | |
*/ | |
public boolean performOk() { | |
IPreferenceStore store= getPreferenceStore(); | |
for (int i= 0; i < fCheckBoxes.size(); i++) { | |
Button button= (Button) fCheckBoxes.get(i); | |
String key= (String) button.getData(); | |
store.setValue(key, button.getSelection()); | |
} | |
for (int i= 0; i < fRadioButtons.size(); i++) { | |
Button button= (Button) fRadioButtons.get(i); | |
if (button.getSelection()) { | |
String[] info= (String[]) button.getData(); | |
store.setValue(info[0], info[1]); | |
} | |
} | |
for (int i= 0; i < fTextControls.size(); i++) { | |
Text text= (Text) fTextControls.get(i); | |
String key= (String) text.getData(); | |
store.setValue(key, text.getText()); | |
} | |
JavaPlugin.getDefault().savePluginPreferences(); | |
return super.performOk(); | |
} | |
public static void initDefaults(IPreferenceStore store) { | |
// Initialize your defaults here | |
} | |
} |