重命名前保存更改



如何将自己的实现添加到 eclipse 资源管理器视图的重命名上下文菜单中。当我单击"重命名"时,我想在重命名项目之前进行一些验证

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

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;
}
}

谢谢

您无需更改菜单的实现即可在重命名期间验证某些内容。

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

参与者代码扩展了org.eclipse.ltk.core.refactoring插件中的org.eclipse.ltk.core.refactoring.participants.RenameParticipant类。

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

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

<extension point="org.eclipse.ltk.core.refactoring.renameParticipants">
  <renameParticipant
         class="org.eclipse.ant.internal.ui.refactoring.LaunchConfigurationBuildfileRenameParticipant"
         name="%AntRenameParticipant.name"
         id="org.eclipse.ant.ui.refactoring.launchConfiguration.buildfileRename"> 
      <enablement>
        <with variable="element">
          <instanceof value="org.eclipse.core.resources.IFile"/>
        </with>
      </enablement>
   </renameParticipant>

最新更新