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

          IWorkbenchPage workbenchPage = getViewSite().getPage();

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

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

          一般申明為:

           

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

          public class AuditPlugin extends AbstractUIPlugin {



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

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

          在程序中的實例:
          //得到IworkbenchPage對象,找到com.raul.views.ShootViewPart這個視圖,然后執(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();

          }

            }
          );

           

          有的時候,我們需要獲取目標視圖中當前選擇的元素,可以直接這樣做:

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

          這樣就只用知道視圖的id即可,不需要轉(zhuǎn)換該視圖類。
          主站蜘蛛池模板: 卢湾区| 手游| 威信县| 巴林左旗| 河南省| 东乡族自治县| 炉霍县| 武威市| 化德县| 兰州市| 灵丘县| 北碚区| 都安| 科技| 舟曲县| 曲松县| 邢台县| 东乡| 丰宁| 布拖县| 十堰市| 清河县| 类乌齐县| 石首市| 丰宁| 简阳市| 昌乐县| 马鞍山市| 南和县| 措勤县| 平阳县| 五华县| 如皋市| 威信县| 滦平县| 满洲里市| 兴山县| 成都市| 腾冲县| 峨山| 聂拉木县|