rcp(插件开发)Command 传值的问题

原创 2013年12月04日 17:25:23

有这样一个需求:如果想在command执行的时候携带一些信息,然后还想获取这些信息 这个如何实现呢?

 

一 传值部分(传递的是ExecutionEvent,通过ExecutionEvent携带的ApplicationContext传递对象,还可以传递别的类型如MAP)

//获取ICommandService

ICommandService commandService = (ICommandService) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart().getSite().getService(ICommandService.class);

//调用Command并传递对象

commandService.getCommand("CommandId").executeWithChecks(new ExecutionEvent(null, Collections.EMPTY_MAP, null, sendObject));

 

二 取值部分 这个是在command相关联的handler里取到这个ExecutionEvent,ExecutionEvent里携带相关传入的信息。

package command_test.handlers;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.handlers.HandlerUtil;
import org.eclipse.jface.dialogs.MessageDialog;

/**
 * Our sample handler extends AbstractHandler, an IHandler base class.
 * @see org.eclipse.core.commands.IHandler
 * @see org.eclipse.core.commands.AbstractHandler
 */
public class SampleHandler extends AbstractHandler {
 /**
  * The constructor.
  */
 public SampleHandler() {
 }

 /**
  * the command has been executed, so extract extract the needed information
  * from the application context.
  */
 public Object execute(ExecutionEvent event) throws ExecutionException {
  IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
  MessageDialog.openInformation(
    window.getShell(),
    "Command_Test",
    "Hello, Eclipse world");
  return null;
 }
}

rcp(插件开发)深入理解菜单(Menu)功能及其扩展点

简介: 菜单是各种软件及开发平台会提供的必备功能,Eclipse 也不例外,提供了丰富的菜单,包括主菜单(Main Menu),视图 / 编辑器菜单(ViewPart/Editor Menu)和上下文...
  • soszou
  • soszou
  • 2012年11月13日 17:21
  • 7452

rcp(插件开发)资源管理四

eclipse资源监听 1.资源监听必须实现IResourceChangeListener接口 Java代码 IWorkspace workspace = Reso...
  • soszou
  • soszou
  • 2012年09月28日 22:14
  • 1635

rcp(插件开发)Eclipse Jobs and Background Processing

1. Prerequisites for this tutorial This tutorial assumes what you have basic understanding o...
  • soszou
  • soszou
  • 2012年10月01日 18:44
  • 1882

rcp(插件开发)添加帮助系统

原文地址:http://blog.csdn.net/moneyice/article/details/715795         一款软件,如果希望用户能够快速的上手,完善的帮助系统必不可少。帮助...
  • soszou
  • soszou
  • 2012年11月14日 14:43
  • 1639

rcp(插件开发)程序发布到不同的平台

问题:在64位windows开发构建的RCP程序Release,无法在32位windows机子上运行,提示就是“此文件的版本与正在运行的Windows版本不兼容。请检查计算机的系统信息以了解需要x86...
  • soszou
  • soszou
  • 2012年10月09日 17:29
  • 2671

rcp(插件开发)获取Plugin/Bundle中文件资源的绝对路径

本文先对Eclipse Plugin和Bundle进行分析,之后讲解了如何使用Eclipse API通过这些资源的相对路径(相对于Plugin/Bundle)获取这些资源的绝对路径的方法,最后总结了 ...

rcp(插件开发)获取Plugin/Bundle中文件资源的绝对路径

本文先对Eclipse Plugin和Bundle进行分析,之后讲解了如何使用Eclipse API通过这些资源的相对路径(相对于Plugin/Bundle)获取这些资源的绝对路径的方法,最后总结了 ...
  • soszou
  • soszou
  • 2012年09月30日 20:36
  • 3849

rcp(插件开发)资源管理三

关于marker的使用 描述:在eclipse中marker是用来代码级别的各种状态信息的一个框架,使用marker可以轻松的浏览和定位文件中的错误或其他的一些信息。 1.定义marker,在ec...

什么是swing/SWT与/JFace/RCP/插件开发

SWT与JFace关系      SWT是eclipse公司发布的一个GUI编程框架,即是说,这个是最基本的开发工具。  JFace是对SWT的一个封装,它丰富、优化了SWT的功能。  R...

rcp(插件开发)通过代码获取当前选择的视图ID

这个方法挺好的,在大家为未知视图渴望的时候,可以通过此方法实现对视图ID的获取, 进而可以定位插件。 具体如下: import org.eclipse.swt.widgets.Composite...
  • soszou
  • soszou
  • 2012年09月19日 17:46
  • 2316
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:rcp(插件开发)Command 传值的问题
举报原因:
原因补充:

(最多只允许输入30个字)