Netbeans 平台在编辑器的操作扩展中获取文件路径
Netbeans Platform Getting File Path in Editor's Action Extension
我创建了一个 HTML 编辑器的操作,并按照教程 here
将其添加到菜单上下文中
现在我有以下内容:
public final class PreviewAction implements ActionListener {
private final EditorCookie context;
public PreviewAction(EditorCookie context) {
this.context = context;
}
@Override
public void actionPerformed(ActionEvent ev) {
}
操作为我提供了一个 EditorCookie
但在做了一些 research 之后我发现它不会给我文件路径信息,我应该通过 DataObject
我在其他地方有一个双击操作,可以在编辑器中打开 HTML 文件,如下所示:
DataObject.find(FileUtil.toFileObject(filePath)).getLookup().lookup(OpenCookie.class).open();
那么我是否可以在我的编辑器操作中访问文件路径?
或者可能将 Editor 的 DataObject 传递给 Action 而不是 EditorCookie?
或者编辑器的 Cookie 和 DataObject 之间是否存在某种 "linking"?
感谢任何帮助,提前致谢。
宾果!
我通过与 Current Activated TopComponent 关联的 Lookup 得到它,如下所示:
TopComponent activeTC = TopComponent.getRegistry().getActivated();
DataObject dataLookup = activeTC.getLookup().lookup(DataObject.class);
String filePath = FileUtil.toFile(dataLookup.getPrimaryFile()).getAbsolutePath();
我创建了一个 HTML 编辑器的操作,并按照教程 here
将其添加到菜单上下文中现在我有以下内容:
public final class PreviewAction implements ActionListener {
private final EditorCookie context;
public PreviewAction(EditorCookie context) {
this.context = context;
}
@Override
public void actionPerformed(ActionEvent ev) {
}
操作为我提供了一个 EditorCookie
但在做了一些 research 之后我发现它不会给我文件路径信息,我应该通过 DataObject
我在其他地方有一个双击操作,可以在编辑器中打开 HTML 文件,如下所示:
DataObject.find(FileUtil.toFileObject(filePath)).getLookup().lookup(OpenCookie.class).open();
那么我是否可以在我的编辑器操作中访问文件路径?
或者可能将 Editor 的 DataObject 传递给 Action 而不是 EditorCookie?
或者编辑器的 Cookie 和 DataObject 之间是否存在某种 "linking"?
感谢任何帮助,提前致谢。
宾果!
我通过与 Current Activated TopComponent 关联的 Lookup 得到它,如下所示:
TopComponent activeTC = TopComponent.getRegistry().getActivated();
DataObject dataLookup = activeTC.getLookup().lookup(DataObject.class);
String filePath = FileUtil.toFile(dataLookup.getPrimaryFile()).getAbsolutePath();