/*
* Angkor Web Framework
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package com.tirsen.angkor;
import com.tirsen.angkor.RenderContext;
import com.tirsen.angkor.View;
import com.tirsen.angkor.process.Pipeline;
import com.tirsen.angkor.process.ParseValve;
import com.tirsen.angkor.process.RenderPageValve;
import com.tirsen.angkor.widget.Container;
import com.tirsen.angkor.widget.Menu;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
/**
* TODO document Page
* @author $Author: tirsen $
* @version $Revision: 1.1 $
* <BR>
* $Id: Page.java,v 1.1 2002/10/13 19:59:22 tirsen Exp $
public class Page extends Container
{
private Menu menu;
private View mainView;
private Application application;
public Page()
}
public Page(View singleElement)
add(singleElement);
public Menu getMenu()
return menu;
public void setMenu(Menu menu)
// remove the old one
if (this.menu != null)
this.menu.setContainer(null);
this.menu = menu;
menu.setContainer(this);
public View getMainView()
return mainView;
public void setMainView(View view)
if (this.mainView != null)
this.mainView.setContainer(null);
this.mainView = view;
mainView.setContainer(this);
public void render(RenderContext context) throws IOException
context.startTag("HTML");
context.startTag("HEAD");
context.emptyTag("BASE HREF=\"" + context.getRequest().getScheme() + "://" + context.getRequest().getServerName() + ":" + context.getRequest().getServerPort() + context.getRequest().getContextPath() + "/\"");
context.endTag("HEAD");
context.startTag("BODY bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#000000\" alink=\"#000000\" vlink=\"#000000\" leftmargin=\"0\" topmargin=\"0\" marginheight=\"0\" marginwidth=\"0\"");
if (getMenu() != null) getMenu().render(context);
if (getMainView() != null) getMainView().render(context);
renderChildren(context);
context.endTag("BODY");
context.endTag("HTML");
public Pipeline createProcessPipeline()
Pipeline pipeline = getApplication().createBasicPipeline();
pipeline.addValve(new ParseValve());
pipeline.addValve(new RenderPageValve(this));
return pipeline;
public Application getApplication()
return application;
public void setApplication(Application application)
this.application = application;