以编程方式在 Eclipse PDE 视图中打开编辑器
Open Editor in an Eclipse PDE View programmatically
我正在创建一个带有名为 DataView 的视图的 eclipse 插件。我希望 Java 十六进制编辑器在我创建的 DataView 中打开。我遵循了 this vogella post,其中指出 getViewSite().getPage() 会强制编辑器在 DataView 中打开。但是,当我测试代码时,DataView 与编辑器分开打开。注:我按公司要求使用Java8。
有什么方法可以解决这个问题吗? 我在下面附上了我的代码和当前输出:
@Override
public void createPartControl(Composite parent) {
Text text = new Text(parent, SWT.WRAP | SWT.READ_ONLY | SWT.V_SCROLL | SWT.H_SCROLL);
Font font = new Font(text.getDisplay(), new FontData("Courier", 12 , SWT.NONE));
text.setFont(font);
File file = FileData.getDataFile();
URI fileURI = file.toURI();
//String workspacePath = ResourcesPlugin.getWorkspace().getRoot().getLocation().toString();
IFileStore fileStore = EFS.getLocalFileSystem().getStore(fileURI);
if (!fileStore.fetchInfo().isDirectory() && fileStore.fetchInfo().exists()) {
IWorkbenchPage page = getViewSite().getPage();
try {
IDE.openEditor(page, fileURI, "net.sourceforge.javahexeditor", true);
} catch (PartInitException e) {
}
}
}
link并没有说编辑器会在视图中打开,它只是告诉你如何从视图中打开编辑器。编辑器始终在编辑器区域单独打开。
视图中不能有编辑器。您可以在视图中使用核心编辑器 类,例如 TextViewer
和 SourceViewer
,但这意味着您不能重用现有编辑器中的代码,除非它被设计为允许这样做。
我正在创建一个带有名为 DataView 的视图的 eclipse 插件。我希望 Java 十六进制编辑器在我创建的 DataView 中打开。我遵循了 this vogella post,其中指出 getViewSite().getPage() 会强制编辑器在 DataView 中打开。但是,当我测试代码时,DataView 与编辑器分开打开。注:我按公司要求使用Java8。
有什么方法可以解决这个问题吗? 我在下面附上了我的代码和当前输出:
@Override
public void createPartControl(Composite parent) {
Text text = new Text(parent, SWT.WRAP | SWT.READ_ONLY | SWT.V_SCROLL | SWT.H_SCROLL);
Font font = new Font(text.getDisplay(), new FontData("Courier", 12 , SWT.NONE));
text.setFont(font);
File file = FileData.getDataFile();
URI fileURI = file.toURI();
//String workspacePath = ResourcesPlugin.getWorkspace().getRoot().getLocation().toString();
IFileStore fileStore = EFS.getLocalFileSystem().getStore(fileURI);
if (!fileStore.fetchInfo().isDirectory() && fileStore.fetchInfo().exists()) {
IWorkbenchPage page = getViewSite().getPage();
try {
IDE.openEditor(page, fileURI, "net.sourceforge.javahexeditor", true);
} catch (PartInitException e) {
}
}
}
link并没有说编辑器会在视图中打开,它只是告诉你如何从视图中打开编辑器。编辑器始终在编辑器区域单独打开。
视图中不能有编辑器。您可以在视图中使用核心编辑器 类,例如 TextViewer
和 SourceViewer
,但这意味着您不能重用现有编辑器中的代码,除非它被设计为允许这样做。