Hi folks! In web development, a mashup is a web page or application that combines data or functionality from two or more independent components or sources to create a new view or service.
The term mashup implies easy, fast, snap-on integration. If the mashup sources are from independent applications, integration can be done via open APIs or data sources. However, if the mashup sources are native to the development framework, native interfaces can be used. Mashups are used to allow producing results that extend the original purpose of producing the source component, service or data. The actual ”mashign up” can occur at runtime or at compile time. However, the more flexible it is the moer ”mashup style” it is. One well known example of mashups is Google Maps: the map is an independent source and one can mash-it-up with various labels, pins, position indicators, route indicators, etc. Few mashup articles on the web: * http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29 * http://www.esri.com/software/mapping_for_everyone/api/mashup.html * http://code.google.com/intl/fi-FI/gme/ As a simple example of creating a mashup using wicket, I will use simple web page layout. As sources we will have components such as header, menu, footer, and content. The mashup will be introduced onto a page that aggregates these contents "on-demand". Here goes the example, and ofcourse discussion about the pros and cons of the approach is welcome! In addition to the snipplet posted here, full source code is available at http://code.google.com/p/wicket-mashup/ ::: public class HomePage extends MashupWebPage implements IHeaderContributor { /** */ private static final long serialVersionUID = 1L; public void renderHead(IHeaderResponse headerResponse) { headerResponse.renderString("<style type=\"text/css\"> div.content { margin: 20px; height: 250px; }</style>"); } public HomePage() { add((Panel) new HeaderPanel(GID)); set(1, (Panel) new StyledMenuPanel(GID) { @Override public void setSelectedTabPanelContent(Panel newInstance) { HomePage.this.set(2, newInstance); } }); add((Panel) new FooterPanel(GID)); } } ::: Awaiting for feedback, discussion, and suggestions for improvement, Martin :) --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org