[英]Passing data to new workbench window
我正在使用打開一個新的工作台窗口
WindowInput windowInput = new WindowInput();
PlatformUI.getWorkbench().openWorkbenchWindow(perspective_id, windowInput);
下面是我的WindowInput
類:
public class WindowInput implements IAdaptable {
@Override
public Object getAdapter(Class adapter) {
System.err.println("inside getAdapter");
if (adapter == java.util.HashMap.class) {
HashMap<String, List<String>> fieldsMap = new HashMap<>();
fieldsMap.put("key1",getRecordsString());
fieldsMap.put("key2",getRecordsString());
return fieldsMap;
}
return null;
}
}
現在,當我嘗試使用以下命令在新打開的工作台窗口中獲取地圖時
HashMap<String,List<String>> fieldsMap = PlatformUI.getWorkbench().getAdapter(HashMap.class);
fieldsMap仍然為null。 我什至看不到“ System.err.println(” in getAdapter“);” 在控制台上打印某些內容,但未調用“ getAdapter”。
有人可以幫我嗎
基本上,我試圖在兩個工作台窗口之間傳遞數據。
提前致謝 !
您的代碼正在向IWorkbench
對象詢問HashMap
但這不是傳遞給openWorkbenchWindow
的對象結束的地方。
openWorkbenchWindow
的輸入傳遞到新的IWorkbenchWindow
。 依次將輸入傳遞到窗口中的IWorkbenchPage
對象。
如果您的代碼在新工作台窗口的工作台頁面的視圖部分中,則可以使用以下命令獲取輸入:
IWorkbenchPage page = getPage();
// The page input should be your WindowInput
IAdaptable adaptable = page.getInput();
HashMap<String,List<String>> fieldsMap = adaptable.getAdapter(HashMap.class);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.