自訂Eclipse中點擊Propertyies彈出的喜好設定對話方塊

來源:互聯網
上載者:User
自訂Eclipse中點擊Propertyies彈出的喜好設定對話方塊,我們可以將其用在我們自己的RCP中。步驟如下:1.定義PreferenceDialog,如:

public class PropertyPreferenceDialog extends PreferenceDialog 

 

2.完成構造方法。如:private ITreeEntry entry;//傳一個樹結點類型進來public PropertyPreferenceDialog(Shell parentShell,ITreeEntry entry) {super(parentShell, new  PreferenceManager());//這裡直接new了一個PreferenceManager對象傳給構造方法this.entry = entry;GeneralPage generalPage = new GeneralPage(entry);//通用設定頁面 getPreferenceManager().addToRoot(new PreferenceNode("general",generalPage));//注意這裡的PreferenceNodegetPreferenceManager().addToRoot(new PreferenceNode("editor",new EditorPage(entry))); PreferenceNode node = new PreferenceNode("feed",new PreferencePage("綜合") {//結點,PreferenceNode是一個抽象類別@Override protected Control createContents(Composite parent) { noDefaultAndApplyButton();//這句話放在這裡也可以,放在構造方法也是一樣,當然這裡沒必要再定義一個構造方法了,用預設的即可            return new Composite(parent, SWT.NONE);  } });         node.add(new PreferenceNode("general",generalPage)); node.add(new PreferenceNode("editor",new EditorPage(entry))); getPreferenceManager().addToRoot(node);}3.定義各個preferencePage。如:public class GeneralPage extends PreferencePage implementsIWorkbenchPreferencePage {private ITreeEntry entry;private Text textId;/** * Create the preference page */public GeneralPage(ITreeEntry entry) {super("通用");this.entry = entry;noDefaultAndApplyButton();//不顯示恢複預設和取消按鈕}/** * Create contents of the preference page * @param parent */@Overridepublic Control createContents(Composite parent) {Composite container = new Composite(parent, SWT.NULL);container.setLayout(new GridLayout(2,false)); final Label idLabel = new Label(container, SWT.NONE);idLabel.setText("ID:"); textId = new Text(container, SWT.BORDER);final GridData gd_textId = new GridData(SWT.FILL, SWT.CENTER, true, false);textId.setLayoutData(gd_textId);if(entry != null ){textId.setText(String.valueOf(entry.getId()));}   
return container;} /** * Initialize the preference page */public void init(IWorkbench workbench) { 
}}//當然,視使用方式,不實現IWorkbenchPreferencePage也是可以的。 4.彈出屬性對話方塊public class PropertyAction extends Action {    private TreeViewer treeViewer;    public PropertyAction(TreeViewer treeViewer){     this.treeViewer = treeViewer;     this.setText("屬性");    }            @Override    public void run(){     IStructuredSelection selectNode = (IStructuredSelection) treeViewer.getSelection();     if(selectNode.isEmpty()){     return;     }          ITreeEntry entry = (ITreeEntry) selectNode.getFirstElement();     if(entry==null){     return;     }          PropertyPreferenceDialog ppd = new PropertyPreferenceDialog(treeViewer.getControl().getShell(),entry);     ppd.setSelectedNode("editor");//這個功能倒是蠻好的。可以定位到某一頁,這樣對使用者來說也是很友好的     ppd.open();    }}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.