package com.rectang.xsm.pages.cms;
import com.rectang.xsm.AccessControl;
import com.rectang.xsm.pages.XSMPage;
import com.rectang.xsm.pages.Secure;
import org.apache.wicket.*;
/**
* The main CMS pages parent
*
* @author Andrew Williams
* @version $Id: Page.java 831 2011-09-25 12:59:18Z andy $
* @since 2.0
*/
public abstract class Page
extends XSMPage
implements Secure
{
private boolean error = false;
private String pageName;
public Page( PageParameters parameters )
{
super( parameters );
pageName = parameters.getString( "page" );
}
public int getLevel()
{
return AccessControl.MEMBER;
}
public boolean canEdit()
{
return getXSMSession().getUser().isSiteAdmin();
}
public void layout()
{
super.layout();
// verify the page name is specified
String pageName = getPageName();
if ( pageName == null )
{
error( "You must specify a page" );
setResponsePage( com.rectang.xsm.pages.Error.class );
error = true;
return;
}
if ( getXSMPage() == null )
{
error( "Page " + pageName + " does not exist" );
setResponsePage( com.rectang.xsm.pages.Error.class );
error = true;
return;
}
if ( pageName == null )
{
error( "No page selected" );
}
}
protected String getPageName()
{
return pageName;
}
public com.rectang.xsm.site.Page getXSMPage()
{
if ( getPageName() == null )
{
return null;
}
return getXSMSession().getSite().getPage( getPageName() );
}
protected PageParameters getPageNameParams()
{
PageParameters params = new PageParameters();
if ( getPageName() != null )
{
params.add( "page", getPageName() );
}
return params;
}
protected boolean hasError()
{
return error;
}
@Override
public Class<? extends Page> getCMSEditPage()
{
return Edit.class;
}
}