如何在eclipse

时间:2015-08-10 12:26:43

标签: java eclipse save editor pde

我创建了一个从视图中打开的编辑器。

更具体地说,我创建了一个扩展EditorPart的编辑器类和一个扩展IEditorInput的编辑器输入。我还创建了一个视图,如果双击视图中的元素,编辑器将打开。编辑器只显示一棵树。

一切都运作良好。我需要做的是,在我更改它时保存编辑器的状态,例如当我向树中添加一个treeItem时。

我已经阅读了一些教程,但大多数都解释了如何使用mementos保存视图状态。我是Eclipse开发中的新手,所以请耐心等待:P

1 个答案:

答案 0 :(得分:2)

如果您没有要保存的文件,可以将数据放入插件的“状态位置” - 这是工作区.metadata / .plugins目录中的一个文件夹,您的插件可以根据需要使用

您可以使用以下方式获取州位置:

Bundle bundle = Platform.getBundle("your plugin id");

IPath stateLoc = Platform.getStateLocation(bundle);

注意:有几种方法可以获得Bundle,例如您也可以使用:

Bundle bundle = FrameworkUtil.getBundle(getClass());

返回当前类的包。

您可以使用任何您喜欢的格式保存/恢复文件。你提到Memento格式。写下纪念品:

XMLMemento memento = XMLMemento.createWriteRoot("root");

 ... add your entries

try (Writer writer = new OutputStreamWriter(new FileOutputStream("file name"), StandardCharsets.UTF_8)) 
 {
    memento.save(writer);
 }

用以下内容阅读纪念品:

try (Reader reader = new InputStreamReader(new FileInputStream("file name"), StandardCharsets.UTF_8)) 
 {
   IMemento memento = XMLMemento.createReadRoot(reader);

   ... read the memento contents
 }