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

Eclipse RCP Command的Handler设置不起作用?

网上很多种教程教我们设置Command的Handler从而可以有效的控制Command的使用状态,比如只针对某种类型文件启用Command等。但当我们按教程上一步步试用时,却看不到期望的效果,comm...
  • zhuhuazha
  • zhuhuazha
  • 2011年07月12日 20:06
  • 2329

RCP handler处理函数中获取当前选择项。

目的:在command的处理函数中获取触发当前command时被选中的条目。 方法:使用HandlerUtil工具类获取。 代码示例: public Object execute(Exec...
  • Stpallas
  • Stpallas
  • 2013年09月14日 20:50
  • 1439

Eclipse Commands 指南(一)

本文介绍了使用Eclipse Commands。它描述了如何创建命令,处理程序,添加到菜单命令,弹出窗口,视图和编辑器和表达式的使用限制用户界面的贡献。该快捷键的使用和解释。本文是基于Eclipse ...
  • redshlink
  • redshlink
  • 2010年09月05日 22:25
  • 5824

在Handler中获取用户的选择

在程序设计中,需要在一个视图的Jface中选择一项,然后通过命令打开一个新的视图。需要将选择项作为参数传递到命令的handler,以决定需要打开哪一个视图。 需要将Jface想公共的管理平台注册...
  • andaredu
  • andaredu
  • 2013年12月08日 00:06
  • 270

RCP插件开发

com.teamcenter.rac.aifrcpteamcenter基础客户化插件,一些主要的借口以及抽象类,入口类等都在改插件中进行了定义AbstractAIFApplication Abstra...
  • AINewBegin
  • AINewBegin
  • 2016年12月30日 13:09
  • 975

Eclipse插件开发(RCP)中IResource重命名方法

最近开发时不想用Eclipse中CNF配置的refector中的rename的action,主要是因为那个重命名框不好自定义; 于是自己动手写了一个重命名的对话框,关键是如何重命名一个IProjec...
  • sidihuo
  • sidihuo
  • 2017年07月12日 10:04
  • 238

rcp(插件开发)如何打开编辑器、视图、透视图

如下: IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); 1.打开编辑器 windo...
  • soszou
  • soszou
  • 2012年08月24日 16:45
  • 3645

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

SWT与JFace关系      SWT是eclipse公司发布的一个GUI编程框架,即是说,这个是最基本的开发工具。  JFace是对SWT的一个封装,它丰富、优化了SWT的功能。  R...
  • dafeng5455
  • dafeng5455
  • 2016年03月22日 12:00
  • 620

Eclipse4.x插件开发实践01-插件开发起步

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。虽然大多数用户将 Eclipse 用作 Java 集成开发环境(IDE),但Eclipse 还包括插件开发环境(Plug-inDeve...
  • markcxz
  • markcxz
  • 2014年07月17日 17:10
  • 2925
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:rcp(插件开发)Command 传值的问题
举报原因:
原因补充:

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