彈出喜好設定對話方塊並定位至指定頁面

來源:互聯網
上載者:User
某些時候,我們的Action的執行依賴於某些配置已經完好才能運行,即要檢查環境是否已經配置完好。我們可以這樣做:在Action的run中進行判斷,然後將使用者引導至配置頁面進行環境配置。對使用者體驗是非常好的。

public class StartActionDelegate implements IWorkbenchWindowActionDelegate {private IWorkbenchWindow window; public void dispose() {}/* * @see IWorkbenchWindowActionDelegate#init(IWorkbenchWindow) */public void init(IWorkbenchWindow window) {this.window = window;}/* * @see IActionDelegate#run(IAction) */public void run(IAction action) {    //查詢喜好設定是否已經配置了tomcat的home目錄IPreferenceStore pref =TomcatLauncherPlugin.getDefault().getPreferenceStore();String appHome = pref.getString(TOMCAT_PREF_HOME_KEY);    if("".equals(appHome)){//App Home未配置    //將使用者引導至喜好設定配置頁面String pageId = "com.sysdeo.eclipse.tomcat.Page3";PreferenceManager manager = PlatformUI.getWorkbench().getPreferenceManager();Shell parentShell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); PreferenceDialog pd = new PreferenceDialog(shell, manager); pd.setSelectedNode(pageId);//設定選中的頁面 pd.open();/*** 上述代碼可用這一行代替*PreferencesUtil.createPreferenceDialogOn(getShell(), pageId, new String[] { pageId,"com.sysdeo.eclipse.tomcat.Page4"}, null).open();*/return;}else{     //to-do something}  } 

即為點擊StartTomcatAction後,將使用者引導到的了如下喜好設定頁面:

ps:代碼是在tomcatplugin基礎上修改的。

附錄:

如下這樣用也是可以的:

protected boolean showPreferencePage(GenericServerComposite composite) {PreferenceManager manager = PlatformUI.getWorkbench().getPreferenceManager();IPreferenceNode node = manager.find("org.eclipse.jdt.ui.preferences.JavaBasePreferencePage").findSubNode("org.eclipse.jdt.debug.ui.preferences.VMPreferencePage");  //$NON-NLS-1$//$NON-NLS-2$PreferenceManager manager2 = new PreferenceManager();manager2.addToRoot(node);final PreferenceDialog dialog = new PreferenceDialog(composite.getShell(), manager2);final boolean[] result = new boolean[] { false };BusyIndicator.showWhile(composite.getDisplay(), new Runnable() {public void run() {dialog.create();if (dialog.open() == Window.OK)result[0] = true;}});return result[0];}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.