我正在开发一个插件,它基本上是创建一个新项目,项目包含多个文件夹,该文件夹包含我们自己的自定义编辑器。现在我不想让用户从任何地方重命名项目。我可以在文件菜单,项目浏览器的上下文菜单,包浏览器的上下文菜单,导航器的上下文菜单中看到重命名选项。是否可以全局禁用/自定义重命名选项。我试图使用全局动作处理程序来重命名动作,这在重命名动作发生时基本上是我自己的工作。但是因为我想在插件激活器开始时阻止/禁用重命名选项,我能够在激活器类上获得活动视图站点,这似乎对我没有帮助,因为活动视图可能比上面提到的观点有时候。因此,我尝试通过ltk的renameparticipant扩展使用'Rename Participant',我编写了自己的类,扩展了RenameParticipant,但是即使我在plug-in.xml文件中给出了正确的类名,该类也永远不会被启动。
由于我们的产品是插件
有人可以告诉我,我该怎么办?我希望有人已经走在这条路上,以阻止全局重命名选项。
答案 0 :(得分:3)
您可以指定自己的处理程序以进行全局重命名( id =“org.eclipse.ui.edit.rename”)和Java重命名元素( id =“org.eclipse.jdt使用Handlers
扩展点的.ui.edit.text.java.rename.element“)命令。但是,无法在Package Explorer中禁用上下文菜单项(Refactor> Rename ...),因为它是硬编码的。
答案 1 :(得分:2)
我使用该类
从上下文菜单中删除了public class MoveActionProvider extends RefactorActionProvider {
//@Override
public void fillContextMenu(IMenuManager menu) {}
}
并将其声明为plugin.xml
<extension point="org.eclipse.ui.navigator.navigatorContent">
<actionProvider
class="com.totvs.tds.ordinechaos.providers.action.MoveActionProvider"
id="com.totvs.tds.ordinechaos.providers.action.MoveActionExtension"
overrides="org.eclipse.ui.navigator.resources.actions.RefactorActions"
priority="highest">
<enablement>
<!-- A hack to allways be enabled -->
<not>
<systemTest
property="MyApp"
value="WONT-EVER-BE-SET">
</systemTest>
</not>
</enablement>
</actionProvider>
</extension>