我正在開發一個使用Vaadin框架的應用程序。應用程序有一個主菜單,當用戶點擊菜單項,申請執行AbstractMenuCommand類的後代像Vaadin多個瀏覽器窗口/標籤
public class RunReportCommand extends AbstractMenuAction {
@Override
public void execute() throws MenuException {
Window = .... // create window here
openWindow(window);
}
protected void openWindow(Window window) {
application.getMainWindow().open(new ExternalResource(window.getURL()));
application.setMainWindow(window);
}
}
在此之後主瀏覽器窗口內容與所需的窗口代替。花費了大量的時間後,我來到了這個解決辦法:如果你想更換瀏覽器窗口中的內容與Vaadin窗口,你應該總是做
application.getMainWindow().open(new ExternalResource(window.getURL()));
application.setMainWindow(window);
最近我有一個新的任務,一個功能添加到應用程序:用戶應具備的能力在不同的選項卡中打開窗口,所以問題是我只有一個主窗口在vaadin(和window.open只適用於主窗口),但用戶可以在diffirent瀏覽器選項卡中有很多diffirent窗口,所以如果用戶單擊瀏覽器選項卡中的菜單項不包含主窗口,重新加載無效窗口內容將不起作用。