日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java插件获取首选项_Eclipse RCP 中创建自定义首选项,并能读取首选项中的值

發布時間:2024/10/8 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java插件获取首选项_Eclipse RCP 中创建自定义首选项,并能读取首选项中的值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Eclipse RCP的插件中若想自己定義首選項需要擴展擴展點:

org.eclipse.core.runtime.preferences //該擴展點用于初始化首選項中的值

org.eclipse.ui.preferencePages//該擴展點用于定義自己的首選項頁面

plugin.xml中內容如:

Database Preferences掛在WorkFlowBase下,需要在category中填寫workFlowBase的ID

WorkFlowPreferenceInitializer類,用于初始化首選項中的值

import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;

import org.eclipse.jface.preference.IPreferenceStore;

import mydesigner.WorkFlowActivator;

/**

* Class used to initialize default preference values.

* 首選項的初始化

*/

public class WorkFlowPreferenceInitializer extends AbstractPreferenceInitializer {

/*

* (non-Javadoc)

*

* @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()

*/

public void initializeDefaultPreferences() {

IPreferenceStore store = WorkFlowActivator.getDefault().getPreferenceStore();

store.setDefault(WorkFlowPreferenceConstants.P_BOOLEAN, true);

store.setDefault(WorkFlowPreferenceConstants.P_CHOICE, "choice2");

store.setDefault(WorkFlowPreferenceConstants.P_STRING,"Default value");

store.setDefault(WorkFlowPreferenceConstants.USER_NAME, "admin");

store.setDefault(WorkFlowPreferenceConstants.PASSWORD, "123456");//頁面上的初始值

}

}WorkFlowPreferenceConstants 該類定義了首選項中的常量

public class WorkFlowPreferenceConstants {

public static final String P_PATH = "pathPreference";

public static final String P_BOOLEAN = "booleanPreference";

public static final String P_CHOICE = "choicePreference";

public static final String P_STRING = "stringPreference";

public static final String USER_NAME ="userName";

public static final String PASSWORD = "passWord";

}WorkFlowBasePreferencePage該類定義了首選項中的workFlow頁面

import mydesigner.WorkFlowActivator;

import org.eclipse.jface.preference.IPreferenceStore;

import org.eclipse.jface.preference.PreferencePage;

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.ui.IWorkbench;

import org.eclipse.ui.IWorkbenchPreferencePage;

import com.workflow.preferences.WorkFlowPreferenceConstants;

/**

* 首選項中的workFlow頁面

* @author lww

*

*/

public class WorkFlowBasePreferencePage extends PreferencePage implements IWorkbenchPreferencePage{

private Text userName; //用戶名

private Text password; //密碼框

public WorkFlowBasePreferencePage() {

super();

setPreferenceStore(WorkFlowActivator.getDefault().getPreferenceStore());

setDescription("This is a workflowBase PreferencePage!");

}

@Override

public void init(IWorkbench workbench) {

}

//該方法為必須實現的方法,在此方法中創建頁面上的各種控件

@Override

protected Control createContents(Composite parent) {

Composite composite = new Composite(parent, SWT.NONE);

composite.setLayout(new GridLayout(2, false));

//獲取保存此頁面的PreferenceStore對象

IPreferenceStore preferenceStore = getPreferenceStore();

new Label(composite, SWT.LEFT).setText("登錄用戶名:");

userName = new Text(composite, SWT.BORDER);

userName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

//設置用戶名為保存在文件中的值

userName.setText(preferenceStore.getString(WorkFlowPreferenceConstants.USER_NAME));

new Label(composite, SWT.LEFT).setText("登錄密碼:");

password = new Text(composite, SWT.BORDER);

password.setEchoChar('*'); //設置密碼用*顯示

password.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

//設置密碼為保存在文件中的值

password.setText(preferenceStore.getString(WorkFlowPreferenceConstants.PASSWORD));

return composite;

}

/*

* 覆蓋父類中的方法,但單擊“恢復默認值”按鈕時調用該方法

*/

protected void performDefaults() {

IPreferenceStore preferenceStore = getPreferenceStore();

userName.setText( preferenceStore.getDefaultString(WorkFlowPreferenceConstants.USER_NAME));

password.setText( preferenceStore.getDefaultString(WorkFlowPreferenceConstants.PASSWORD));

}

/*

* 覆蓋父類中的方法,但單擊“應用”按鈕時調用該方法

*/

public boolean performOk() {

IPreferenceStore preferenceStore = getPreferenceStore();

if (userName != null)

preferenceStore.setValue(WorkFlowPreferenceConstants.USER_NAME, userName.getText());

if (password != null)

preferenceStore.setValue(WorkFlowPreferenceConstants.PASSWORD, password.getText());

return true;

}

@Override//用于擴展自己的按鈕

protected void contributeButtons(Composite parent) {

// super.contributeButtons(parent);

Button bt1 = new Button(parent, SWT.NONE);

bt1.setText("按鈕一");

((GridLayout) parent.getLayout()).numColumns++;

Button bt2 = new Button(parent, SWT.NONE);

bt2.setText("按鈕二");

((GridLayout) parent.getLayout()).numColumns++;

}

}DBPreferencePage該類定義了DB的首選項頁面

import org.eclipse.jface.preference.*;

import org.eclipse.ui.IWorkbenchPreferencePage;

import org.eclipse.ui.IWorkbench;

import com.workflow.preferences.WorkFlowPreferenceConstants;

import mydesigner.WorkFlowActivator;

public class DBPreferencePage

extends FieldEditorPreferencePage

implements IWorkbenchPreferencePage {

public DBPreferencePage() {

super(GRID);

setPreferenceStore(WorkFlowActivator.getDefault().getPreferenceStore());

setDescription("A demonstration of a preference page implementation");

}

/**

* Creates the field editors. Field editors are abstractions of

* the common GUI blocks needed to manipulate various types

* of preferences. Each field editor knows how to save and

* restore itself.

*/

public void createFieldEditors() {

addField(new DirectoryFieldEditor(WorkFlowPreferenceConstants.P_PATH,

"&Directory preference:", getFieldEditorParent()));

addField(

new BooleanFieldEditor(

WorkFlowPreferenceConstants.P_BOOLEAN,

"&An example of a boolean preference",

getFieldEditorParent()));

addField(new RadioGroupFieldEditor(

WorkFlowPreferenceConstants.P_CHOICE,

"An example of a multiple-choice preference",

1,

new String[][] { { "&Choice 1", "choice1" }, {

"C&hoice 2", "choice2" }

}, getFieldEditorParent()));

addField(

new StringFieldEditor(WorkFlowPreferenceConstants.P_STRING, "A &text preference:", getFieldEditorParent()));

}

/* (non-Javadoc)

* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)

*/

public void init(IWorkbench workbench) {

}

}執行結果如圖:

設置的值會保存到

runtime-myDesigner.product\.metadata\.plugins\org.eclipse.core.runtime\.settings中會生成文件

MyDesigner.prefs(MyDesigner是當前的插件名)

若要讀取該文件中的值:

//獲取首選項中的值

IPreferenceStore store = WorkFlowActivator.getDefault().getPreferenceStore();

System.out.println("用戶名:" + store.getString(WorkFlowPreferenceConstants.USER_NAME));

System.out.println("密碼:" + store.getString(WorkFlowPreferenceConstants.PASSWORD));//頁面上的初始值

原文:http://blog.csdn.net/luoww1/article/details/34425305

總結

以上是生活随笔為你收集整理的java插件获取首选项_Eclipse RCP 中创建自定义首选项,并能读取首选项中的值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。