org.apache.turbine.modules.screens
Class TemplateScreen

java.lang.Object
  extended byorg.apache.turbine.modules.Assembler
      extended byorg.apache.turbine.modules.Screen
          extended byorg.apache.turbine.modules.screens.TemplateScreen
Direct Known Subclasses:
BaseJspScreen, VelocityScreen

public abstract class TemplateScreen
extends Screen

Template Screen. Base Template Screens should extend this class and override the buildTemplate() method. Users of the particular service can then override the doBuildTemplate() for any specific pre-processing. You can also override the doBuild() method in order to add extra functionality to your system, but you need to make sure to at least duplicate the existing functionality in order for things to work. Look at the code for the doBuild() method to get an idea of what is going on there (it is quite simple really).

Version:
$Id: TemplateScreen.java 534527 2007-05-02 16:10:59Z tv $
Author:
Dave Bryson, Henning P. Schmiedehausen

Field Summary
protected  org.apache.commons.logging.Log log
          Logging
 
Constructor Summary
TemplateScreen()
           
 
Method Summary
abstract  org.apache.ecs.ConcreteElement buildTemplate(RunData data)
          This method should be implemented by Base template classes.
protected  org.apache.ecs.ConcreteElement doBuild(RunData data)
          This method is called by the Screenloader to construct the Screen.
protected abstract  void doBuildTemplate(RunData data)
          This method should be overidden by subclasses that wish to add specific business logic.
protected  void doPostBuildTemplate(RunData data)
          This method can be overridden to write code that executes when the template has been built (called from a finally clause, so executes regardless of whether an exception is thrown or not)
 void doRedirect(RunData data, java.lang.String template)
          You can call this within a Screen to cause an internal redirect to happen.
 void doRedirect(RunData data, java.lang.String screen, java.lang.String template)
          You can call this within a Screen to cause an internal redirect to happen.
static void setTemplate(RunData data, java.lang.String template)
          This method is used when you want to short circuit a Screen and change the template that will be executed next.
 
Methods inherited from class org.apache.turbine.modules.Screen
build, getLayout, prepareText, prepareTextMinimum, setLayout
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected org.apache.commons.logging.Log log
Logging

Constructor Detail

TemplateScreen

public TemplateScreen()
Method Detail

doBuildTemplate

protected abstract void doBuildTemplate(RunData data)
                                 throws java.lang.Exception
This method should be overidden by subclasses that wish to add specific business logic.

Parameters:
data - Turbine information.
Throws:
java.lang.Exception - A generic exception.

buildTemplate

public abstract org.apache.ecs.ConcreteElement buildTemplate(RunData data)
                                                      throws java.lang.Exception
This method should be implemented by Base template classes. It should contain the specific template service code to generate the template.

Parameters:
data - Turbine information.
Returns:
A ConcreteElement.
Throws:
java.lang.Exception - A generic exception.

doPostBuildTemplate

protected void doPostBuildTemplate(RunData data)
This method can be overridden to write code that executes when the template has been built (called from a finally clause, so executes regardless of whether an exception is thrown or not)


doBuild

protected org.apache.ecs.ConcreteElement doBuild(RunData data)
                                          throws java.lang.Exception
This method is called by the Screenloader to construct the Screen.

Specified by:
doBuild in class Screen
Parameters:
data - Turbine information.
Returns:
A ConcreteElement.
Throws:
java.lang.Exception - A generic exception.

setTemplate

public static void setTemplate(RunData data,
                               java.lang.String template)
This method is used when you want to short circuit a Screen and change the template that will be executed next. Note that the current context will be applied to the next template that is executed. If you want to have the context executed for the next screen, to be the same one as the next screen, then you should use the TemplateScreen.doRedirect() method.

Parameters:
data - Turbine information.
template - The name of the next template.

doRedirect

public void doRedirect(RunData data,
                       java.lang.String screen,
                       java.lang.String template)
                throws java.lang.Exception
You can call this within a Screen to cause an internal redirect to happen. It essentially allows you to stop execution in one Screen and instantly execute another Screen. Don't worry, this does not do a HTTP redirect and also if you have anything added in the Context, it will get carried over.

This class is useful if you have a Screen that submits to another Screen and you want it to do error validation before executing the other Screen. If there is an error, you can doRedirect() back to the original Screen.

Parameters:
data - Turbine information.
screen - Name of screen to redirect to.
template - Name of template.
Throws:
java.lang.Exception - A generic exception.

doRedirect

public void doRedirect(RunData data,
                       java.lang.String template)
                throws java.lang.Exception
You can call this within a Screen to cause an internal redirect to happen. It essentially allows you to stop execution in one Screen and instantly execute another Screen. Don't worry, this does not do a HTTP redirect and also if you have anything added in the Context, it will get carried over.

This class is useful if you have a Screen that submits to another Screen and you want it to do error validation before executing the other Screen. If there is an error, you can doRedirect() back to the original Screen.

Parameters:
data - Turbine information.
template - Name of template.
Throws:
java.lang.Exception - A generic exception.


Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.