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

Reply via email to