blog220123.Eclipse ui之command, handler, menu, 和binding的extPoints

blog220123.Eclipse ui之command, handler, menu, 和binding的extPoints,第1张

blog220123.Eclipse ui之command, handler, menu, 和binding的extPoints

blog220123.Eclipse ui之command, handler, menu, 和binding的extPoints

Commands, extP="org.eclipse.ui.commands"Handlers, extP="org.eclipse.ui.handlers",Bindings, extP="org.eclipse.ui.bindings"Menus, extP="org.eclipse.ui.menus"

本文以eclipse 4.20为参考.

使用extension points是实现软件menu, toolbar, 和key binding相关功能的主要办法. 相对于代码编程而言, 有易配置, 逻辑清晰易维护的优点.

Commands, extP=“org.eclipse.ui.commands”

用于添加category, command.
复杂的command还可以使用commandParameter, 需要定义commandParameterType.
commandParameterType/converter需要继承org.eclipse.core.commands.AbstractParameterValueConverter.
command在没有绑定handler时是disabled.

一个例子,


  
  
  
  
  
  
  
	 
	 
  
  
  

Handlers, extP=“org.eclipse.ui.handlers”,

handler定义的是command被激发时要执行的动作. 用于绑定command和handler, 前者指定command id, 后者指定handler class.
handlerClass要实现org.eclipse.core.commands.IHandler, 通常继承org.eclipse.core.commands.AbstractHandler.
除此, 考虑动态情形, 可以指定activeWhen和enableWhen.

一个例子


  
  
  
	 
		
		   
		   
		
	 
  

Bindings, extP=“org.eclipse.ui.bindings”

设定key bindings, 包括keyScheme和keyBinding.
对于keyScheme, 可以在Window > Preference > General > Keys > scheme中选择使用.
需要注意, keyScheme可以有parent scheme.

一个例子,


  
  

  
  
  
		
		
  

Menus, extP=“org.eclipse.ui.menus”

用于设定main menu/toolbar, view menu/view, view dropdown menu, conext menu和trim.

menuContribution/locationURI用于指定出现的位置.
允许实现动态的menu list, 其class需继承ContributionItem.

一个例子


  
	 
		
		
		
		
		
		
	 
	 
	 
	 
		
		
		
		
		
		
	 
	 
		
		
	 
  
  
	 
		
		
		
		
	 
	 
	 
  

驽马一架 一花一世界 2022/1/23

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5712856.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存