Fork me on GitHub

GWT + mvp4g Layouting Demo

[ EN - RU ]

Short summary

This library extends mvp4g framework with support of portlets, layouts and data loading states Written by shaman.sir.


mvp4g logo

Mvp4g framework helps in writing applications which has not a lot of significant changes happening in the inner page section or just with a central part that is /instantly/ replaced with a new content. I can’t say that it is a limitation of the framework — this situation may change in near future or may be not required for a lot of users — however, for the moment, this fact takes place.

For some moment, in our project we have faced with critical mass of pages with evidently very similar widget placing positions. So we, together with Vitaly Gashock (who introduced this framework to me) and Sergey Dyniovsky (a markup master, who had really taken a GWT widgets into account), made a decision to generalize and structurize these things. There is how the layout set with the names of artists was born, the existing pages were distributed with these layouts, and we started to refactor (this action lead us to a few new bugs, of course, but instead we’ve got rid of kludges we hated so much). More of this, we were happy to remove some widgets with a very similar realization, in past we were required to make them because of their different behaviour between the pages. A quintessence of this refactoring, completely separated from project logic and those freaky bugs inherited from the project itself, is described in this article and is shown with this example.

Downloads and Source Code

Source code of the library is located at github: You can download it as a jar file there in Downloads section. Or just click this link. To use it in project you’ll also need to have the compatible version of mvp4g and gwt-log in build path.

What else?

This demo source code is also located at github:

In the executable and clickable state (in action, you say) you can check it out at GAE: Is is a technical example, so there is an absence of design.

Documentation is located at github:

More details?

Something more?