我正在开发一个Eclipse插件。它的作用是添加一个打开对话框的菜单选项。非常简单的东西,它的工作原理。现在,我需要在打开token
之前从内存中检索ConnectDialog
的值,并在每次关闭对话框时再次保存它。我想它会是这样的:
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,那么可以忘记该值。
我正在寻找类似Session的东西,但我不知道应该寻找什么。拜托,请你帮我吗?
答案 0 :(得分:2)
最简单的方法是使用插件的Activator拥有的单例类。
所以在Activator中
private MySession session;
public MySession getSession()
{
if (session == null) {
session = new MySession();
}
return session;
}
您可以在处理程序中使用以下内容引用它:
MySession session = Activator.getDefault().getSession();
其中Activator
是您的激活类,MySession
是您编写的用于保存会话数据的类。