Are you sure that you replace the old “page” extending VerticalLayout with the new constructed one properly in the containing layout? Is it the root layout of the main window?
The terminology “page” and “refresh” sound a bit confusing here. As far as I understood, you have
view that displays some data record and then you change the view to display some other record.
Simply creating an object does not automatically assign it or otherwise put it in anywhere. This also applies to creating an object of the same class from within it; you can not “recreate” objects in Java.
It sounds a bit suspicious that you have a composite component called “Refresh”, which has some UI components and which refreshes itself, and you also have a “page” concept in your application. Such concepts are associated with the web page metaphor, which is common with traditional web applications, but not with Vaadin/AJAX. I don’t know what your application architecture is like, but I hope that it hasn’t any conceptual problems.