posts - 20, comments - 16, trackbacks - 0, articles - 0
          在RCP編程時(shí),我們經(jīng)常要取得IWorkbenchPage,如果是從視圖中得到,可以用下面的方法:

          IWorkbenchPage workbenchPage = getViewSite().getPage();

          有時(shí)不是從視圖,而是要從外部取得IWorkbenchPage,例如從菜單或者工具欄等,這時(shí),可以使用下面的方法:
          IWorkbenchPage workbenchPage = Plugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();

          其中的Plugin是你的RCP最初建立時(shí)一般由Eclipse生成的,其父類為AbstractUIPlugin,當(dāng)然,你也可以自己寫。

          一般申明為:

           

          /**
           * The activator class controls the plug-in life cycle
           
          */

          public class AuditPlugin extends AbstractUIPlugin {



          還有一種方法也可以得到:

          IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();

          在程序中的實(shí)例:
          //得到IworkbenchPage對(duì)象,找到com.raul.views.ShootViewPart這個(gè)視圖,然后執(zhí)行視圖里面的射門方法

          update.addSelectionListener(
          new SelectionAdapter() {
             
          public void widgetSelected(SelectionEvent e) {
              IWorkbenchPage workbenchPage 
          = Activator.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();
              ShootViewPart shootView 
          = (ShootViewPart) workbenchPage.findView("com.raul.views.ShootViewPart");
              shootView.shoot();

          }

            }
          );

           

          有的時(shí)候,我們需要獲取目標(biāo)視圖中當(dāng)前選擇的元素,可以直接這樣做:

          IViewPart viewPart = AuditPlugin.getDefault().getWorkbench()
              .getActiveWorkbenchWindow().getActivePage().findView(
          "org.eclipse.ui.navigator.ProjectExplorer");
          StructuredSelection sl 
          = (StructuredSelection) viewPart.getSite().getSelectionProvider().getSelection();
          Object obj 
          = sl.getFirstElement();
          //然后對(duì)obj進(jìn)行各種操作

          這樣就只用知道視圖的id即可,不需要轉(zhuǎn)換該視圖類。
          主站蜘蛛池模板: 兴和县| 青田县| 嘉善县| 金溪县| 乌鲁木齐县| 阿勒泰市| 江孜县| 海阳市| 商洛市| 定远县| 漠河县| 德化县| 遂川县| 临沂市| 万宁市| 南雄市| 南华县| 东兴市| 盐亭县| 高平市| 宜川县| 安仁县| 拜泉县| 三都| 凤凰县| 安图县| 拉萨市| 四子王旗| 富源县| 民权县| 屏东县| 将乐县| 临夏县| 泗水县| 崇文区| 句容市| 湖口县| 衡阳市| 英吉沙县| 潜山县| 临清市|