org.apache.turbine.modules
Class ActionEvent

java.lang.Object
  |
  +--org.apache.turbine.modules.Assembler
        |
        +--org.apache.turbine.modules.Action
              |
              +--org.apache.turbine.modules.ActionEvent
Direct Known Subclasses:
VelocityActionEvent, WebMacroActionEvent

public abstract class ActionEvent
extends Action

This is an alternative to the Action class that allows you to do event based actions. Essentially, you label all your submit buttons with the prefix of "eventSubmit_" and the suffix of "methodName". For example, "eventSubmit_doDelete". Then any class that subclasses this class will get its "doDelete(RunData data)" method executed. If for any reason, it was not able to execute the method, it will fall back to executing the doPeform() method which is required to be implemented.

Limitations:

Because ParameterParser makes all the key values lowercase, we have to do some work to format the string into a method name. For example, a button name eventSubmit_doDelete gets converted into eventsubmit_dodelete. Thus, we need to form some sort of naming convention so that dodelete can be turned into doDelete.

Thus, the convention is this:

If you follow these conventions, then you should be ok with your method naming in your Action class.

Version:
$Id: ActionEvent.java,v 1.1.1.1 2001/08/16 05:08:29 jvanzyl Exp $
Author:
Jon S. Stevens

Field Summary
protected static java.lang.String BUTTON
          The name of the button to look for.
protected static int BUTTON_LENGTH
          The length of the button to look for.
protected static int LENGTH
          The length of the button to look for.
protected static int METHOD_NAME_LENGTH
          The length of the method name.
protected static java.lang.String METHOD_NAME_PREFIX
          The prefix of the method name.
 
Constructor Summary
ActionEvent()
           
 
Method Summary
abstract  void doPerform(RunData data)
          You need to implement this in your classes that extend this class.
 void executeEvents(RunData data)
          This method should be called to execute the event based system.
protected  java.lang.String formatString(java.lang.String input)
          This method does the conversion of the lowercase method name into the proper case.
protected  void perform(RunData data)
          This overrides the default Action.perform() to execute the doEvent() method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BUTTON

protected static final java.lang.String BUTTON
The name of the button to look for.

BUTTON_LENGTH

protected static final int BUTTON_LENGTH
The length of the button to look for.

METHOD_NAME_PREFIX

protected static final java.lang.String METHOD_NAME_PREFIX
The prefix of the method name.

METHOD_NAME_LENGTH

protected static final int METHOD_NAME_LENGTH
The length of the method name.

LENGTH

protected static final int LENGTH
The length of the button to look for.
Constructor Detail

ActionEvent

public ActionEvent()
Method Detail

doPerform

public abstract void doPerform(RunData data)
                        throws java.lang.Exception
You need to implement this in your classes that extend this class.
Overrides:
doPerform in class Action
Parameters:
data - Turbine information.
Throws:
java.lang.Exception - a generic exception.

perform

protected void perform(RunData data)
                throws java.lang.Exception
This overrides the default Action.perform() to execute the doEvent() method. If that fails, then it will execute the doPerform() method instead.
Overrides:
perform in class Action
Parameters:
data - Turbine information.
Throws:
java.lang.Exception - a generic exception.

executeEvents

public void executeEvents(RunData data)
                   throws java.lang.Exception
This method should be called to execute the event based system.
Parameters:
data - Turbine information.
Throws:
java.lang.Exception - a generic exception.

formatString

protected final java.lang.String formatString(java.lang.String input)
This method does the conversion of the lowercase method name into the proper case.
Parameters:
input - The unconverted method name.
Returns:
A string with the method name in the proper case.


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