navigator7 Excel download override PageInvocation?

I found navigator7 and thought it was with the most elaborate multi-browser tab support and abandonted overriding getWindow() implementation (b/c users complain about the URL re-written).

I am in the process of refactoring my excel download. I have a “download excel” button (link) in a table in a nested Tabbed Page. The app instantiated new Page instance b/c I needed to encode for excel download. The steps are like:
excelBtn.addListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
try {
urlString.addParam(RequestType.EXCEL.value, tableName);

// appLevelWindow.getNavigator().setUriParams(urlString.getParams());
appLevelWindow.getNavigator().navigateTo(NestedTabPage.class, urlString.getParams());
} catch (Exception e) {
e.printStackTrace();
}
}
});
The even is handled by paramChanged(NavigationEvent navigationEvent) {
if (StringUtils.isNotBlank(excelTable)) {
appLevelWindow.open(this.determineDownloadExcel(), “_new”,30, 60, Link.TARGET_BORDER_NONE);
}
}

determineDownloadExcel() returns a StreamResource object, converted from a Table in-memory.

I am wishing to process excel download ( I don’t think it’s possible unless I override the ParamChangeListenerInterceptor.intercept() method?) without triggering paramChanged() because 1) I already have a Table and its-backed DataSource and don’t wish to write another method to replicate the same process; 2) I don’t wish to
re-instantiate the Page that process the original requests that rendered the original TabbedView page (heavy DB operation).

Can someone provide me with steps to handle that, please?

I read thru the code and implemented my own ParamInjectInterceptor() to basically overlook the excel download param…of course that means " pageInvocation.invoke()" won’t be called, no new Page instance will be instantiated; the same as if I did
a “appLevelWindow.getNavigator().setUriParams(urlString.getParams());”

I read other navigator7 posts and I guess I will like to have something like annotated @Page(reuse=true) implementation so I can have that page state persisted…It’s a pity, and as it stands right now I don’t think I have a choice but to instantiate another Page(TabbedViewPage) with no state persisted. Sigh. :frowning:

Please correct me if I am wrong, I’d be delighted if I am!
Amber