如何解决如何打开以编程方式启用编辑的Eclipse比较编辑器?
我正在尝试使用eclipse比较编辑器(org.eclipse.compare)比较两个文件。比较编辑器将打开并显示差异。但是在比较编辑器中未启用任何编辑或合并。首先,我正在准备输入并调用CompareUI.openCompareEditor(input)
。
public class CompareItem implements IStreamContentAccessor,ITypedElement,IModificationDate {
private File content;
private long modifiedDate;
private String fileName;
public CompareItem(File left,long lastModified,String name) {
content = left;
modifiedDate = lastModified;
fileName = name;
}
@Override
public long getModificationDate() {
return modifiedDate;
}
@Override
public String getName() {
return fileName;
}
@Override
public String getType() {
return "JAVA";
}
@Override
public InputStream getContents() {
try {
return new FileInputStream(content);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}
@Override
public Image getImage() {
return null;
}
}
public class CompareInput extends CompareEditorInput {
public CompareInput() {
super(new CompareConfiguration());
}
protected Object prepareInput(IProgressMonitor pm) {
File file1 = new File("D:\\hello.txt");
File file2 = new File("D:\\hello2.txt");
CompareItem ancestor =
new CompareItem(file1,file1.lastModified(),file1.getName());
CompareItem left =
new CompareItem(file1,file1.getName());
CompareItem right =
new CompareItem(file2,file2.lastModified(),file2.getName());
return new DiffNode(Differencer.CHANGE,ancestor,left,right);
}
}
public class SampleHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
CompareInput input = new CompareInput();
CompareConfiguration compareConfiguration = input.getCompareConfiguration();
compareConfiguration.setLeftEditable(true);
compareConfiguration.setRightEditable(true);
CompareUI.openCompareEditor(input);
return null;
}
}
这将打开eclipse比较编辑器,如屏幕快照(compare editor output所示),但是无法在比较编辑器中编辑(不允许添加或删除任何字符)左侧文件或右侧文件。如屏幕截图所示,“复制从左向右更改”和“复制从右向左更改”按钮也被禁用。
如何在此编辑器中启用编辑?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。