Eclipse 插件开发:将数据持久化在内存中



我正在开发一个Eclipse插件。它的作用是添加一个打开对话框的菜单选项。非常简单的东西,它正在工作。现在,我需要在打开ConnectDialog之前从内存中检索token的值,并在每次关闭对话框时再次保存。我想它会是这样的:

public class ConnectHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
ConnectDialog connectDialog = new ConnectDialog(window.getShell());
// HERE - get value from memory 
String token = someKindOfEclipseSession.get("my.company.token");   
connectDialog.setToken(token);
connectDialog.open();
token = connectDialog.getToken();
// HERE - save value to memory
someKindOfEclipseSession.put("my.company.token", token);
return null;
}
}

出于安全原因,请务必将值保存到内存中,而不是保存到 XML 文件中。当然,如果用户关闭了 Eclipse,则忘记该值是可以的。

我一直在寻找类似会话的东西,但我不知道我应该寻找什么。你能帮帮我吗?

最简单的方法是使用插件激活器拥有的单例类。

所以在激活器

private MySession session;
public MySession getSession()
{
if (session == null) {
session = new MySession();
}
return session;
}

您可以在处理程序中引用它:

MySession session = Activator.getDefault().getSession();

其中Activator是激活器类,MySession是你编写的用于保存会话数据的类。

最新更新