簡體   English   中英

將數據傳遞到新的工作台窗口

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM