我想在选择文本时向任何文本编辑器的上下文菜单提供命令。在“过去的日子”中,我会使用objectContribution和“enablingFor ='+'”嵌套操作完成此操作。如何向Eclipse中的编辑器上下文菜单提供命令
如何使用命令而不是操作执行此操作?
我想在选择文本时向任何文本编辑器的上下文菜单提供命令。在“过去的日子”中,我会使用objectContribution和“enablingFor ='+'”嵌套操作完成此操作。如何向Eclipse中的编辑器上下文菜单提供命令
如何使用命令而不是操作执行此操作?
我了解更多关于在命令表达式中可用的变量,我来到接近辩别出来我自己,但没有成功。然后我在eclipse新闻组上问了一个类似的问题,并被带往正确的方向。这里有一个如何做主要是我一直在寻找一个例子:
<command
commandId="org.marcesher.blogcodeformatter.commands.wikiFormatterCommand"
tooltip="Format And Copy to Clipboard"
id="org.marcesher.blogcodeformatter.popup.wikiFormatterCommand">
<visibleWhen>
<with variable="selection">
<instanceof value="org.eclipse.jface.text.ITextSelection"/>
</with>
</visibleWhen>
如果我再次访问我的答案“Eclipse RCP: Actions VS Commands”,您需要一个命令处理程序。
This thread似乎总结一下你的选择:
一个是一个常见的模式,以实例化视图本身的处理程序,并有处理程序简单地看一下视图的选择和控制自身的启用州。
处理程序API允许它在已启用的更改上触发事件,请参阅org.eclipse.core.commands.AbstractHandler
。另一种是创建一个属性测试器,可以让你的视图选择。
IWorkbenchPart p = page.findViewReference("your.id").getPart(false);
if (p!=null) {
p.getSite().getSelectionProvider().getSelection() ... whatever
}
你的观点将监视其自己的选择更改事件,并呼吁
org.eclipse.ui.services.IEvaluationService.requestEvaluation(String)
(来源here)该属性(这将导致使用该特性的检查所有核心表达式进行重新评估)。
重要的一点是,简单地更改视图不会导致重新评估(并且不会更改启用状态)。您可以将属性测试仪设置为特定于您需要的每个视图,或者创建一个
com.example.views.localSelection
并使用args
指定视图id
。
感谢VonC。所以看看这个,我看不到使用命令vs objectContributions和Actions做这件事的好处。思考? – 2009-08-31 11:55:55
如果'Command' /'handler'没有在许多编辑器/视图中重用,它可能有点矫枉过正,一个'Action'就足够了。 – VonC 2009-08-31 12:05:30