Actually the data loss can only happen when the cross component navigation is initiated. For example you change the product description and click other work center:
The implementation of data loss is:
(1) Your click will trigger a cross component navigation. The navigation queue will be processed by UI framework:
(2) The UI framework will delegate call to our class. Here we evaluate if data loss logic should be really triggered. If yes, register ourselves as data loss handler.
In line 60, just set the data loss flag to true, which will be evaluated in step3.
(3) UI framework will evaluate if data loss dialog should be displayed.
Here we can also found the registered data loss handler in step2.
(4) Data loss dialog is displayed, clicking any button will trigger PROCESS_DATALOSS where Yes, No and Cancel button will be handled accordingly.
Since the navigation inside the same overview page will not trigger the method in step1, data loss logic will not be executed.