2017-05-11 42 views
0

我正在開發一個Eclipse插件。它所做的是添加一個打開對話框的菜單選項。一些非常簡單的東西,它的工作。現在,我需要從內存中檢索token的值,然後才能打開ConnectDialog,並在每次關閉對話框時再次保存它。我想它會是這樣的:Eclipse插件開發:將數據保存在內存中

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這樣的東西,但我不知道該找什麼。你能幫我嗎?

回答

2

最簡單的事情就是使用你的插件的Activator所擁有的單例類。

所以在激活

private MySession session; 

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

    return session; 
} 

你中引用,在您的處理程序:

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

其中Activator是您激活器類和MySession是你寫的關於舉行本屆會議的一類數據。

+0

它完全奏效。謝謝! – JonDoe297