Eclipse插件开发:将数据保存在内存中

时间:2017-05-11 23:52:19

标签: eclipse eclipse-plugin

我正在开发一个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的东西,但我不知道应该寻找什么。拜托,请你帮我吗?

1 个答案:

答案 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是您编写的用于保存会话数据的类。