清单 5. plugin.xml
<extension point="org.eclipse.ui.preferencePages">
<page
class="org.eclipse.testworkbenchapp.preferences.SamplePreferencePage"
id="org.eclipse.testworkbenchapp.preferences.SamplePreferencePage"
name="Sample Preferences"/>
</extension>
图 12 展示了当前您的列表中应该具有的扩展。
图 12. 扩展
清单 6 展示了首选项页的样本代码。
清单 6. 首选项样本
package mySample.app.preferences;
import java.io.IOException;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.jface.preference.PreferenceStore;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.RowLayout;
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;
public class SamplePage extends PreferencePage {
private static final String COLOR = "preference.Color";
private static final String FOOD = "preference.Food";
private static final String DRINK = "preference.Drink";
private static final String COMEDY = "preference.Color";
private static final String HORROR = "preference.Food";
private static final String ACTION = "preference.Drink";
private Text Color, Food, Drink;
private Button check1, check2, check3;
private PreferenceStore preferenceStore;
Composite composite;
protected Control createContents(Composite parent) {
composite = new Composite(parent, SWT.NONE);
composite.setLayout(new GridLayout(2, false));
preferenceStore = new PreferenceStore("mySample.properties");
try {
preferenceStore.load();
} catch (IOException e) {}
Label l = new Label(composite, SWT.LEFT);
l.setText("Favorite Color:");
Color = new Text(composite, SWT.BORDER);
Color.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
Color.setText(preferenceStore.getString(COLOR));
new Label(composite, SWT.LEFT).setText("Favorite Food:");
Food = new Text(composite, SWT.BORDER);
Food.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
Food.setText(preferenceStore.getString(FOOD));
new Label(composite, SWT.LEFT).setText("Favorite Drink:");
Drink = new Text(composite, SWT.BORDER);
Drink.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
Drink.setText(preferenceStore.getString(DRINK));
composite.pack();
Composite composite2 = new Composite(composite, SWT.NONE);
composite2.setLayout(new RowLayout(SWT.VERTICAL));
new Label(composite2, SWT.NONE).setText("Favorite movie type")
|