gpt4 book ai didi

java - ECLIPSE E4 - 保存工作区状态

转载 作者:太空宇宙 更新时间:2023-11-04 06:19:55 25 4
gpt4 key购买 nike

嘿,大家好,我想处理持久数据,以便在退出之前保存我的应用程序状态。为了尝试一下,我在 MPART 中创建了一个可脏对象,然后添加了一个链接到菜单条目的保存处理程序。

这是:MPART:

txtInput.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
dirty.setDirty(true);
}
});

处理程序:

@Execute
public void execute(EPartService partService) {
partService.saveAll(false);
}

最后,我还从运行配置中删除了 -clearpersistedstate 参数,但每次启动应用程序时,它不会保存 MPART 内部的更改,而只会在透视级别进行更改,例如:如果 MPART 在以下执行中已关闭,它将保持关闭状态。

有什么提示吗?

最佳答案

EPartService.saveAll 仅调用部件中用 @Persist 注解的任何方法。无论如何,当工作区关闭时,这将自动完成。

注意:该部分必须标记为脏才能调用 @Persist 方法。

因此,要保存您的部分中的任何详细信息,您需要一个方法:

@Persist
void save()
{
... save your data somewhere
}

再次创建零件时,您必须从保存的数据加载数据。

保存数据的一个位置是 MPart 持久状态 - 通过以下方式访问:

Map<String, String> persistedState = part.getPersistedState();

您可以在此映射中保存字符串值。

所以:

@Persist
void save(MPart part)
{
Map<String, String> persistedState = part.getPersistedState();

persistedState.put("key for my value", "my value");
}

并通过以下方式检索它:

@PostConstruct
void createPart(MPart part)
{
Map<String, String> persistedState = part.getPersistedState();

String myValue = persistedState.get("key for my value");
}

关于java - ECLIPSE E4 - 保存工作区状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27528375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com