class ApplicationLayout extends VerticalLayout implements ViewDisplay {

    @Override
    public void showView(View view) {
        if (view instanceof Component) {
            setMainArea((Component)view);
        } else {
            throw new IllegalArgumentException(
                    "View is not a component: " + view);
        }
    }

    public  ApplicationLayout(ApplicationHeader header, @CheckForNull ApplicationFooter footer);

}