Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重命名前保存更改_Java_Eclipse_Eclipse Rcp_Rcp - Fatal编程技术网

Java 重命名前保存更改

Java 重命名前保存更改,java,eclipse,eclipse-rcp,rcp,Java,Eclipse,Eclipse Rcp,Rcp,如何添加自己的实现来重命名EclipseExplorer视图的上下文菜单。当我点击Rename时,我想在重命名项目之前进行一些验证 <extension point="org.eclipse.ltk.core.refactoring.renameParticipants"> <renameParticipant class="core.ui.project.RenameProject" id="core.ui.renamePar

如何添加自己的实现来重命名EclipseExplorer视图的上下文菜单。当我点击Rename时,我想在重命名项目之前进行一些验证

  <extension
     point="org.eclipse.ltk.core.refactoring.renameParticipants">
  <renameParticipant
        class="core.ui.project.RenameProject"
        id="core.ui.renameParticipant"
        name="Rename">
  </renameParticipant>

谢谢

在重命名过程中,您无需更改菜单的实现来验证某些内容

而是使用
org.eclipse.ltk.core.refactoring.renameParticipants
扩展点来定义一个“重命名参与者”,该参与者将在重命名操作期间被调用。参与者可以检查重命名是否有效,并在重命名过程中添加要完成的其他工作

参与者代码扩展了
org.eclipse.ltk.core.refactoring.participant
类,该类位于
org.eclipse.ltk.core.refactoring
插件中

还有用于创建、复制、移动和删除的参与者

从Ant插件重命名文件的示例参与者:



当我尝试重命名项目时,我发现一个资源不同步的错误,如何在重命名项目之前确保其同步?您能否提供一些代码来了解如何使用重命名参与者Eclipse帮助中有很多关于参与者的信息。我没有任何例子。资源不同步是一个单独的问题。我不需要实现IResourceChangeListener吗?从菜单进行重命名将直接调用重命名参与者,它不需要任何侦听器
public class RenameProject extends RenameParticipant {

@Override
protected boolean initialize(Object element) {
    System.out.println("HERE");
    return false;
}

@Override
public String getName() {
    System.out.println("HERE");
    return null;
}

@Override
public RefactoringStatus checkConditions(IProgressMonitor pm, CheckConditionsContext context)
        throws OperationCanceledException {
    System.out.println("HERE");
    return null;
}

@Override
public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {
    System.out.println("HERE");
    return null;
}

}