editorprefpage.java

来自「eclipse开发笔记」· Java 代码 · 共 89 行

JAVA
89
字号
package com.plugindev.addressbook.preferences;

import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.RadioGroupFieldEditor;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;

import com.plugindev.addressbook.Activator;

public class EditorPrefPage extends FieldEditorPreferencePage implements
		IWorkbenchPreferencePage {
	
	private BooleanFieldEditor boolEditFieldEditor;
	private BooleanFieldEditor boolPWSPFieldEditor;
	private BooleanFieldEditor boolSourceFieldEditor;
	private RadioGroupFieldEditor radioAlignFieldEditor;

	/**
	 * Create the preference page
	 */
	public EditorPrefPage() {
		super(FieldEditorPreferencePage.FLAT);
		this.setPreferenceStore(Activator.getDefault().getPreferenceStore());
		setDescription("设置编辑器的页面数量、\"编辑\"页面布局");
	}
	
	/**
	 * Create contents of the preference page
	 */
	@Override
	protected void createFieldEditors() {
		boolEditFieldEditor = new BooleanFieldEditor(PreferenceConstants.P_EDITOR_EDIT_BOOL, "显示\"编辑\"页面", getFieldEditorParent());
		addField(boolEditFieldEditor);
		boolPWSPFieldEditor = new BooleanFieldEditor(PreferenceConstants.P_EDITOR_PWSP_BOOL, "显示\"分页预览\"页面", getFieldEditorParent());
		addField(boolPWSPFieldEditor);
		boolSourceFieldEditor =new BooleanFieldEditor(PreferenceConstants.P_EDITOR_SOURCE_BOOL, "显示\"源代码\"页面", getFieldEditorParent());
		addField(boolSourceFieldEditor);
		radioAlignFieldEditor = new RadioGroupFieldEditor(PreferenceConstants.P_EDITOR_LAYOUT, "选择编辑器的默认排列方式", 1, 
				new String[][] {{"水平","horizontal"}, {"垂直", "vertical"}},
				getFieldEditorParent());
			addField(radioAlignFieldEditor);

		// Create the field editors
		
	}

	/**
	 * Initialize the preference page
	 */
	public void init(IWorkbench workbench) {
		// Initialize the preference page
	}
	public void checkState(){
		super.checkState();
		if(!isValid())
			return;
		if(!boolEditFieldEditor.getBooleanValue()){
			setErrorMessage("\"编辑\"页面必须存在!");
			setValid(false);
		}
		else{
			setErrorMessage(null);
			setValid(true);
		}
	}
	public void propertyChange(PropertyChangeEvent event){
		super.propertyChange(event);
		if(event.getProperty().equals(FieldEditor.VALUE)){
			if(event.getSource() == boolEditFieldEditor)
				checkState();
			if(event.getSource() == boolPWSPFieldEditor){
				if(boolPWSPFieldEditor.getBooleanValue()== true)
					setMessage("该设置生效有可能需要重启应用程序!", WARNING);
				else
					setMessage(null);
			}
			if(event.getSource() == boolSourceFieldEditor){
				if(boolSourceFieldEditor.getBooleanValue() == true)
					setMessage("该设置生效有可能需要重启应用程序!", WARNING);
				else
					setMessage(null);
			}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?