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
  • 7074

Chrome插件开发学习心得(三)之传值

上面主要介绍了mainfest.json文件,其中有两个对象,browser_action中的default_popup和background这两个html文件,这两个都可以写逻辑,这里有什么区别。 ...

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
  • 1818

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

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

rcp(插件开发)org.eclipse.ui.propertyPages 扩展点使用

org.eclipse.ui.propertyPages 是为我们的资源文件添加属性页, 在eclipse中的操作为,单击资源右键>Properties>弹出的dialog中的节点页面。 在实际的...
  • soszou
  • soszou
  • 2012-08-06 00:07
  • 2493

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

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

Eclipse RCP 插件开发中经常调用的几个方法

原文:http://blog.chinaunix.net/uid-200142-id-4607484.html 在插件中访问StatusLine WorkbenchWindow...

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

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

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

这个方法挺好的,在大家为未知视图渴望的时候,可以通过此方法实现对视图ID的获取, 进而可以定位插件。 具体如下: import org.eclipse.swt.widgets.Composite...
  • soszou
  • soszou
  • 2012-09-19 17:46
  • 2254

rcp(插件开发)部分开发技巧

1.实现窗口的透明功能   通过函数Shell.setAlpha(int alpha)设置窗口的透明度,alpha取值0到255,0为全透明。透明窗口的实现需要所在系统的支持,在不支持的系统下se...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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